Skip to content
Open
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
17 changes: 15 additions & 2 deletions boards/nxp/imx93_evk/imx93_evk_mimx9352_m33_ddr.dts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
/*
* Copyright 2024 NXP
* Copyright 2024-2025 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;

#include "imx93_evk_mimx9352_m33.dts"
#include <dt-bindings/mipi_dsi/mipi_dsi.h>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update copyright to 2024-2025

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update copyright to 2024-2025

Fixed, thanks for checking


/ {
model = "NXP i.MX93 EVK board DDR variant";
Expand All @@ -18,6 +19,18 @@

ddr: memory@84000000 {
device_type = "memory";
reg = <0x84000000 DT_SIZE_M(4)>;
reg = <0x84000000 DT_SIZE_M(32)>;
};
};

&lpi2c2 {
pinctrl-0 = <&i2c2_default>;
pinctrl-names = "default";
status = "okay";
};

zephyr_lcdif: &lcdif {};

display_i2c: &lpi2c2 {};

zephyr_mipi_dsi: &mipi_dsi {};
33 changes: 33 additions & 0 deletions boards/shields/nxp_mx8_dsi_oled1a/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#
# Copyright 2025 NXP
#
# SPDX-License-Identifier: Apache-2.0
#

if SHIELD_NXP_MX8_DSI_OLED1A

if DISPLAY

if LVGL

config LV_Z_VDB_SIZE
default 100

config LV_Z_DOUBLE_VDB
default y

config LV_Z_BITS_PER_PIXEL
default 32

config LV_Z_FULL_REFRESH
default y

choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_32
endchoice

endif # LVGL

endif # DISPLAY

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

config SHIELD_NXP_MX8_DSI_OLED1A
def_bool $(shields_list_contains,nxp_mx8_dsi_oled1a)
49 changes: 49 additions & 0 deletions boards/shields/nxp_mx8_dsi_oled1a/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
.. _nxp_mx8_dsi_oled1a:

NXP MX8 DSI OLED1A Panel
#########################

Overview
********

The NXP MX8 DSI OLED1A Panel is a high-resolution OLED display panel
designed for use with NXP i.MX8 series processors. This panel provides
excellent color reproduction and contrast ratio through OLED technology.
The display connects via MIPI DSI interface and offers superior visual
performance for embedded applications.

More information about the panel can be found
at the `NXP MX8 DSI OLED1A Panel website`_.

Current supported displays
==========================

+--------------+------------------------------+
| Display | Shield Designation |
| | |
+==============+==============================+
| MX8 DSI | nxp_mx8_dsi_oled1a |
| OLED1A | |
+--------------+------------------------------+

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

Correct shield designation (see the table above) for your display must
be entered when you invoke ``west build``.

For example:

.. zephyr-app-commands::
:zephyr-app: samples/subsys/display/lvgl
:board: imx93_evk/mimx9352/m33/ddr
:shield: nxp_mx8_dsi_oled1a
:goals: build

References
**********

.. target-notes::

.. _NXP MX8 DSI OLED1A Panel website:
https://www.nxp.com/part/MX8-DSI-OLED1A
90 changes: 90 additions & 0 deletions boards/shields/nxp_mx8_dsi_oled1a/nxp_mx8_dsi_oled1a.overlay
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/*
* Copyright 2025 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <zephyr/dt-bindings/display/panel.h>

/ {
chosen {
zephyr,display = &lcdif;
};
};

&media_blk_ctrl {
status = "okay";
};

&video_pll {
compatible = "nxp,imx93-video-pll";
rdiv = <1>;
mfi = <121>;
mfn = <0>;
mfd = <1>;
odiv = <6>;
pll-frequency = <484000000>;
status = "okay";
};

&zephyr_lcdif {
width = <1080>;
height = <1920>;
pixel-format = "argb-8888";
media-axi-clk-rate = <400000000>;
media-apb-clk-rate = <133333334>;
status = "okay";

display-timings {
compatible = "zephyr,panel-timing";
hsync-len = <2>;
hfront-porch = <20>;
hback-porch = <34>;
vsync-len = <2>;
vfront-porch = <10>;
vback-porch = <4>;
de-active = <0>;
pixelclk-active = <0>;
hsync-active = <1>;
vsync-active = <1>;
clock-frequency = <121000000>;
};
};

&zephyr_mipi_dsi {
nxp,dc = <&lcdif>;
dpi-color-coding = "24-bit";
dpi-video-mode = "non-burst-sync-pulse";
dphy-ref-frequency = <24000000>;
data-rate-clock = <726000000>;
status = "okay";

rm67199_panel@0 {
compatible = "raydium,rm67199";
reg = <0>;
bl-gpios = <&gpio_exp0 10 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio_exp0 9 GPIO_ACTIVE_HIGH>;
data-lanes = <4>;
pixel-format = <MIPI_DSI_PIXFMT_RGB888>;
status = "okay";
};
};

&display_i2c {
status = "okay";

mfd0: adp5585@34 {
compatible = "adi,adp5585";
reg = <0x34>;
status = "okay";

gpio_exp0: adp5585_gpio {
compatible = "adi,adp5585-gpio";
gpio-controller;
#gpio-cells = <2>;
ngpios = <13>;
gpio-reserved-ranges = <5 3>;
status = "okay";
};
};
};
6 changes: 6 additions & 0 deletions boards/shields/nxp_mx8_dsi_oled1a/shield.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
shield:
name: nxp_mx8_dsi_oled1a
full_name: NXP MX8-DSI-OLED1A
vendor: nxp
supported_features:
- display
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,14 @@
&dsi_panel {
mipi-dsi = <&mipi_dsi>;
};

&video_pll {
compatible = "nxp,imx93-video-pll";
rdiv = <1>;
mfi = <200>;
mfn = <0>;
mfd = <1>;
odiv = <12>;
pll-frequency = <400000000>;
status = "okay";
};
91 changes: 46 additions & 45 deletions drivers/display/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,59 +2,60 @@

zephyr_library()
zephyr_library_sources_ifdef(CONFIG_DISPLAY_MCUX_ELCDIF display_mcux_elcdif.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_MCUX_LCDIFV3 display_mcux_lcdifv3.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_MCUX_LCDIFV3 display_mcux_lcdifv3.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_NRF_LED_MATRIX display_nrf_led_matrix.c)
zephyr_library_sources_ifdef(CONFIG_DUMMY_DISPLAY display_dummy.c)
zephyr_library_sources_ifdef(CONFIG_INTEL_MULTIBOOTFB_DISPLAY display_intel_multibootfb.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_MCUX_DCNANO_LCDIF display_mcux_dcnano_lcdif.c)
zephyr_library_sources_ifdef(CONFIG_UC81XX uc81xx.c)
zephyr_library_sources_ifdef(CONFIG_ILI9XXX display_ili9xxx.c)
zephyr_library_sources_ifdef(CONFIG_ILI9340 display_ili9340.c)
zephyr_library_sources_ifdef(CONFIG_ILI9341 display_ili9341.c)
zephyr_library_sources_ifdef(CONFIG_ILI9342C display_ili9342c.c)
zephyr_library_sources_ifdef(CONFIG_ILI9488 display_ili9488.c)
zephyr_library_sources_ifdef(CONFIG_IST3931 display_ist3931.c)
zephyr_library_sources_ifdef(CONFIG_LS0XX ls0xx.c)
zephyr_library_sources_ifdef(CONFIG_MAX7219 display_max7219.c)
zephyr_library_sources_ifdef(CONFIG_OTM8009A display_otm8009a.c)
zephyr_library_sources_ifdef(CONFIG_SH1122 display_sh1122.c)
zephyr_library_sources_ifdef(CONFIG_SSD1320 display_ssd1320.c)
zephyr_library_sources_ifdef(CONFIG_SSD1363 display_ssd1363.c)
zephyr_library_sources_ifdef(CONFIG_SSD1306 ssd1306.c)
zephyr_library_sources_ifdef(CONFIG_SSD1327 ssd1327.c)
zephyr_library_sources_ifdef(CONFIG_SSD16XX ssd16xx.c)
zephyr_library_sources_ifdef(CONFIG_SSD1322 ssd1322.c)
zephyr_library_sources_ifdef(CONFIG_SSD1331 display_ssd1331.c)
zephyr_library_sources_ifdef(CONFIG_SSD135X display_ssd135x.c)
zephyr_library_sources_ifdef(CONFIG_ST730X display_st730x.c)
zephyr_library_sources_ifdef(CONFIG_ST75256 display_st75256.c)
zephyr_library_sources_ifdef(CONFIG_ST7567 display_st7567.c)
zephyr_library_sources_ifdef(CONFIG_ST7789V display_st7789v.c)
zephyr_library_sources_ifdef(CONFIG_ST7735R display_st7735r.c)
zephyr_library_sources_ifdef(CONFIG_ST7796S display_st7796s.c)
zephyr_library_sources_ifdef(CONFIG_STM32_LTDC display_stm32_ltdc.c)
zephyr_library_sources_ifdef(CONFIG_WAVESHARE_7INCH_DSI_LCD_C display_waveshare_dsi_lcd.c)
zephyr_library_sources_ifdef(CONFIG_RM68200 display_rm68200.c)
zephyr_library_sources_ifdef(CONFIG_RM67162 display_rm67162.c)
zephyr_library_sources_ifdef(CONFIG_HUB12 display_hub12.c)
zephyr_library_sources_ifdef(CONFIG_HX8379C display_hx8379c.c)
zephyr_library_sources_ifdef(CONFIG_HX8394 display_hx8394.c)
zephyr_library_sources_ifdef(CONFIG_GC9X01X display_gc9x01x.c)
zephyr_library_sources_ifdef(CONFIG_LED_STRIP_MATRIX display_led_strip_matrix.c)
zephyr_library_sources_ifdef(CONFIG_DUMMY_DISPLAY display_dummy.c)
zephyr_library_sources_ifdef(CONFIG_INTEL_MULTIBOOTFB_DISPLAY display_intel_multibootfb.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_MCUX_DCNANO_LCDIF display_mcux_dcnano_lcdif.c)
zephyr_library_sources_ifdef(CONFIG_UC81XX uc81xx.c)
zephyr_library_sources_ifdef(CONFIG_ILI9XXX display_ili9xxx.c)
zephyr_library_sources_ifdef(CONFIG_ILI9340 display_ili9340.c)
zephyr_library_sources_ifdef(CONFIG_ILI9341 display_ili9341.c)
zephyr_library_sources_ifdef(CONFIG_ILI9342C display_ili9342c.c)
zephyr_library_sources_ifdef(CONFIG_ILI9488 display_ili9488.c)
zephyr_library_sources_ifdef(CONFIG_IST3931 display_ist3931.c)
zephyr_library_sources_ifdef(CONFIG_LS0XX ls0xx.c)
zephyr_library_sources_ifdef(CONFIG_MAX7219 display_max7219.c)
zephyr_library_sources_ifdef(CONFIG_OTM8009A display_otm8009a.c)
zephyr_library_sources_ifdef(CONFIG_SH1122 display_sh1122.c)
zephyr_library_sources_ifdef(CONFIG_SSD1320 display_ssd1320.c)
zephyr_library_sources_ifdef(CONFIG_SSD1363 display_ssd1363.c)
zephyr_library_sources_ifdef(CONFIG_SSD1306 ssd1306.c)
zephyr_library_sources_ifdef(CONFIG_SSD1327 ssd1327.c)
zephyr_library_sources_ifdef(CONFIG_SSD16XX ssd16xx.c)
zephyr_library_sources_ifdef(CONFIG_SSD1322 ssd1322.c)
zephyr_library_sources_ifdef(CONFIG_SSD1331 display_ssd1331.c)
zephyr_library_sources_ifdef(CONFIG_SSD135X display_ssd135x.c)
zephyr_library_sources_ifdef(CONFIG_ST730X display_st730x.c)
zephyr_library_sources_ifdef(CONFIG_ST75256 display_st75256.c)
zephyr_library_sources_ifdef(CONFIG_ST7567 display_st7567.c)
zephyr_library_sources_ifdef(CONFIG_ST7789V display_st7789v.c)
zephyr_library_sources_ifdef(CONFIG_ST7735R display_st7735r.c)
zephyr_library_sources_ifdef(CONFIG_ST7796S display_st7796s.c)
zephyr_library_sources_ifdef(CONFIG_STM32_LTDC display_stm32_ltdc.c)
zephyr_library_sources_ifdef(CONFIG_WAVESHARE_7INCH_DSI_LCD_C display_waveshare_dsi_lcd.c)
zephyr_library_sources_ifdef(CONFIG_RM68200 display_rm68200.c)
zephyr_library_sources_ifdef(CONFIG_RM67162 display_rm67162.c)
zephyr_library_sources_ifdef(CONFIG_RM67199 display_rm67199.c)
zephyr_library_sources_ifdef(CONFIG_HUB12 display_hub12.c)
zephyr_library_sources_ifdef(CONFIG_HX8379C display_hx8379c.c)
zephyr_library_sources_ifdef(CONFIG_HX8394 display_hx8394.c)
zephyr_library_sources_ifdef(CONFIG_GC9X01X display_gc9x01x.c)
zephyr_library_sources_ifdef(CONFIG_LED_STRIP_MATRIX display_led_strip_matrix.c)
zephyr_library_sources_ifdef(CONFIG_DISPLAY_RENESAS_LCDC display_renesas_lcdc.c)
zephyr_library_sources_ifdef(CONFIG_NT35510 display_nt35510.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RA_GLCDC display_renesas_ra.c)
zephyr_library_sources_ifdef(CONFIG_ILI9806E_DSI display_ili9806e_dsi.c)
zephyr_library_sources_ifdef(CONFIG_NT35510 display_nt35510.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RA_GLCDC display_renesas_ra.c)
zephyr_library_sources_ifdef(CONFIG_ILI9806E_DSI display_ili9806e_dsi.c)
zephyr_library_sources_ifdef(CONFIG_ST7701 display_st7701.c)
zephyr_library_sources_ifdef(CONFIG_LPM013M126 display_lpm013m126.c)
zephyr_library_sources_ifdef(CONFIG_CO5300 display_co5300.c)

zephyr_library_sources_ifdef(CONFIG_MICROBIT_DISPLAY
mb_display.c
mb_font.c
mb_display.c
mb_font.c
)

if(CONFIG_SDL_DISPLAY)
zephyr_library_sources(display_sdl.c)
target_sources(native_simulator INTERFACE display_sdl_bottom.c)
zephyr_library_sources(display_sdl.c)
target_sources(native_simulator INTERFACE display_sdl_bottom.c)
endif()
1 change: 1 addition & 0 deletions drivers/display/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ source "drivers/display/Kconfig.uc81xx"
source "drivers/display/Kconfig.dummy"
source "drivers/display/Kconfig.ls0xx"
source "drivers/display/Kconfig.rm67162"
source "drivers/display/Kconfig.rm67199"
source "drivers/display/Kconfig.rm68200"
source "drivers/display/Kconfig.max7219"
source "drivers/display/Kconfig.intel_multibootfb"
Expand Down
1 change: 0 additions & 1 deletion drivers/display/Kconfig.mcux_lcdifv3
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ menuconfig DISPLAY_MCUX_LCDIFV3
default y
depends on DT_HAS_NXP_IMX_LCDIFV3_ENABLED
depends on CLOCK_CONTROL
select INIT_VIDEO_PLL
help
Enable support for mcux LCDIFV3 driver.

Expand Down
10 changes: 10 additions & 0 deletions drivers/display/Kconfig.rm67199
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright 2025 NXP
# SPDX-License-Identifier: Apache-2.0

config RM67199
bool "RM67199 display driver"
default y
select MIPI_DSI
depends on DT_HAS_RAYDIUM_RM67199_ENABLED
help
Enable driver for RM67199 display.
Loading