Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 0 additions & 45 deletions boards/nxp/mimxrt1060_evk/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,6 @@ config DEVICE_CONFIGURATION_DATA
config NXP_IMX_EXTERNAL_SDRAM
default y

config INPUT
default y if LVGL

if INPUT

config INPUT_FT5336_INTERRUPT
default y

endif # INPUT

if NETWORKING

config NET_L2_ETHERNET
Expand All @@ -35,39 +25,4 @@ endif # ETH_MCUX

endif # NETWORKING

if LVGL

# LVGL should allocate buffers equal to size of display
config LV_Z_VDB_SIZE
default 100

# Enable double buffering
config LV_Z_DOUBLE_VDB
default y

# Force full refresh. This prevents memory copy associated with partial
# display refreshes, which is not necessary for the eLCDIF driver
config LV_Z_FULL_REFRESH
default y

config LV_DPI_DEF
default 128

config LV_Z_BITS_PER_PIXEL
default 16

# Force display buffers to be aligned to cache line size (32 bytes)
config LV_Z_VDB_ALIGN
default 32

# Use offloaded render thread
config LV_Z_FLUSH_THREAD
default y

choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVKB
4 changes: 3 additions & 1 deletion boards/nxp/mimxrt1060_evk/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@ already supported, which can also be re-used on this mimxrt1060_evk board:
+-----------+------------+-------------------------------------+
| SYSTICK | on-chip | systick |
+-----------+------------+-------------------------------------+
| DISPLAY | on-chip | display |
| DISPLAY | on-chip | eLCDIF. Tested with |
| | | :ref:`rk043fn02h_ct`, and |
| | | :ref:`rk043fn66hs_ctg` shields |
+-----------+------------+-------------------------------------+
| FLASH | on-chip | QSPI flash |
+-----------+------------+-------------------------------------+
Expand Down
78 changes: 30 additions & 48 deletions boards/nxp/mimxrt1060_evk/mimxrt1060_evk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

#include <nxp/nxp_rt1060.dtsi>
#include "mimxrt1060_evk-pinctrl.dtsi"
#include <zephyr/dt-bindings/display/panel.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
Expand All @@ -30,7 +29,6 @@
zephyr,console = &lpuart1;
zephyr,shell-uart = &lpuart1;
zephyr,canbus = &flexcan3;
zephyr,display = &lcdif;
};

sdram0: memory@80000000 {
Expand All @@ -39,6 +37,33 @@
reg = <0x80000000 DT_SIZE_M(32)>;
};

/*
* This node describes the GPIO pins of the parallel FPC interface,
* This interface is standard to several NXP EVKs, and is used with
* several parallel LCD displays (available as zephyr shields)
*/
nxp_parallel_lcd_connector: parallel-connector {
compatible = "nxp,parallel-lcd-connector";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &gpio2 31 0>; /* Pin 1, BL+ */
};

/*
* This node describes the GPIO pins of the I2C display FPC interface,
* This interface is standard to several NXP EVKs, and is used with
* several parallel LCD displays (available as zephyr shields)
*/
nxp_i2c_touch_fpc: i2c-touch-connector {
compatible = "nxp,i2c-tsc-fpc";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <1 0 &gpio1 2 0>, /* Pin 2, LCD touch RST */
<2 0 &gpio1 11 0>; /* Pin 3, LCD touch INT */
};

leds {
compatible = "gpio-leds";
green_led: led-1 {
Expand All @@ -63,11 +88,6 @@
};
};

lvgl_pointer {
compatible = "zephyr,lvgl-pointer-input";
input = <&ft5336>;
};

arduino_header: connector {
compatible = "arduino-header-r3";
#gpio-cells = <2>;
Expand Down Expand Up @@ -96,15 +116,6 @@
<20 0 &gpio1 17 0>, /* D14 */
<21 0 &gpio1 16 0>; /* D15 */
};

panel {
compatible = "rocktech,rk043fn02h-ct";
port {
lcd_panel_in: endpoint {
remote-endpoint = <&lcd_panel_out>;
};
};
};
};

arduino_serial: &lpuart3 {
Expand All @@ -114,46 +125,17 @@ arduino_serial: &lpuart3 {
pinctrl-names = "default", "flowcontrol", "sleep";
};

&lcdif {
status = "okay";
width = <480>;
height = <272>;
display-timings {
compatible = "zephyr,panel-timing";
hsync-len = <41>;
hfront-porch = <4>;
hback-porch = <8>;
vsync-len = <10>;
vfront-porch = <4>;
vback-porch = <2>;
de-active= <1>;
pixelclk-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
clock-frequency = <9210240>;
};
pixel-format = <PANEL_PIXEL_FORMAT_BGR_565>;
data-bus-width = "16-bit";
zephyr_lcdif: &lcdif {
pinctrl-0 = <&pinmux_lcdif>;
pinctrl-names = "default";
backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
port {
lcd_panel_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};

nxp_touch_i2c: &lpi2c1 {};

arduino_i2c: &lpi2c1 {
status = "okay";
pinctrl-0 = <&pinmux_lpi2c1>;
pinctrl-names = "default";

ft5336: ft5336@38 {
compatible = "focaltech,ft5336";
reg = <0x38>;
int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
};
};

&lpuart1 {
Expand Down
47 changes: 47 additions & 0 deletions boards/shields/rk043fn02h_ct/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

if SHIELD_RK043FN02H_CT

if LVGL

config INPUT
default y

config INPUT_FT5336_INTERRUPT
default y

# LVGL should allocate buffers equal to size of display
config LV_Z_VDB_SIZE
default 100

# Enable double buffering
config LV_Z_DOUBLE_VDB
default y

# Force full refresh. This prevents memory copy associated with partial
# display refreshes, which is not necessary for the eLCDIF driver
config LV_Z_FULL_REFRESH
default y

config LV_Z_BITS_PER_PIXEL
default 16

config LV_DPI_DEF
default 128

# Use offloaded render thread
config LV_Z_FLUSH_THREAD
default y

choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_16
endchoice

# Force display buffers to be aligned to cache line size (32 bytes)
config LV_Z_VDB_ALIGN
default 32

endif # LVGL

endif # SHIELD_RK043FN02H_CT
5 changes: 5 additions & 0 deletions boards/shields/rk043fn02h_ct/Kconfig.shield
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

config SHIELD_RK043FN02H_CT
def_bool $(shields_list_contains,rk043fn02h_ct)
105 changes: 105 additions & 0 deletions boards/shields/rk043fn02h_ct/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
.. _rk043fn02h_ct:

RK043FN02H-CT Parallel Display
##############################

Overview
********

RK043FN02H-CT is a 4.3 inch TFT 480*272 pixels with LED backlight and
capacitive touch panel from Rocktech. This LCD panel can work with several i.MX
RT EVKs and LPC MCUs for evaluation of applications with display.

More information about the shield can be found at the `RK043FN02H-CT product
page`_.

This display uses a 40 pin parallel FPC interface plus 6 pin I2C interface,
available on many NXP EVKs. Note that this parallel FPC interface is not
compatible with the MIPI FPC interface present on other NXP EVKs.

Pins Assignment of the Rocktech RK043FN02H-CT Parallel Display
==============================================================

+-----------------------+------------------------+
| Parallel FPC Pin | Function |
+=======================+========================+
| 1 | LED backlight cathode |
+-----------------------+------------------------+
| 2 | LED backlight anode |
+-----------------------+------------------------+
| 3 | GND |
+-----------------------+------------------------+
| 4 | VDD (3v3) |
+-----------------------+------------------------+
| 5-7 | GND |
+-----------------------+------------------------+
| 8-12 | LCD D11-D15 |
+-----------------------+------------------------+
| 13-14 | GND |
+-----------------------+------------------------+
| 15-20 | LCD D5-D10 |
+-----------------------+------------------------+
| 21-23 | GND |
+-----------------------+------------------------+
| 24-28 | LCD D0-D4 |
+-----------------------+------------------------+
| 29 | GND |
+-----------------------+------------------------+
| 30 | LCD CLK |
+-----------------------+------------------------+
| 31 | LCD DISP |
+-----------------------+------------------------+
| 32 | LCD HSYNC |
+-----------------------+------------------------+
| 33 | LCD VSYNC |
+-----------------------+------------------------+
| 34 | LCD DE |
+-----------------------+------------------------+
| 35 | NC |
+-----------------------+------------------------+
| 36 | GND |
+-----------------------+------------------------+
| 37-40 | NC |
+-----------------------+------------------------+

+-----------------------+------------------------+
| I2C Connector Pin | Function |
+=======================+========================+
| 1 | VDD (3v3) |
+-----------------------+------------------------+
| 2 | LCD Touch Reset |
+-----------------------+------------------------+
| 3 | LCD Touch Interrupt |
+-----------------------+------------------------+
| 4 | LCD I2C SCL |
+-----------------------+------------------------+
| 5 | LCD I2C SDA |
+-----------------------+------------------------+
| 6 | GND |
+-----------------------+------------------------+

Requirements
************

This shield can only be used with a board which provides a configuration
for the 40+6 pin parallel/I2C FPC interface

Programming
***********

Set ``-DSHIELD=rk043fn02h_ct`` when you invoke ``west build``. For
example:

.. zephyr-app-commands::
:zephyr-app: samples/drivers/display
:board: mimxrt1060_evk
:shield: rk043fn02h_ct
:goals: build

References
**********

.. target-notes::

.. _RK043FN02H-CT product page:
https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/4-3-lcd-panel:RK043FN02H-CT
Loading