Message ID | 20230530191921.1136349-1-festevam@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: imx8mm-phg: Add display support | expand |
On Tue, May 30, 2023 at 04:19:21PM -0300, Fabio Estevam wrote: > From: Fabio Estevam <festevam@denx.de> > > The imx8mm-phg has a SN65DSI83 MIPI-DSI to LVDS bridge. > > Add suppor for it. > > Signed-off-by: Fabio Estevam <festevam@denx.de> > --- > arch/arm64/boot/dts/freescale/imx8mm-phg.dts | 85 ++++++++++++++++++++ > 1 file changed, 85 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-phg.dts b/arch/arm64/boot/dts/freescale/imx8mm-phg.dts > index e9447738b104..aa94bf9d40f4 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-phg.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mm-phg.dts > @@ -80,6 +80,35 @@ reg_usdhc2_vmmc: regulator-vmmc { > startup-delay-us = <100>; > off-on-delay-us = <12000>; > }; > + > + panel { > + compatible = "panel-lvds"; > + width-mm = <170>; > + height-mm = <28>; > + data-mapping = "jeida-18"; > + > + panel-timing { > + clock-frequency = <49500000>; > + hactive = <800>; > + hback-porch = <48>; > + hfront-porch = <312>; > + hsync-len = <40>; > + vactive = <600>; > + vback-porch = <19>; > + vfront-porch = <61>; > + vsync-len = <20>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + port { > + panel_out_bridge: endpoint { > + remote-endpoint = <&bridge_out_panel>; > + }; > + }; > + }; > }; > > &ecspi1 { > @@ -113,8 +142,58 @@ &i2c2 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_i2c2>; > status = "okay"; > + > + bridge@2c { > + compatible = "ti,sn65dsi83"; > + reg = <0x2c>; > + enable-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_dsi_bridge>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; Missing newline. > + bridge_in_dsi: endpoint { > + remote-endpoint = <&dsi_out_bridge>; > + data-lanes = <1 2 3 4>; > + }; > + }; > + > + port@2 { > + reg = <2>; Here too. Fixed them up and applied the patch. Shawn > + bridge_out_panel: endpoint { > + remote-endpoint = <&panel_out_bridge>; > + }; > + }; > + }; > + }; > +}; > + > +&lcdif { > + status = "okay"; > }; > > +&mipi_dsi { > + samsung,esc-clock-frequency = <10000000>; > + status = "okay"; > + > + ports { > + port@1 { > + reg = <1>; > + > + dsi_out_bridge: endpoint { > + data-lanes = <1 2>; > + lane-polarities = <1 0 0 0 0>; > + remote-endpoint = <&bridge_in_dsi>; > + }; > + }; > + }; > +}; > + > + > &uart2 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_uart2>; > @@ -166,6 +245,12 @@ MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x19 > >; > }; > > + pinctrl_dsi_bridge: dsibridgeggrp { > + fsl,pins = < > + MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x19 > + >; > + }; > + > pinctrl_ecspi1: ecspi1grp { > fsl,pins = < > MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82 > -- > 2.34.1 >
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-phg.dts b/arch/arm64/boot/dts/freescale/imx8mm-phg.dts index e9447738b104..aa94bf9d40f4 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-phg.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-phg.dts @@ -80,6 +80,35 @@ reg_usdhc2_vmmc: regulator-vmmc { startup-delay-us = <100>; off-on-delay-us = <12000>; }; + + panel { + compatible = "panel-lvds"; + width-mm = <170>; + height-mm = <28>; + data-mapping = "jeida-18"; + + panel-timing { + clock-frequency = <49500000>; + hactive = <800>; + hback-porch = <48>; + hfront-porch = <312>; + hsync-len = <40>; + vactive = <600>; + vback-porch = <19>; + vfront-porch = <61>; + vsync-len = <20>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + port { + panel_out_bridge: endpoint { + remote-endpoint = <&bridge_out_panel>; + }; + }; + }; }; &ecspi1 { @@ -113,8 +142,58 @@ &i2c2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; + + bridge@2c { + compatible = "ti,sn65dsi83"; + reg = <0x2c>; + enable-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_dsi_bridge>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + bridge_in_dsi: endpoint { + remote-endpoint = <&dsi_out_bridge>; + data-lanes = <1 2 3 4>; + }; + }; + + port@2 { + reg = <2>; + bridge_out_panel: endpoint { + remote-endpoint = <&panel_out_bridge>; + }; + }; + }; + }; +}; + +&lcdif { + status = "okay"; }; +&mipi_dsi { + samsung,esc-clock-frequency = <10000000>; + status = "okay"; + + ports { + port@1 { + reg = <1>; + + dsi_out_bridge: endpoint { + data-lanes = <1 2>; + lane-polarities = <1 0 0 0 0>; + remote-endpoint = <&bridge_in_dsi>; + }; + }; + }; +}; + + &uart2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2>; @@ -166,6 +245,12 @@ MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x19 >; }; + pinctrl_dsi_bridge: dsibridgeggrp { + fsl,pins = < + MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x19 + >; + }; + pinctrl_ecspi1: ecspi1grp { fsl,pins = < MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82