diff mbox series

ARM: dts: imx6sx: Add LDB support

Message ID 20230517210210.12183-1-festevam@gmail.com (mailing list archive)
State New, archived
Headers show
Series ARM: dts: imx6sx: Add LDB support | expand

Commit Message

Fabio Estevam May 17, 2023, 9:02 p.m. UTC
From: Fabio Estevam <festevam@denx.de>

i.MX6SX has an LVDS controller that is connected to the eLCDIF.

Add support for it.

Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 arch/arm/boot/dts/imx6sx.dtsi | 41 ++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

Comments

Marek Vasut May 17, 2023, 11:15 p.m. UTC | #1
On 5/17/23 23:02, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@denx.de>
> 
> i.MX6SX has an LVDS controller that is connected to the eLCDIF.
> 
> Add support for it.
> 
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
>   arch/arm/boot/dts/imx6sx.dtsi | 41 ++++++++++++++++++++++++++++++++++-
>   1 file changed, 40 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
> index 4233943a1cca..7a8a00d81666 100644
> --- a/arch/arm/boot/dts/imx6sx.dtsi
> +++ b/arch/arm/boot/dts/imx6sx.dtsi
> @@ -843,8 +843,39 @@ iomuxc: pinctrl@20e0000 {
>   
>   			gpr: iomuxc-gpr@20e4000 {
>   				compatible = "fsl,imx6sx-iomuxc-gpr",
> -					     "fsl,imx6q-iomuxc-gpr", "syscon";
> +					     "fsl,imx6q-iomuxc-gpr", "simple-bus", "syscon";

Can we really combine simple-bus and syscon or do we need something like

5a51e1f2b0834 ("arm64: dts: imx8mp: Drop simple-bus from 
fsl,imx8mp-media-blk-ctrl")
9cb6d1b39a8f5 ("soc: imx: imx8m-blk-ctrl: Scan subnodes and bind drivers 
to them")

?

> +				#address-cells = <1>;
> +				#size-cells = <1>;
>   				reg = <0x020e4000 0x4000>;

[...]
Fabio Estevam May 17, 2023, 11:45 p.m. UTC | #2
Hi Marek,

On 17/05/2023 20:15, Marek Vasut wrote:

>> diff --git a/arch/arm/boot/dts/imx6sx.dtsi 
>> b/arch/arm/boot/dts/imx6sx.dtsi
>> index 4233943a1cca..7a8a00d81666 100644
>> --- a/arch/arm/boot/dts/imx6sx.dtsi
>> +++ b/arch/arm/boot/dts/imx6sx.dtsi
>> @@ -843,8 +843,39 @@ iomuxc: pinctrl@20e0000 {
>>     			gpr: iomuxc-gpr@20e4000 {
>>   				compatible = "fsl,imx6sx-iomuxc-gpr",
>> -					     "fsl,imx6q-iomuxc-gpr", "syscon";
>> +					     "fsl,imx6q-iomuxc-gpr", "simple-bus", "syscon";
> 
> Can we really combine simple-bus and syscon or do we need something 
> like

Thanks for your review.

> 5a51e1f2b0834 ("arm64: dts: imx8mp: Drop simple-bus from
> fsl,imx8mp-media-blk-ctrl")

As is, if simple-bus is dropped, the LDB bus is not probed.

> 9cb6d1b39a8f5 ("soc: imx: imx8m-blk-ctrl: Scan subnodes and bind
> drivers to them")

On the i.MX6SX, I am not sure we can add devm_of_platform_populate() 
like in the
imx8m-blk-ctrl case.

imx8m-blk-ctrl has a probe function, but imx6q-iomuxc-gpr does not.

Thanks
Krzysztof Kozlowski May 18, 2023, 7:21 a.m. UTC | #3
On 17/05/2023 23:02, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@denx.de>
> 
> i.MX6SX has an LVDS controller that is connected to the eLCDIF.
> 
> Add support for it.
> 
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
>  arch/arm/boot/dts/imx6sx.dtsi | 41 ++++++++++++++++++++++++++++++++++-
>  1 file changed, 40 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
> index 4233943a1cca..7a8a00d81666 100644
> --- a/arch/arm/boot/dts/imx6sx.dtsi
> +++ b/arch/arm/boot/dts/imx6sx.dtsi
> @@ -843,8 +843,39 @@ iomuxc: pinctrl@20e0000 {
>  
>  			gpr: iomuxc-gpr@20e4000 {
>  				compatible = "fsl,imx6sx-iomuxc-gpr",
> -					     "fsl,imx6q-iomuxc-gpr", "syscon";
> +					     "fsl,imx6q-iomuxc-gpr", "simple-bus", "syscon";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
>  				reg = <0x020e4000 0x4000>;

It's a GPR, not a simple-bus. If you have here 'reg' then it is not
simple-bus.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 4233943a1cca..7a8a00d81666 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -843,8 +843,39 @@  iomuxc: pinctrl@20e0000 {
 
 			gpr: iomuxc-gpr@20e4000 {
 				compatible = "fsl,imx6sx-iomuxc-gpr",
-					     "fsl,imx6q-iomuxc-gpr", "syscon";
+					     "fsl,imx6q-iomuxc-gpr", "simple-bus", "syscon";
+				#address-cells = <1>;
+				#size-cells = <1>;
 				reg = <0x020e4000 0x4000>;
+
+				lvds_bridge: bridge@18 {
+					compatible = "fsl,imx6sx-ldb";
+					clocks = <&clks IMX6SX_CLK_LDB_DI0>;
+					clock-names = "ldb";
+					reg = <0x18 0x4>;
+					reg-names = "ldb";
+					status = "disabled";
+
+					ports {
+						#address-cells = <1>;
+						#size-cells = <0>;
+
+						port@0 {
+							reg = <0>;
+
+							ldb_from_lcdif1: endpoint {
+								remote-endpoint = <&lcdif1_to_ldb>;
+							};
+						};
+
+						port@1 {
+							reg = <1>;
+
+							ldb_lvds_ch0: endpoint {
+							};
+						};
+					};
+				};
 			};
 
 			sdma: dma-controller@20ec000 {
@@ -1278,6 +1309,14 @@  lcdif1: lcdif@2220000 {
 					clock-names = "pix", "axi", "disp_axi";
 					power-domains = <&pd_disp>;
 					status = "disabled";
+
+					ports {
+						port {
+							lcdif1_to_ldb: endpoint {
+								remote-endpoint = <&ldb_from_lcdif1>;
+							};
+						};
+					};
 				};
 
 				lcdif2: lcdif@2224000 {