st7796s driver support on nxp frdm-rw612 #83051
-
Hi
Should also be noted that I am fairly new to zephyr. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 1 reply
-
Sorry, @Snakehater , The shield currently supports the parallel 8080 interface. On the RD-RW612-BGA board, the LCDIC peripheral in the SOC is configured and connected to this shield. For the FRDM-MCXN947 and FRDM-MCXN236 boards, the FlexIO peripheral is used in parallel mode for this shield. Best regards |
Beta Was this translation helpful? Give feedback.
-
Hi @Snakehater , If you want to take on porting that to Zephyr, the SDK example is a good reference. You could modify the existing LCD_PAR_S035 shield, and add the SPI feature to it. Best regards |
Beta Was this translation helpful? Give feedback.
-
Hello @DerekSnell I have created a device tree for PMOD connector and tested it with LVGL that it works. Over the weekend I will create a shield device tree overlay and submit a Pull Request with it. Here's the device tree, in case someone comes looking for the same answer in the future: /*
Display interface and driver bindings and configurations
Display is connected to PMOD connector
PMOD is connected to LCD Interface pins on microcontroller
IO_MUX_LCD_SPI_IO44 to IO_MUX_LCD_SPI_IO49
*/
pmod_mipi_dbi_spi: &lcdic {
compatible = "nxp,lcdic";
pinctrl-0 = <&pinmux_lcdic>;
pinctrl-names = "default";
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
reset-gpios = <&hsgpio0 4 GPIO_ACTIVE_HIGH>;
nxp,swap-bytes;
nxp,timer0-ratio = <15>;
nxp,timer1-ratio = <0>;
nxp,write-active-cycles = <1>;
nxp,write-inactive-cycles = <1>;
st7796s: st7796s@0 {
compatible = "sitronix,st7796s";
status = "okay";
reg = <0>;
mipi-max-frequency = <30000000>;
duplex = <SPI_HALF_DUPLEX>;
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>;
height = <320>;
width = <480>;
invert-mode = "1-dot";
frmctl1 = [80 10];
bpc = [1F 50 00 20];
dfc = [8A 07 3B];
pwr1 = [80 64];
pwr2 = <0x13>;
pwr3 = <0xA7>;
vcmpctl = <0x09>;
doca = [40 8A 00 00 29 19 A5 33];
pgc = [F0 06 0B 07 06 05 2E 33 47 3A 17 16 2E 31];
ngc = [F0 09 0D 09 08 23 2E 33 46 38 13 13 2C 32];
madctl = <0x28>;
color-invert;
/* LCD_TE tearing signal is not available in SPI PMOD connector */
te-mode = "MIPI_DBI_TE_NO_EDGE";
};
};
/*
PMOD I2C is shared with Arduino Header connector and connected directly to FlexComm2
*/
pmod_i2c: &arduino_i2c {
status = "okay";
};
/*
GT911 touch driver bindings and configurations
*/
nxp_pmod_touch_panel_i2c: &pmod_i2c {
status = "okay";
gt911_lcd_par_s035: gt911-lcd_par_s035@5d {
compatible = "goodix,gt911";
reg = <0x5d>;
irq-gpios = <&hsgpio0 18 GPIO_ACTIVE_HIGH>; /* LCD touch INT GPIO_18_ARD_D4_PMOD_INT */
reset-gpios = <&hsgpio0 4 GPIO_ACTIVE_LOW>; /* LCD and touch reset GPIO_44_LCD_SPI_RESETn */
};
};
|
Beta Was this translation helpful? Give feedback.
-
I have encountered tearing behavior, unfortunately. What I can see in the schematics of LCD_PAR_S035 and FRDM RW612 EVK that LCD_TE is only available through the 8080 16-bit parallel connector. Also, MIPI DBI is not expecting such a signal from LCDIC when it runs MIPI_DBI_MODE_SPI_4WIRE Do you have any wisdom or guidance on how to overcome such an issue? |
Beta Was this translation helpful? Give feedback.
-
Hi @BassemMohsen , This GitHub project is for Zephyr, and NXP's team that supports Zephyr monitors it. But your latest issue does not appear to involve Zephyr. Please create a new post in the Wireless MCU forum on the NXP Community so it can be assigned to the support team who can help with this. And feel free to link that post here for everyone. Best regards |
Beta Was this translation helpful? Give feedback.
Hi @Snakehater ,
There are non-Zephyr examples using these boards in NXP's MCUXpresso SDK. To access, use the SDK Builder to build a package for the FRDM-RW612 board, and include LVGL in that package. Then the LVGL examples are found at \boards\frdmrw612\lvgl_examples. When configured for the LCD-PAR-S035 board, it uses SPI through the PMOD connector.
If you want to take on porting that to Zephyr, the SDK example is a good reference. You could modify the existing LCD_PAR_S035 shield, and add the SPI feature to it.
Best regards