STM32MP157 Linux系統(tǒng)移植開發(fā)篇15:Linux內(nèi)核7寸觸摸屏驅(qū)動移植
本文章為《STM32MP157 Linux系統(tǒng)移植開發(fā)篇》系列中的一篇,筆者使用的開發(fā)平臺為華清遠(yuǎn)見FS-MP1A開發(fā)板(STM32MP157開發(fā)板)。stm32mp157是ARM雙核,2個A7核,1個M4核,A7核上可以跑Linux操作系統(tǒng),M4核上可以跑FreeRTOS、RT-Thread等實(shí)時(shí)操作系統(tǒng),STM32MP157開發(fā)板所以既可以學(xué)嵌入式linux,也可以學(xué)stm32單片機(jī)。
針對FS-MP1A開發(fā)板,除了Linux系統(tǒng)移植篇外,還包括其他多系列教程,包括Cortex-A7開發(fā)篇、Cortex-M4開發(fā)篇、擴(kuò)展板驅(qū)動移植篇、Linux應(yīng)用開發(fā)篇、FreeRTOS系統(tǒng)移植篇、Linux驅(qū)動開發(fā)篇、硬件設(shè)計(jì)篇、人工智能機(jī)器視覺篇、Qt應(yīng)用編程篇、Qt綜合項(xiàng)目實(shí)戰(zhàn)篇等。歡迎關(guān)注,更多stm32mp157開發(fā)教程及視頻,可加技術(shù)交流Q群459754978,感謝關(guān)注。
關(guān)于FS-MP1A開發(fā)板:
手機(jī)淘寶分享碼:復(fù)制本行文字打開手淘?T4FPXn3YYJ2?
鏈接:https://item.taobao.com/item.htm?id=622457259672
1.實(shí)驗(yàn)?zāi)康?/h1>
熟悉基于Linux操作系統(tǒng)下的觸摸屏設(shè)備驅(qū)動移植配置過程。
2.實(shí)驗(yàn)平臺
華清遠(yuǎn)見開發(fā)環(huán)境,F(xiàn)S-MP1A平臺;
3.實(shí)驗(yàn)?zāi)康?/h1>
熟悉基于Linux操作系統(tǒng)下的塊設(shè)備驅(qū)動移植配置過程。
4.實(shí)驗(yàn)步驟
導(dǎo)入交叉編譯工具鏈
linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
過程與5寸觸摸屏移植過程相同,如果步驟重復(fù)請?zhí)^。
修改設(shè)備樹
修改arch/arm/boot/dts/stm32mp157a-fsmp1a-rgb070.dts文件,在文件末尾增加如下內(nèi)容:
&i2c2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c2_pins_a>;
pinctrl-1 = <&i2c2_pins_sleep_a>;
i2c-scl-rising-time-ns = <100>;
i2c-scl-falling-time-ns = <7>;
status = "okay";
/delete-property/dmas;
/delete-property/dma-names;
touchscreen@5d {
compatible = "goodix,gt911";
reg = <0x5d>;
irq-gpios = <&gpiog 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
reset-gpios = <&gpiog 8 GPIO_ACTIVE_HIGH>;
interrupt-parent = <&gpiog>;
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
status = "okay";
// touchscreen-inverted-x;
touchscreen-inverted-y;
touchscreen-swapped-x-y;
};
};
配置內(nèi)核
由于內(nèi)核源碼默認(rèn)配置以及支持sii902x,本節(jié)列出主要選項(xiàng),如下:
linux@ubuntu:$ make menuconfig
Device Drivers --->
Graphics support --->
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<*> DRM Support for STMicroelectronics SoC Series
Display Interface Bridges --->
<*> Silicon Image sii902x RGB/HDMI bridge
編譯內(nèi)核級設(shè)備樹:
linux@ubuntu:$ make -j4 uImage dtbs LOADADDR=0xC2000040
重啟測試
將編譯好的設(shè)備樹和內(nèi)核鏡像拷貝到/tftpboot目錄下,通過tftp引導(dǎo)內(nèi)核,設(shè)備連接七寸屏,重啟設(shè)備后查看/dev會多出event0的信息,這是點(diǎn)擊屏幕會的到反饋。
root@fsmp1a:# ls /dev/input

硬件平臺:華清遠(yuǎn)見FS-MP1A開發(fā)板(STM32MP157)
部分開發(fā)教程下載:加QQ群459754978,群文件里有。
淘寶購買鏈接:華清遠(yuǎn)見stm32mp157 linux開發(fā)板stm32單片機(jī)arm開發(fā)嵌入式學(xué)習(xí)板
手機(jī)淘寶分享碼:復(fù)制本行文字打開手淘?T4FPXn3YYJ2?