Message ID | 20230821134026.385752-2-alexander.stein@ew.tq-group.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | TQMa8MxML LVDS support | expand |
On 21/08/2023 15:40, Alexander Stein wrote: > This adds the DSI-LVDS bridge including the regulator, backlight and > an unspecified panel. It is expected to set the compatible when the > display chain is enabled. > > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > .../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++ > .../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++ > arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++ > 3 files changed, 102 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts > index 156d793a0c972..b2b825d990a62 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts > @@ -56,6 +56,19 @@ usb_dr_connector: endpoint { > }; > }; > > +&dsi_lvds_bridge { > + ports { > + port@0 { > + reg = <0>; > + > + lvds_bridge_in: endpoint { > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&mipi_dsi_out>; > + }; > + }; > + }; > +}; > + > &i2c1 { > expander2: gpio@27 { > compatible = "nxp,pca9555"; > @@ -72,6 +85,22 @@ expander2: gpio@27 { > }; > }; > > +&mipi_dsi { > + samsung,burst-clock-frequency = <891000000>; > + samsung,esc-clock-frequency = <20000000>; > + > + ports { > + port@1 { > + reg = <1>; > + > + mipi_dsi_out: endpoint { > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&lvds_bridge_in>; > + }; > + }; > + }; > +}; > + > &pcie_phy { > clocks = <&pcie0_refclk>; > status = "okay"; > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi > index b4466a26d838a..8c0c6e7159247 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi > @@ -230,6 +230,11 @@ eeprom0: eeprom@57 { > }; > }; > > +&mipi_dsi { > + vddcore-supply = <&ldo4_reg>; > + vddio-supply = <&ldo3_reg>; > +}; > + > &pcie_phy { > fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>; > fsl,clkreq-unsupported; > diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi > index 8a9fe5cdcc98a..269e604cb1574 100644 > --- a/arch/arm64/boot/dts/freescale/mba8mx.dtsi > +++ b/arch/arm64/boot/dts/freescale/mba8mx.dtsi > @@ -8,6 +8,16 @@ > /* TQ-Systems GmbH MBa8Mx baseboard */ > > / { > + backlight_lvds0: backlight0 { Why 0? > + compatible = "pwm-backlight"; > + pwms = <&pwm3 0 5000000 0>; > + brightness-levels = <0 4 8 16 32 64 128 255>; > + default-brightness-level = <7>; > + power-supply = <®_12v>; > + enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>; > + status = "disabled"; > + }; > + > beeper { > compatible = "pwm-beeper"; > pwms = <&pwm4 0 250000 0>; > @@ -65,12 +75,45 @@ led2: led2 { > }; > }; > > + gpio_delays: gpio-delays { > + compatible = "gpio-delay"; > + #gpio-cells = <3>; > + gpio-controller; > + gpios = <&expander0 6 GPIO_ACTIVE_HIGH>; > + gpio-line-names = "LVDS_BRIDGE_EN_1V8"; > + }; > + > + panel0: panel_lvds0 { No underscores in node names. Why 0? Best regards, Krzysztof
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts index 156d793a0c972..b2b825d990a62 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts @@ -56,6 +56,19 @@ usb_dr_connector: endpoint { }; }; +&dsi_lvds_bridge { + ports { + port@0 { + reg = <0>; + + lvds_bridge_in: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&mipi_dsi_out>; + }; + }; + }; +}; + &i2c1 { expander2: gpio@27 { compatible = "nxp,pca9555"; @@ -72,6 +85,22 @@ expander2: gpio@27 { }; }; +&mipi_dsi { + samsung,burst-clock-frequency = <891000000>; + samsung,esc-clock-frequency = <20000000>; + + ports { + port@1 { + reg = <1>; + + mipi_dsi_out: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_bridge_in>; + }; + }; + }; +}; + &pcie_phy { clocks = <&pcie0_refclk>; status = "okay"; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi index b4466a26d838a..8c0c6e7159247 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi @@ -230,6 +230,11 @@ eeprom0: eeprom@57 { }; }; +&mipi_dsi { + vddcore-supply = <&ldo4_reg>; + vddio-supply = <&ldo3_reg>; +}; + &pcie_phy { fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>; fsl,clkreq-unsupported; diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi index 8a9fe5cdcc98a..269e604cb1574 100644 --- a/arch/arm64/boot/dts/freescale/mba8mx.dtsi +++ b/arch/arm64/boot/dts/freescale/mba8mx.dtsi @@ -8,6 +8,16 @@ /* TQ-Systems GmbH MBa8Mx baseboard */ / { + backlight_lvds0: backlight0 { + compatible = "pwm-backlight"; + pwms = <&pwm3 0 5000000 0>; + brightness-levels = <0 4 8 16 32 64 128 255>; + default-brightness-level = <7>; + power-supply = <®_12v>; + enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>; + status = "disabled"; + }; + beeper { compatible = "pwm-beeper"; pwms = <&pwm4 0 250000 0>; @@ -65,12 +75,45 @@ led2: led2 { }; }; + gpio_delays: gpio-delays { + compatible = "gpio-delay"; + #gpio-cells = <3>; + gpio-controller; + gpios = <&expander0 6 GPIO_ACTIVE_HIGH>; + gpio-line-names = "LVDS_BRIDGE_EN_1V8"; + }; + + panel0: panel_lvds0 { + /* + * Display is not fixed, so compatible has to be added from + * DT overlay + */ + backlight = <&backlight_lvds0>; + power-supply = <®_vcc_3v3>; + status = "disabled"; + + port { + panel_in_lvds0: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_bridge_out>; + }; + }; + }; + pcie0_refclk: pcie0-refclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <100000000>; }; + reg_12v: regulator-12v { + compatible = "regulator-fixed"; + regulator-name = "MBA8MX_12V"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + regulator-always-on; + }; + reg_hub_vbus: regulator-hub-vbus { compatible = "regulator-fixed"; regulator-name = "MBA8MX_HUB_VBUS"; @@ -157,6 +200,10 @@ expander0: gpio@23 { interrupts = <9 IRQ_TYPE_EDGE_FALLING>; interrupt-controller; #interrupt-cells = <2>; + gpio-line-names = "", "", "", "", + "", "", "LVDS_BRIDGE_EN_3V3", "", + "", "", "", "", + "", "", "", ""; sd-mux-oe-hog { gpio-hog; @@ -227,6 +274,27 @@ &i2c3 { scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; status = "okay"; + + dsi_lvds_bridge: bridge@2d { + compatible = "ti,sn65dsi84"; + reg = <0x2d>; + enable-gpios = <&gpio_delays 0 130000 0>; + vcc-supply = <®_sn65dsi83_1v8>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@2 { + reg = <2>; + + lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_lvds0>; + }; + }; + }; + }; }; &pwm3 {
This adds the DSI-LVDS bridge including the regulator, backlight and an unspecified panel. It is expected to set the compatible when the display chain is enabled. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> --- .../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++ .../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++ arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++ 3 files changed, 102 insertions(+)