NanoPi H3 linux 4.14 修改FBTFT驅動


1. 修改DTS文件:

  sun8i-h3-nanopi.dtsi 中, 增加   matrix = &matrix; 

  

 1 / {
 2     aliases {
 3         serial0 = &uart0;
 4         serial1 = &uart1;
 5         serial2 = &uart2;
 6         serial3 = &uart3;
 7         i2c0 = &i2c0;
 8         i2c1 = &i2c1;
 9         i2c2 = &i2c2;
10         spi0 = &spi0;
11         spi1 = &spi1;
12         pwm0 = &pwm;
13         mmc0 = &mmc0;
14         mmc2 = &mmc2;
15         ethernet0 = &emac;
16         i2s0 = &i2s0;
17         pcm5102a = &pcm5102a;
18         spidev0 =&spidev0;
19         matrix = &matrix;
20         ir = &ir;
21     };
View Code

     增加 matrix: matrix@0在SPI0 節點下.

 1 &spi0 {  2     /* needed to avoid dtc warning */
 3     #address-cells = <1>;  4     #size-cells = <0>;  5     status = "okay";  6     pinctrl-names = "default";  7     pinctrl-0 = <&spi0_pins &spi_cs0_pin>;//<&spi0_pins &spi0_cs_pins>,
 8     cs-gpios =  <&pio 6 9 GPIO_ACTIVE_HIGH>;//<&pio 2 3 GPIO_ACTIVE_HIGH>, <&pio 0 6 GPIO_ACTIVE_HIGH>;
 9     
10     spidev0: spi@0 { 11         compatible = "nanopi,spidev"; 12         reg = <0>; 13         status = "disabled"; 14         spi-max-frequency = <10000000>; 15  }; 16 
17     matrix: matrix@0{ 18         compatible =  "fa,st7735s"; 19         reg = <0>; 20         status = "okay"; 21 
22         spi-max-frequency = <32000000>; 23         fps = <33>; 24         rotate = <90>; 25         buswidth = <8>; 26 
27         dc-gpios = <&pio  0 17 GPIO_ACTIVE_HIGH>;     /* PA17 */
28         reset-gpios = <&pio 0 3 GPIO_ACTIVE_HIGH>;    /* PA3 */
29         debug = <0x0>; 30  }; 31 }

 

2. 在linux 內核目錄/drivers/staging/fbtft/fbtft_device.c中    static struct fbtft_device_display displays[] 結構體中增加一個成員

   

{ .name = "matrix-st7735s", .spi = &(struct spi_board_info) { .modalias = "fb_st7735s", .max_speed_hz = 32000000, .bus_num = 0, .chip_select = 0,        // third spi dev
            .mode = SPI_MODE_0, // .controller_data= &spi_config,
            .platform_data = &(struct fbtft_platform_data) { .display = { .buswidth = 8, .backlight = 1, }, .gpios = (const struct fbtft_gpio []) { { "reset", 3 }, { "dc" ,  17 }, { "led",  1 }, { "cs" ,  201 }, }, } }

4. make menuconfig  中配置,將4.14內核中的staging 中的fbtft部分編譯成模塊

 

3. 重新make dts , make  uImage ,make modules. 然后分別更新SD卡的內核,dts,以及rootfs,

 

4. 在根據matrix部分內容,重新編譯QT后,運行./run.sh /dev/fb-st7735s ,就可以看見和3.5內核一致效果.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM