boards: shields: lpc_par_s035: Add Support to communicate over SPI
Add support for the LCD-PAR display to communicate over the SPI bus which is available on the PMOD connection interface. Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
This commit is contained in:
parent
15411747e7
commit
bde0a78d7c
5 changed files with 113 additions and 5 deletions
|
@ -2,4 +2,5 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SHIELD_LCD_PAR_S035
|
||||
def_bool $(shields_list_contains,lcd_par_s035_8080)
|
||||
def_bool $(shields_list_contains,lcd_par_s035_spi) ||\
|
||||
$(shields_list_contains,lcd_par_s035_8080)
|
||||
|
|
14
boards/shields/lcd_par_s035/boards/frdm_rw612.overlay
Normal file
14
boards/shields/lcd_par_s035/boards/frdm_rw612.overlay
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright 2025 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
&lcdic {
|
||||
/* Enable byte swapping */
|
||||
nxp,swap-bytes;
|
||||
/* Raise the timer0 ratio to enable longer reset delay */
|
||||
nxp,timer0-ratio = <15>;
|
||||
/* Lower timer1 ratio to enable shorter TE delay */
|
||||
nxp,timer1-ratio = <0>;
|
||||
};
|
|
@ -16,14 +16,13 @@ Requirements
|
|||
************
|
||||
|
||||
This shield can only be used with FRDM-X evaluation kits with a parallel LCD
|
||||
connector or a PMOD connector. Currently only the parallel LCD connector is
|
||||
enabled.
|
||||
connector or a PMOD connector.
|
||||
|
||||
Programming
|
||||
***********
|
||||
|
||||
Set ``--shield lcd_par_s035_8080`` when you invoke ``west build``. For
|
||||
example:
|
||||
Set ``--shield lcd_par_s035_8080`` or ``--shield lcd_par_s035_spi`` when you
|
||||
invoke ``west build``. For example:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/drivers/display
|
||||
|
|
68
boards/shields/lcd_par_s035/lcd_par_s035_spi.overlay
Normal file
68
boards/shields/lcd_par_s035/lcd_par_s035_spi.overlay
Normal file
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* Copyright 2025 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/mipi_dbi/mipi_dbi.h>
|
||||
#include <zephyr/dt-bindings/spi/spi.h>
|
||||
|
||||
/{
|
||||
chosen {
|
||||
zephyr,display = &st7796s;
|
||||
zephyr,touch = >911_lcd_par_s035;
|
||||
};
|
||||
|
||||
lvgl_pointer {
|
||||
compatible = "zephyr,lvgl-pointer-input";
|
||||
input = <>911_lcd_par_s035>;
|
||||
swap-xy;
|
||||
invert-y;
|
||||
};
|
||||
};
|
||||
|
||||
&nxp_pmod_touch_panel_i2c {
|
||||
status = "okay";
|
||||
|
||||
gt911_lcd_par_s035: gt911-lcd_par_s035@5d {
|
||||
compatible = "goodix,gt911";
|
||||
reg = <0x5d>;
|
||||
irq-gpios = <&nxp_lcd_pmod_connector 12 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&zephyr_mipi_dbi_spi {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
st7796s: st7796s@0 {
|
||||
compatible = "sitronix,st7796s";
|
||||
reg = <0>;
|
||||
/*
|
||||
* Display supports minimum write cycle time of 66ns. This
|
||||
* means we can clock the LCDIC module at 30MHz, as
|
||||
* the minimum write duration will be 2x the module
|
||||
* clock. Note that this frequency is too fast for reading
|
||||
* from the display module
|
||||
*/
|
||||
mipi-max-frequency = <30000000>;
|
||||
mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
|
||||
duplex = <SPI_HALF_DUPLEX>;
|
||||
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;
|
||||
};
|
||||
};
|
26
dts/bindings/gpio/nxp,lcd-pmod.yaml
Normal file
26
dts/bindings/gpio/nxp,lcd-pmod.yaml
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Copyright 2025 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
|
||||
compatible: "nxp,lcd-pmod"
|
||||
|
||||
description: |
|
||||
GPIO pins exposed on NXP LCD pmod interface (e.g., used on LCD-PAR-035 panel).
|
||||
These pins are exposed on a 12 pin connector. The pins have the
|
||||
following assignments:
|
||||
|
||||
Pin Number Usage
|
||||
1 VCC
|
||||
2 VCC
|
||||
3 GND
|
||||
4 GND
|
||||
5 LCD PMOD interface WR pin
|
||||
6 LCD touch controller I2C SCL
|
||||
7 LCD PMOD interface D/C pin
|
||||
8 LCD touch controller I2C SDA
|
||||
9 LCD PMOD interface MOSI pin
|
||||
10 LCD and touch reset
|
||||
11 LCD PMOD interface CS pin
|
||||
12 LCD touch interrupt
|
||||
|
||||
include: [gpio-nexus.yaml, base.yaml]
|
Loading…
Add table
Add a link
Reference in a new issue