boards: shields: add g1120b0mipi watch display
Add g1120b0mipi watch display to shields. This shield is currently supported with the RT595 and RT1170 EVK. The shield contains a 400x392 circular OLED watch display, with an integrated RM67162 display controller Note that the touchscreen IC can be driven by the FT5336 driver, with the following changes: - the FT3267 reports touch data as inverted from the FT5336, so LVGL must be made aware of this via CONFIG_LV_Z_POINTER_KSCAN_INVERT_Y - the FT3267 reports the X and Y coordinates as swapped from the FT5336. To resolve this, the RM67162 driver reports the display as rotated by 90 degrees. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
parent
066c40bbb0
commit
f907f9592d
8 changed files with 203 additions and 2 deletions
|
@ -131,7 +131,8 @@ RT1170 EVKB (`mimxrt1170_evkb_cm7/cm4`)
|
||||||
| HWINFO | on-chip | Unique device serial number | Supported (M7) | Supported (M7) |
|
| HWINFO | on-chip | Unique device serial number | Supported (M7) | Supported (M7) |
|
||||||
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
||||||
| DISPLAY | on-chip | eLCDIF; MIPI-DSI. Tested with | Supported (M7) | Supported (M7) |
|
| DISPLAY | on-chip | eLCDIF; MIPI-DSI. Tested with | Supported (M7) | Supported (M7) |
|
||||||
| | | :ref:`rk055hdmipi4m` shield | | |
|
| | | :ref:`rk055hdmipi4m` and | | |
|
||||||
|
| | | :ref:`g1120b0mipi` shields | | |
|
||||||
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
||||||
| ACMP | on-chip | analog comparator | Supported | No support |
|
| ACMP | on-chip | analog comparator | Supported | No support |
|
||||||
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
+-----------+------------+-------------------------------------+-----------------+-----------------+
|
||||||
|
|
|
@ -109,7 +109,8 @@ already supported, which can also be re-used on this mimxrt595_evk board:
|
||||||
| I2S | on-chip | i2s |
|
| I2S | on-chip | i2s |
|
||||||
+-----------+------------+-------------------------------------+
|
+-----------+------------+-------------------------------------+
|
||||||
| DISPLAY | on-chip | LCDIF; MIPI-DSI. Tested with |
|
| DISPLAY | on-chip | LCDIF; MIPI-DSI. Tested with |
|
||||||
| | | :ref:`rk055hdmipi4m` shield |
|
| | | :ref:`rk055hdmipi4m` and |
|
||||||
|
| | | :ref:`g1120b0mipi` display shields |
|
||||||
+-----------+------------+-------------------------------------+
|
+-----------+------------+-------------------------------------+
|
||||||
|
|
||||||
The default configuration can be found in the defconfig file:
|
The default configuration can be found in the defconfig file:
|
||||||
|
|
44
boards/shields/g1120b0mipi/Kconfig.defconfig
Normal file
44
boards/shields/g1120b0mipi/Kconfig.defconfig
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# Copyright 2023 NXP
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if SHIELD_G1120B0MIPI
|
||||||
|
|
||||||
|
if LVGL
|
||||||
|
# Enable input subsystem for FT5336 driver
|
||||||
|
config INPUT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config INPUT_FT5336_INTERRUPT
|
||||||
|
default y
|
||||||
|
|
||||||
|
# KSCAN subsystem must be enabled for KSCAN input shim driver
|
||||||
|
config KSCAN
|
||||||
|
default y
|
||||||
|
|
||||||
|
# Configure LVGL to use touchscreen with KSCAN API
|
||||||
|
config LV_Z_POINTER_KSCAN
|
||||||
|
default y
|
||||||
|
|
||||||
|
# Y coordinates need to be inverted for this controller. Note that
|
||||||
|
# the RM67162 display driver also reports the display orientation as rotated
|
||||||
|
# by 90 degrees, so LVGL will read coordinates correctly.
|
||||||
|
config LV_Z_POINTER_KSCAN_INVERT_Y
|
||||||
|
default y
|
||||||
|
|
||||||
|
# Swap 16 bit color setting for LVGL, to send high byte first
|
||||||
|
config LV_COLOR_16_SWAP
|
||||||
|
default y
|
||||||
|
|
||||||
|
config LV_Z_VDB_SIZE
|
||||||
|
default 16
|
||||||
|
|
||||||
|
config LV_DPI_DEF
|
||||||
|
default 128
|
||||||
|
|
||||||
|
choice LV_COLOR_DEPTH
|
||||||
|
default LV_COLOR_DEPTH_16
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif # LVGL
|
||||||
|
|
||||||
|
endif # SHIELD_G1120B0MIPI
|
5
boards/shields/g1120b0mipi/Kconfig.shield
Normal file
5
boards/shields/g1120b0mipi/Kconfig.shield
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Copyright 2023 NXP
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config SHIELD_G1120B0MIPI
|
||||||
|
def_bool $(shields_list_contains,g1120b0mipi)
|
12
boards/shields/g1120b0mipi/boards/mimxrt1170_evk_cm7.overlay
Normal file
12
boards/shields/g1120b0mipi/boards/mimxrt1170_evk_cm7.overlay
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023, NXP
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
&rm67162_g1120b0mipi {
|
||||||
|
/* R414 is not populated on this board, so LPTE signal is not
|
||||||
|
* connected. remove the property from the display.
|
||||||
|
*/
|
||||||
|
/delete-property/ te-gpios;
|
||||||
|
};
|
|
@ -0,0 +1,12 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023, NXP
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
&rm67162_g1120b0mipi {
|
||||||
|
/* R414 is not populated on this board, so LPTE signal is not
|
||||||
|
* connected. remove the property from the display.
|
||||||
|
*/
|
||||||
|
/delete-property/ te-gpios;
|
||||||
|
};
|
68
boards/shields/g1120b0mipi/doc/index.rst
Normal file
68
boards/shields/g1120b0mipi/doc/index.rst
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
.. _g1120b0mipi:
|
||||||
|
|
||||||
|
G1120B0MIPI MIPI Display
|
||||||
|
##########################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The G1120B0MIPI is a 1.2 inch circular AMOLED display, 390x390 pixels, with a
|
||||||
|
1-lane MIPI interface. This display connects to the i.MX RT595 Evaluation Kit.
|
||||||
|
|
||||||
|
|
||||||
|
More information about the shield can be found
|
||||||
|
at the `G1120B0MIPI product page`_.
|
||||||
|
|
||||||
|
This display uses a 40 pin FPC interface, which is available on many
|
||||||
|
NXP EVKs.
|
||||||
|
|
||||||
|
Pins Assignment of the G1120B0MIPI MIPI Display
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| FPC Connector Pin | Function |
|
||||||
|
+=======================+========================+
|
||||||
|
| 1 | LED backlight cathode |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 21 | Controller reset |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 22 | Controller LPTE |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 26 | Touch ctrl I2C SDA |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 27 | Touch ctrl I2C SCL |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 28 | Touch ctrl reset |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 29 | Touch ctrl interrupt |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 32 | LCD power enable |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
| 34 | Backlight power enable |
|
||||||
|
+-----------------------+------------------------+
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
************
|
||||||
|
|
||||||
|
This shield can only be used with a board which provides a configuration
|
||||||
|
for the 40 pin FPC interface
|
||||||
|
|
||||||
|
Programming
|
||||||
|
***********
|
||||||
|
|
||||||
|
Set ``-DSHIELD=g1120b0mipi`` when you invoke ``west build``. For
|
||||||
|
example:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/drivers/display
|
||||||
|
:board: mimxrt595_evk_cm33
|
||||||
|
:shield: g1120b0mipi
|
||||||
|
:goals: build
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
|
||||||
|
.. target-notes::
|
||||||
|
|
||||||
|
.. _G1120B0MIPI product page:
|
||||||
|
https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/1-2-wearable-display-g1120b0mipi:G1120B0MIPI
|
58
boards/shields/g1120b0mipi/g1120b0mipi.overlay
Normal file
58
boards/shields/g1120b0mipi/g1120b0mipi.overlay
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023, NXP
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/{
|
||||||
|
aliases {
|
||||||
|
kscan0 = &kscan_input_g1120b0mipi;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,display = &rm67162_g1120b0mipi;
|
||||||
|
zephyr,keyboard-scan = &kscan_input_g1120b0mipi;
|
||||||
|
};
|
||||||
|
|
||||||
|
en_mipi_display_g1120b0mipi: enable-mipi-display {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "en_mipi_display";
|
||||||
|
enable-gpios = <&nxp_mipi_connector 32 GPIO_ACTIVE_HIGH>;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&nxp_mipi_i2c {
|
||||||
|
status = "okay";
|
||||||
|
ft3267@38 {
|
||||||
|
/*
|
||||||
|
* Note- the actual controller present on this IC is a FT3267,
|
||||||
|
* but the FT35336 driver in Zephyr supports this IC.
|
||||||
|
*/
|
||||||
|
compatible = "focaltech,ft5336";
|
||||||
|
reg = <0x38>;
|
||||||
|
int-gpios = <&nxp_mipi_connector 29 GPIO_ACTIVE_LOW>;
|
||||||
|
reset-gpios = <&nxp_mipi_connector 28 GPIO_ACTIVE_HIGH>;
|
||||||
|
kscan_input_g1120b0mipi: kscan-input {
|
||||||
|
compatible = "zephyr,kscan-input";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&zephyr_mipi_dsi {
|
||||||
|
status = "okay";
|
||||||
|
autoinsert-eotp;
|
||||||
|
phy-clock = <316800000>;
|
||||||
|
rm67162_g1120b0mipi: rm67162@0 {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "raydium,rm67162";
|
||||||
|
reg = <0x0>;
|
||||||
|
reset-gpios = <&nxp_mipi_connector 21 GPIO_ACTIVE_HIGH>;
|
||||||
|
bl-gpios = <&nxp_mipi_connector 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
te-gpios = <&nxp_mipi_connector 22 GPIO_ACTIVE_HIGH>;
|
||||||
|
data-lanes = <1>;
|
||||||
|
width = <400>;
|
||||||
|
height = <392>;
|
||||||
|
pixel-format = <MIPI_DSI_PIXFMT_RGB565>;
|
||||||
|
};
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue