diff options
13 files changed, 353 insertions, 261 deletions
diff --git a/overlays/display-lt170410-dsi-lvds_overlay.dtsi b/overlays/display-lt170410-dsi-lvds_overlay.dtsi new file mode 100644 index 0000000..345fbdf --- /dev/null +++ b/overlays/display-lt170410-dsi-lvds_overlay.dtsi @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2025 Toradex + */ + +// LT170410 panel with a resolution of 1280x800 pixel. + +&{/} { + panel_lt170410: panel-lt170410 { + compatible = "panel-lvds"; + data-mapping = "vesa-24"; + height-mm = <136>; + width-mm = <217>; + + panel-timing { + clock-frequency = <68900000 71100000 73400000>; + de-active = <1>; + hactive = <1280 1280 1280>; + hback-porch = <23 60 71>; + hfront-porch = <23 60 71>; + hsync-len = <15 40 47>; + pixelclk-active = <1>; /* positive edge */ + vactive = <800 800 800>; + vback-porch = <5 7 10>; + vfront-porch = <5 7 10>; + vsync-len = <6 9 12>; + }; + }; +}; diff --git a/overlays/display-lt170410_sn65dsi84_overlay.dtsi b/overlays/display-lt170410_sn65dsi84_overlay.dtsi deleted file mode 100644 index 14c8f3b..0000000 --- a/overlays/display-lt170410_sn65dsi84_overlay.dtsi +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/* - * Copyright 2022 Toradex - */ - -// Verdin DSI to LVDS Adapter with connected LT170410 display (10 inch) with a -// resolution of 1280x800 pixel. Adapter and display can be ordered at Toradex. - -&lvds_ti_sn65dsi84 { - status = "okay"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@2 { - reg = <2>; - - lvds_out_panel: endpoint { - remote-endpoint = <&panel_in_lvds>; - }; - }; - }; -}; - -&panel_lvds { - compatible = "panel-lvds"; - backlight = <&backlight>; - data-mapping = "vesa-24"; - height-mm = <136>; - power-supply = <®_3p3v>; - width-mm = <217>; - status = "okay"; - - panel-timing { - clock-frequency = <68900000 71100000 73400000>; - de-active = <1>; - hactive = <1280 1280 1280>; - hback-porch = <23 60 71>; - hfront-porch = <23 60 71>; - hsync-len = <15 40 47>; - pixelclk-active = <1>; /* positive edge */ - vactive = <800 800 800>; - vback-porch = <5 7 10>; - vfront-porch = <5 7 10>; - vsync-len = <6 9 12>; - }; - - port { - panel_in_lvds: endpoint { - remote-endpoint = <&lvds_out_panel>; - }; - }; -}; diff --git a/overlays/display-rvt101hvdwc00b_overlay.dtsi b/overlays/display-rvt101hvdwc00b_overlay.dtsi index e5bf1b5..a84df5e 100644 --- a/overlays/display-rvt101hvdwc00b_overlay.dtsi +++ b/overlays/display-rvt101hvdwc00b_overlay.dtsi @@ -5,38 +5,32 @@ // RVT101HVDWC00-B DSI display (10 inch) with a resolution of 1280x800 pixel. -&panel_lvds { - compatible = "panel-lvds"; - backlight = <&backlight>; - data-mapping = "vesa-24"; - height-mm = <136>; - width-mm = <217>; - status = "okay"; +&{/} { + panel_rvt101hvdwc00: panel-rvt101hvdwc00 { + compatible = "panel-lvds"; + data-mapping = "vesa-24"; + height-mm = <136>; + width-mm = <217>; - /* - * These timings are hand-optimized and more stable then teorethical - * In particular HBP+HS should be 88 (display datasheet) - * Likely an higher value is needed due to dsi to lvds pipeline. - */ - panel-timing { - clock-frequency = <66300000 69300000 78900000>; - de-active = <1>; - hactive = <1280 1280 1280>; - hback-porch = <64 64 64>; - hfront-porch = <72 72 72>; - hsync-active = <0>; - hsync-len = <32 32 32>; - pixelclk-active = <1>; - vactive = <800 800 800>; - vback-porch = <15 15 15>; - vfront-porch = <15 15 15>; - vsync-active = <0>; - vsync-len = <8 8 8>; - }; - - port { - panel_in_lvds_riv: endpoint { - remote-endpoint = <&lvds_out_panel_riv>; + /* + * These timings are hand-optimized and more stable then teorethical + * In particular HBP+HS should be 88 (display datasheet) + * Likely an higher value is needed due to dsi to lvds pipeline. + */ + panel-timing { + clock-frequency = <66300000 69300000 78900000>; + de-active = <1>; + hactive = <1280 1280 1280>; + hback-porch = <64 64 64>; + hfront-porch = <72 72 72>; + hsync-active = <0>; + hsync-len = <32 32 32>; + pixelclk-active = <1>; + vactive = <800 800 800>; + vback-porch = <15 15 15>; + vfront-porch = <15 15 15>; + vsync-active = <0>; + vsync-len = <8 8 8>; }; }; }; diff --git a/overlays/display-rvt70hslnwca0_overlay.dtsi b/overlays/display-rvt70hslnwca0_overlay.dtsi index 702b858..70703c2 100644 --- a/overlays/display-rvt70hslnwca0_overlay.dtsi +++ b/overlays/display-rvt70hslnwca0_overlay.dtsi @@ -5,40 +5,34 @@ // RVT70HSLNWCA0 DSI display (7 inch) with a resolution of 1024x600 pixel. -&panel_lvds { - compatible = "panel-lvds"; - backlight = <&backlight>; - data-mapping = "vesa-24"; - height-mm = <86>; - width-mm = <154>; - status = "okay"; +&{/} { + panel_rvt70hslnwca0: panel-rvt70hslnwca0 { + compatible = "panel-lvds"; + data-mapping = "vesa-24"; + height-mm = <86>; + width-mm = <154>; - /* - * These timings are hand-optimized for improved stability compared to - * theoretical values. Specifically, HBP is set to 100 and combined with - * HS to total 160, matching the original HBP value in the datasheet. The - * original horizontal timings caused issues with proper display functionality - * on iMX8* platforms. - */ - panel-timing { - clock-frequency = <40800000 51200000 67200000>; - de-active = <1>; - hactive = <1024>; - hback-porch = <100 100 100>; - hfront-porch = <16 160 216>; - hsync-active = <0>; - hsync-len = <50 60 140>; - pixelclk-active = <1>; - vactive = <600>; - vback-porch = <23 23 23>; - vfront-porch = <1 12 126>; - vsync-active = <0>; - vsync-len = <1 10 20>; - }; - - port { - panel_in_lvds_riv: endpoint { - remote-endpoint = <&lvds_out_panel_riv>; + /* + * These timings are hand-optimized for improved stability compared to + * theoretical values. Specifically, HBP is set to 100 and combined with + * HS to total 160, matching the original HBP value in the datasheet. The + * original horizontal timings caused issues with proper display functionality + * on iMX8* platforms. + */ + panel-timing { + clock-frequency = <40800000 51200000 67200000>; + de-active = <1>; + hactive = <1024>; + hback-porch = <100 100 100>; + hfront-porch = <16 160 216>; + hsync-active = <0>; + hsync-len = <50 60 140>; + pixelclk-active = <1>; + vactive = <600>; + vback-porch = <23 23 23>; + vfront-porch = <1 12 126>; + vsync-active = <0>; + vsync-len = <1 10 20>; }; }; }; diff --git a/overlays/verdin-imx8_mipi-dsi-to-sn65dsi84.dtsi b/overlays/verdin-imx8_mipi-dsi-to-sn65dsi84.dtsi deleted file mode 100644 index 889d175..0000000 --- a/overlays/verdin-imx8_mipi-dsi-to-sn65dsi84.dtsi +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/* - * Copyright 2022 Toradex - */ - -// Common Code to setup MIPI DSI to SN65DSI84 - -#include <dt-bindings/gpio/gpio.h> - -&{/} { - reg_dsi_lvds: regulator-dsi-lvds { - compatible = "regulator-fixed"; - enable-active-high; - regulator-boot-on; - regulator-name = "DSI_1_PWR_EN"; - }; -}; - -&lvds_ti_sn65dsi84 { - compatible = "ti,sn65dsi84"; - vcc-supply = <®_dsi_lvds>; - status = "okay"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - dsi84_in: endpoint { - data-lanes = <1 2 3 4>; - remote-endpoint = <&mipi_dsi_bridge1_out>; - }; - }; - }; -}; - -&mipi_dsi { - samsung,esc-clock-frequency = <16000000>; - status = "okay"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@1 { - reg = <1>; - - mipi_dsi_bridge1_out: endpoint { - attach-bridge; - remote-endpoint = <&dsi84_in>; - }; - }; - }; -}; diff --git a/overlays/verdin-imx8mm_backlight-dsi_overlay.dtsi b/overlays/verdin-imx8mm_backlight-dsi_overlay.dtsi new file mode 100644 index 0000000..ea1ab26 --- /dev/null +++ b/overlays/verdin-imx8mm_backlight-dsi_overlay.dtsi @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * Backlight on DSI connector + */ + +&{/} { + backlight_verdin_dsi: backlight-verdin-dsi { + compatible = "pwm-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2s_2_d_out_dsi_1_bkl_en>; + brightness-levels = <0 45 63 88 119 158 203 255>; + default-brightness-level = <4>; + /* Verdin I2S_2_D_OUT (DSI_1_BKL_EN/DSI_1_BKL_EN_LVDS, SODIMM 46) */ + enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; + /* Verdin PWM_3_DSI */ + pwms = <&pwm1 0 6666667 0>; + }; +}; + +/* Verdin PWM_3_DSI */ +&pwm1 { + status = "okay"; +}; diff --git a/overlays/verdin-imx8mm_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts b/overlays/verdin-imx8mm_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts index e9c1929..3ed39d0 100644 --- a/overlays/verdin-imx8mm_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts +++ b/overlays/verdin-imx8mm_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts @@ -13,38 +13,115 @@ compatible = "toradex,verdin-imx8mm"; }; -#include "verdin-imx8_mipi-dsi-to-sn65dsi84.dtsi" -#include "display-lt170410_sn65dsi84_overlay.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/pwm/pwm.h> -&atmel_mxt_ts { - vdd-supply = <®_dsi_lvds>; - status = "okay"; -}; +#include "verdin-imx8mm_backlight-dsi_overlay.dtsi" +#include "display-lt170410-dsi-lvds_overlay.dtsi" -&backlight { - status = "okay"; +&{/} { + reg_dsi_lvds: regulator-dsi-lvds { + compatible = "regulator-fixed"; + enable-active-high; + /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ + gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>; + regulator-boot-on; + regulator-name = "DSI_1_PWR_EN"; + }; }; -/* Verdin I2C_2_DSI */ -&i2c2 { - status = "okay"; +&backlight_verdin_dsi { + pwms = <&pwm1 0 6666667 PWM_POLARITY_INVERTED>; }; /* Verdin I2C_1 */ &i2c4 { + #address-cells = <1>; + #size-cells = <0>; status = "okay"; + + bridge@2c { + compatible = "ti,sn65dsi84"; + reg = <0x2c>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_10_dsi>; + /* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */ + /* Verdin GPIO_10_DSI (SODIMM 21) */ + enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; + vcc-supply = <®_dsi_lvds>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dsi_lvds_bridge_in: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&mipi_dsi_bridge1_out>; + }; + }; + + port@2 { + reg = <2>; + + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_lt170410>; + }; + }; + }; + }; + + touch@4a { + compatible = "atmel,maxtouch"; + reg = <0x4a>; + /* + * Verdin GPIO_9_DSI + * (TOUCH_INT#, SODIMM 17, also routed to SN65DSI84 IRQ albeit currently unused) + */ + interrupt-parent = <&gpio3>; + interrupts = <15 IRQ_TYPE_EDGE_FALLING>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; + /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ + reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; + vdd-supply = <®_dsi_lvds>; + status = "okay"; + }; }; &lcdif { status = "okay"; }; -/* Verdin PWM_3_DSI */ -&pwm1 { +&mipi_dsi { + samsung,esc-clock-frequency = <16000000>; status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + mipi_dsi_bridge1_out: endpoint { + attach-bridge; + remote-endpoint = <&dsi_lvds_bridge_in>; + }; + }; + }; }; -®_dsi_lvds { - /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ - gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>; +&panel_lt170410 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_lt170410: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; diff --git a/overlays/verdin-imx8mm_panel-cap-touch-10inch-dsi_overlay.dts b/overlays/verdin-imx8mm_panel-cap-touch-10inch-dsi_overlay.dts index fdc4bf1..9e2aab3 100644 --- a/overlays/verdin-imx8mm_panel-cap-touch-10inch-dsi_overlay.dts +++ b/overlays/verdin-imx8mm_panel-cap-touch-10inch-dsi_overlay.dts @@ -14,11 +14,18 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> + #include "display-rvt101hvdwc00b_overlay.dtsi" +#include "verdin-imx8mm_backlight-dsi_overlay.dtsi" -&backlight { - pwms = <&pwm1 0 6666667 0>; - status = "okay"; +&panel_rvt101hvdwc00 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_rvt101hvdwc00: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; /* Verdin I2C_2_DSI */ @@ -35,6 +42,7 @@ enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + status = "okay"; ports { #address-cells = <1>; @@ -43,7 +51,7 @@ port@0 { reg = <0>; - dsi_riv_in: endpoint { + dsi_lvds_bridge_in: endpoint { data-lanes = <1 2 3 4>; remote-endpoint = <&mipi_dsi_bridge1_out>; }; @@ -52,8 +60,8 @@ port@2 { reg = <2>; - lvds_out_panel_riv: endpoint { - remote-endpoint = <&panel_in_lvds_riv>; + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_rvt101hvdwc00>; }; }; }; @@ -69,6 +77,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; + status = "okay"; }; }; @@ -89,7 +98,7 @@ mipi_dsi_bridge1_out: endpoint { attach-bridge; - remote-endpoint = <&dsi_riv_in>; + remote-endpoint = <&dsi_lvds_bridge_in>; }; }; }; diff --git a/overlays/verdin-imx8mm_panel-cap-touch-7inch-dsi_overlay.dts b/overlays/verdin-imx8mm_panel-cap-touch-7inch-dsi_overlay.dts index 30131d6..9bc3666 100644 --- a/overlays/verdin-imx8mm_panel-cap-touch-7inch-dsi_overlay.dts +++ b/overlays/verdin-imx8mm_panel-cap-touch-7inch-dsi_overlay.dts @@ -14,11 +14,18 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> + #include "display-rvt70hslnwca0_overlay.dtsi" +#include "verdin-imx8mm_backlight-dsi_overlay.dtsi" -&backlight { - pwms = <&pwm1 0 6666667 0>; - status = "okay"; +&panel_rvt70hslnwca0 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_rvt70hslnwca0: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; /* Verdin I2C_2_DSI */ @@ -35,6 +42,7 @@ enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + status = "okay"; ports { #address-cells = <1>; @@ -43,7 +51,7 @@ port@0 { reg = <0>; - dsi_riv_in: endpoint { + dsi_lvds_bridge_in: endpoint { data-lanes = <1 2 3 4>; remote-endpoint = <&mipi_dsi_bridge1_out>; }; @@ -52,8 +60,8 @@ port@2 { reg = <2>; - lvds_out_panel_riv: endpoint { - remote-endpoint = <&panel_in_lvds_riv>; + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_rvt70hslnwca0>; }; }; }; @@ -69,6 +77,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; + status = "okay"; }; }; @@ -89,7 +98,7 @@ mipi_dsi_bridge1_out: endpoint { attach-bridge; - remote-endpoint = <&dsi_riv_in>; + remote-endpoint = <&dsi_lvds_bridge_in>; }; }; }; diff --git a/overlays/verdin-imx8mp_backlight-dsi_overlay.dtsi b/overlays/verdin-imx8mp_backlight-dsi_overlay.dtsi new file mode 100644 index 0000000..bb6d6d6 --- /dev/null +++ b/overlays/verdin-imx8mp_backlight-dsi_overlay.dtsi @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * Backlight on DSI connector + */ + +&{/} { + backlight_verdin_dsi: backlight-verdin-dsi { + compatible = "pwm-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2s_2_d_out_dsi_1_bkl_en>; + brightness-levels = <0 45 63 88 119 158 203 255>; + default-brightness-level = <4>; + /* Verdin I2S_2_D_OUT (DSI_1_BKL_EN/DSI_1_BKL_EN_LVDS, SODIMM 46) */ + enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + /* Verdin PWM_3_DSI */ + pwms = <&pwm3 0 6666667 0>; + }; +}; + +/* Verdin PWM_3_DSI */ +&pwm3 { + status = "okay"; +}; diff --git a/overlays/verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts b/overlays/verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts index 80703c5..c0bf87e 100644 --- a/overlays/verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts +++ b/overlays/verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dts @@ -9,36 +9,30 @@ /dts-v1/; /plugin/; +/ { + compatible = "toradex,verdin-imx8mp"; +}; + #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/pwm/pwm.h> -/ { - compatible = "toradex,verdin-imx8mp"; -}; +#include "verdin-imx8mp_backlight-dsi_overlay.dtsi" +#include "display-lt170410-dsi-lvds_overlay.dtsi" &{/} { - backlight { - compatible = "pwm-backlight"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_i2s_2_d_out_dsi_1_bkl_en>; - brightness-levels = <0 45 63 88 119 158 203 255>; - default-brightness-level = <4>; - /* Verdin I2S_2_D_OUT (DSI_1_BKL_EN/DSI_1_BKL_EN_LVDS, SODIMM 46) */ - enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - power-supply = <®_3p3v>; - /* Verdin PWM_3_DSI/PWM_3_DSI_LVDS (SODIMM 19) */ - pwms = <&pwm3 0 6666667 PWM_POLARITY_INVERTED>; - status = "okay"; + reg_dsi_lvds: regulator-dsi-lvds { + compatible = "regulator-fixed"; + enable-active-high; + /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ + gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; + regulator-boot-on; + regulator-name = "DSI_1_PWR_EN"; }; +}; - panel_lvds: panel-lvds { - compatible = "panel-lvds"; - backlight = <&backlight>; - data-mapping = "vesa-24"; - height-mm = <136>; - width-mm = <217>; - }; +&backlight_verdin_dsi { + pwms = <&pwm3 0 6666667 PWM_POLARITY_INVERTED>; }; /* Verdin I2C_1 */ @@ -47,7 +41,7 @@ #size-cells = <0>; status = "okay"; - lvds_ti_sn65dsi84: bridge@2c { + bridge@2c { compatible = "ti,sn65dsi84"; reg = <0x2c>; pinctrl-names = "default"; @@ -55,6 +49,30 @@ /* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */ /* Verdin GPIO_10_DSI (SODIMM 21) */ enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; + vcc-supply = <®_dsi_lvds>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dsi_lvds_bridge_in: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&mipi_dsi_bridge1_out>; + }; + }; + + port@2 { + reg = <2>; + + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_lt170410>; + }; + }; + }; }; touch@4a { @@ -80,16 +98,32 @@ status = "okay"; }; -/* Verdin PWM_3_DSI */ -&pwm3 { +&mipi_dsi { + samsung,esc-clock-frequency = <16000000>; status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + mipi_dsi_bridge1_out: endpoint { + attach-bridge; + remote-endpoint = <&dsi_lvds_bridge_in>; + }; + }; + }; }; -®_dsi_lvds { - /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ - gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; +&panel_lt170410 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_lt170410: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; -/* As the following make use of labels only just created above */ -#include "display-lt170410_sn65dsi84_overlay.dtsi" -#include "verdin-imx8_mipi-dsi-to-sn65dsi84.dtsi" diff --git a/overlays/verdin-imx8mp_panel-cap-touch-10inch-dsi_overlay.dts b/overlays/verdin-imx8mp_panel-cap-touch-10inch-dsi_overlay.dts index fe0b115..91eedfe 100644 --- a/overlays/verdin-imx8mp_panel-cap-touch-10inch-dsi_overlay.dts +++ b/overlays/verdin-imx8mp_panel-cap-touch-10inch-dsi_overlay.dts @@ -15,14 +15,17 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> -&{/} { - panel_lvds: panel-lvds { - }; -}; +#include "display-rvt101hvdwc00b_overlay.dtsi" +#include "verdin-imx8mm_backlight-dsi_overlay.dtsi" -&backlight { - pwms = <&pwm3 0 6666667 0>; - status = "okay"; +&panel_rvt101hvdwc00 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_rvt101hvdwc00: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; /* Verdin I2C_2_DSI */ @@ -39,6 +42,7 @@ enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + status = "okay"; ports { #address-cells = <1>; @@ -47,7 +51,7 @@ port@0 { reg = <0>; - dsi_riv_in: endpoint { + dsi_lvds_bridge_in: endpoint { data-lanes = <1 2 3 4>; remote-endpoint = <&mipi_dsi_bridge1_out>; }; @@ -56,8 +60,8 @@ port@2 { reg = <2>; - lvds_out_panel_riv: endpoint { - remote-endpoint = <&panel_in_lvds_riv>; + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_rvt101hvdwc00>; }; }; }; @@ -73,6 +77,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; + status = "okay"; }; }; @@ -94,10 +99,8 @@ mipi_dsi_bridge1_out: endpoint { attach-bridge; - remote-endpoint = <&dsi_riv_in>; + remote-endpoint = <&dsi_lvds_bridge_in>; }; }; }; }; - -#include "display-rvt101hvdwc00b_overlay.dtsi" diff --git a/overlays/verdin-imx8mp_panel-cap-touch-7inch-dsi_overlay.dts b/overlays/verdin-imx8mp_panel-cap-touch-7inch-dsi_overlay.dts index 4fd4969..b34d101 100644 --- a/overlays/verdin-imx8mp_panel-cap-touch-7inch-dsi_overlay.dts +++ b/overlays/verdin-imx8mp_panel-cap-touch-7inch-dsi_overlay.dts @@ -15,14 +15,17 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> -&{/} { - panel_lvds: panel-lvds { - }; -}; +#include "display-rvt70hslnwca0_overlay.dtsi" +#include "verdin-imx8mp_backlight-dsi_overlay.dtsi" -&backlight { - pwms = <&pwm3 0 6666667 0>; - status = "okay"; +&panel_rvt70hslnwca0 { + backlight = <&backlight_verdin_dsi>; + + port { + panel_in_rvt70hslnwca0: endpoint { + remote-endpoint = <&dsi_lvds_bridge_out>; + }; + }; }; /* Verdin I2C_2_DSI */ @@ -39,6 +42,7 @@ enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + status = "okay"; ports { #address-cells = <1>; @@ -47,7 +51,7 @@ port@0 { reg = <0>; - dsi_riv_in: endpoint { + dsi_lvds_bridge_in: endpoint { data-lanes = <1 2 3 4>; remote-endpoint = <&mipi_dsi_bridge1_out>; }; @@ -56,8 +60,8 @@ port@2 { reg = <2>; - lvds_out_panel_riv: endpoint { - remote-endpoint = <&panel_in_lvds_riv>; + dsi_lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_rvt70hslnwca0>; }; }; }; @@ -73,6 +77,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; + status = "okay"; }; }; @@ -94,10 +99,8 @@ mipi_dsi_bridge1_out: endpoint { attach-bridge; - remote-endpoint = <&dsi_riv_in>; + remote-endpoint = <&dsi_lvds_bridge_in>; }; }; }; }; - -#include "display-rvt70hslnwca0_overlay.dtsi" |