AM335x(TQ335x)學(xué)習(xí)筆記——LCD驅(qū)動移植
(3)backlight節(jié)點分析及配置
本文引用地址:http://m.butianyuan.cn/article/201611/322821.htm從backlight節(jié)點中可以獲得如下信息:
- 1.匹配內(nèi)核驅(qū)動的關(guān)鍵詞是"pwm-backlight"。
- 2.使用的ECAP0進行PWM輸出。
- 3.有8個亮度等級。
- 4.默認的亮度等級是8,也就是最亮。
- Step1.將backlight節(jié)點中&eacp0改為&eacp2。
- Step2.將&epwmss0改為&epwmss2,并將該節(jié)點內(nèi)的ecap0:ecap@48304100改成ecap0:ecap@48304100,然后將該節(jié)點中的&ecap0_pins改成&ecap2_pins。
- Step3.將ecap0_pins節(jié)點改名為ecap2_pins,然后將pinctrl-single,pins內(nèi)的內(nèi)容改為:0x19cMUX_MODE4。
- backlight{
- compatible="pwm-backlight";
- pwms=<&ecap20500000>;
- brightness-levels=<05153566275101152255>;
- default-brightness-level=<8>;
- };
- &epwmss2{
- status="okay";
- ecap2:ecap@48304100{
- status="okay";
- pinctrl-names="default";
- pinctrl-0=<&ecap2_pins>;
- };
- };
- ecap2_pins:backlight_pins{
- pinctrl-single,pins=<
- 0x19cMUX_MODE4/*MCASP0_AHCLKR.eCAP2_in_PWM2_outMODE4*/
- >;
- };
- makeARCH=armmenuconfig
- Graphicssupport--->
- [*]Pulse-WidthModulation(PWM)Support--->
- <*>ECAPPWMsupport
- <*>EHRPWMPWMsupport
- -*-Backlight&LCDdevicesupport--->
- <*>GenericPWMbasedBacklightDriver
- Graphicssupport--->
- DirectRenderingManager--->
- <*>DirectRenderingManager(XFree864.1.0andhigherDRIsupport)--->
- <*>DRMSupportforTILCDCDisplayController
- makeARCH=armCROSS_COMPILE=arm-linux-gnueabi-tq335x.dtb
- makeARCH=armCROSS_COMPILE=arm-linux-gnueabi--j8
將新編譯好的tq335x.dtb和zImage拷貝到SD卡的boot目錄下,然后用SD啟動開發(fā)板到u-boot命令行模式,通過u-boot指令啟動內(nèi)核(每次都這樣啟動會比較麻煩,可以通過設(shè)置u-boot的bootcmd環(huán)境變量并保存來簡化此動作),啟動內(nèi)核的指令與前一篇文章的命令是相同的:
- loadmmc00x88000000/boot/tq335x.dtb
- loadmmc00x82000000/boot/zImage
- loadmmc00x88080000/boot/ramdisk.img
- bootz0x820000000x880800000x88000000
(7)pinmux配置參數(shù)的確定方法
相信有些人看完這幾篇文章之后有個疑問,就是配置pinmux的時候offset是如何確定的。配置GPIO管腳復(fù)用功能時經(jīng)常用到pinctrl-single,pins =
講offset的確定方法之前需要指出的是,TI的GPIO控制與三星的芯片不同,三星的芯片管腳復(fù)用功能是放在GPIO寄存器中的,而TI的芯片則有個專門的控制模塊叫Control Module,該模塊可以控制所有的GPIO管腳功能復(fù)用;另外,與三星芯片的另外一個不同是TI的芯片分為技術(shù)參考手冊和數(shù)據(jù)手冊,技術(shù)參考手冊非常詳細的講述同family的芯片功能及使用方法,數(shù)據(jù)手冊則用來講述同family中不同芯片特有的屬性。因此,調(diào)試TI芯片時需要結(jié)合技術(shù)參考手冊和數(shù)據(jù)手冊,而配置GPIO則需要閱讀技術(shù)手冊的GPIO、Control Module兩章和數(shù)據(jù)手冊中相關(guān)的部分。
從am33xx.dtsi中可以看到pinmux的基地址是0x44e10800,我們先來看這個地址是怎么來的。從技術(shù)參考手冊的內(nèi)存映射表可以確定該地址位于L4_WKUP段內(nèi),如下圖:
點擊L4_WKUP超鏈接,可以切換到L4_WKUP的地址映射表,從該表中可以確定,該地址位于Control Module,如下圖:
點擊Control Module的超鏈接,可以切換到Control Module的地址映射表,從該表中可以找到0x44e10800地址,實際上就是conf_gpmc_ad0控制寄存器的地址,也就是說,pinmux配置時的offset都基于這個地址的。
評論