天嵌 ARM开发社区

 找回密码
 注册
查看: 3150|回复: 0

【嵌入式分享】如何在TQ335X开发板上进行LCD渠道移植(2)

[复制链接]
freewing 发表于 2014-11-26 10:11:24 | 显示全部楼层 |阅读模式

继续接【嵌入式分享】如何在TQ335X开发板上进行LCD渠道移植(1),本文将详述TQ335X如何进行LCD渠道移植。


  (6)用新内核启动开发板

  将新编译好的tq335x.dtb和zImage拷贝到SD卡的boot目录下,然后用SD启动开发板到u-boot命令行模式,通过u-boot指令启动内核(每次都这样启动会比较麻烦,可以通过设置u-boot的bootcmd环境变量并保存来简化此动作),启动内核的指令与前一篇文章的命令是相同的:


  • load mmc 0 0x88000000 /boot/tq335x.dtb  
  • load mmc 0 0x82000000 /boot/zImage  
  • load mmc 0 0x88080000 /boot/ramdisk.img  
  • bootz 0x82000000 0x88080000 0x88000000

  这时,可以看到开发板正常启动并且能看到熟悉的Linux小企鹅Logo,至此,就完成了am335x的LCD驱动移植,实际上是不需要我们写代码的,但需要了解内核的组织方式和DTS配置的方法。


  (7)pinmux配置参数的确定方法

  相信有些人看完这几篇文章之后有个疑问,就是配置pinmux的时候offset是如何确定的。配置GPIO管脚复用功能时经常用到pinctrl-single,pins = 属性,内核解析该属性后根据offset和function配置对应的寄存器,是GPIO管脚配置为指定的复用功能。

  讲offset的确定方法之前需要指出的是,TI的GPIO控制与三星的芯片不同,三星的芯片管脚复用功能是放在GPIO寄存器中的,而TI的芯片则有个专门的控制模块叫Control Module,该模块可以控制所有的GPIO管脚功能复用;另外,与三星芯片的另外一个不同是TI的芯片分为技术参考手册和数据手册,技术参考手册非常详细的讲述同family的芯片功能及使用方法,数据手册则用来讲述同family中不同芯片特有的属性。因此,调试TI芯片时需要结合技术参考手册和数据手册,而配置GPIO则需要阅读技术手册的GPIO、Control Module两章和数据手册中相关的部分。

  从am33xx.dtsi中可以看到pinmux的基地址是0x44e10800,我们先来看这个地址是怎么来的。从技术参考手册的内存映射表可以确定该地址位于L4_WKUP段内,如下图:

  点击L4_WKUP超链接,可以切换到L4_WKUP的地址映射表,从该表中可以确定,该地址位于Control Module,如下图:


  点击Control Module的超链接,可以切换到Control Module的地址映射表,从该表中可以找到0x44e10800地址,实际上就是conf_gpmc_ad0控制寄存器的地址,也就是说,pinmux配置时的offset都基于这个地址的。

  以PWM背光控制为例。该功能引脚是接在ECAP2_IN_PWM_OUT上的,实际上就是AM335x的MCASP0_AHCLKR管脚,该管脚的地址也可以在Control Module的地址映射表中找到,该管脚的地址是0x44e1099c(表中是基于Control Module的offset,这个值是计算之后的),因此,在pinmux中配置该引脚时使用的offset应该是0x19c,这样就确定出了offset。

  pinctrl-single,pins的第二项是function,用来指定GPIO管脚是输入还是输出,当前处于哪种模式。输入输出很容易配置,但是AM335x技术参考手册中只提到每个管脚有8中模式,即MODE0~MODE7,其中,MODE0是主模式,但是没有具体讲每个引脚的每个MODE是什么功能,这时,就需要查阅AM335x数据手册了。在AM335x数据手册MCASP0_AHCLKR的八种模式的含义,如下图:

  由于我们使用的是eCAP2_in_PWM2_out功能,故使用MUX_MODE4。这就是backlight的pinmux配置时使用pinctrl-single,pins = <0x19c MUX_MODE4>的原因。


  (8)效果展示

  到这里LCD的移植工作就算完成了,下面是TQ335x驱动LCD后的效果图:


  (9)总结


  使用DTB方式配置内核驱动一般需要以下几个步骤:

  • Step1. 设置pinmux,配置的GPIO为相应的功能。  
  • Step2. 设置相应的节点,关联对应的驱动。  
  • Step3. 检查内核配置项,确保开启对应的驱动选项。  



TQ_AM335X工业级嵌入式开发板:

http://www.embedsky.com/Index.php?s=/Product/show/id/49.html


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-25 04:29 , Processed in 1.031250 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表