[v2,2/2] ARM: tegra: transformers: add connector node

Message ID 20230618085046.10081-3-clamor95@gmail.com
State New
Headers
Series Support bridge/connector by Tegra HDMI |

Commit Message

Svyatoslav Ryhel June 18, 2023, 8:50 a.m. UTC
  All ASUS Transformers have micro-HDMI connector directly available.
After Tegra HDMI got bridge/connector support, we should use connector
framework for proper HW description.

Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
 arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
 .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
 2 files changed, 38 insertions(+), 5 deletions(-)
  

Comments

Thierry Reding July 27, 2023, 3:11 p.m. UTC | #1
On Sun, Jun 18, 2023 at 11:50:46AM +0300, Svyatoslav Ryhel wrote:
> All ASUS Transformers have micro-HDMI connector directly available.
> After Tegra HDMI got bridge/connector support, we should use connector
> framework for proper HW description.
> 
> Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
> Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
> Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> ---
>  arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
>  .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
>  2 files changed, 38 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> index c2a9c3fb5b33..97350f566539 100644
> --- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> @@ -82,9 +82,11 @@ hdmi@54280000 {
>  			pll-supply = <&hdmi_pll_reg>;
>  			hdmi-supply = <&vdd_hdmi_en>;
>  
> -			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
> -			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
> -				GPIO_ACTIVE_HIGH>;
> +			port@0 {
> +				hdmi_out: endpoint {
> +					remote-endpoint = <&connector_in>;
> +				};
> +			};

Does this need a bindings change? nvidia,tegra20-hdmi currently doesn't
support OF graphs, so this would probably fail to validate if we merge
it without a corresponding DT bindings update.

Thierry
  
Svyatoslav Ryhel July 27, 2023, 4:26 p.m. UTC | #2
27 липня 2023 р. 18:11:15 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла):
>On Sun, Jun 18, 2023 at 11:50:46AM +0300, Svyatoslav Ryhel wrote:
>> All ASUS Transformers have micro-HDMI connector directly available.
>> After Tegra HDMI got bridge/connector support, we should use connector
>> framework for proper HW description.
>> 
>> Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
>> Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
>> Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
>> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
>> ---
>>  arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
>>  .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
>>  2 files changed, 38 insertions(+), 5 deletions(-)
>> 
>> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> index c2a9c3fb5b33..97350f566539 100644
>> --- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> @@ -82,9 +82,11 @@ hdmi@54280000 {
>>  			pll-supply = <&hdmi_pll_reg>;
>>  			hdmi-supply = <&vdd_hdmi_en>;
>>  
>> -			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
>> -			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
>> -				GPIO_ACTIVE_HIGH>;
>> +			port@0 {
>> +				hdmi_out: endpoint {
>> +					remote-endpoint = <&connector_in>;
>> +				};
>> +			};
>
>Does this need a bindings change? nvidia,tegra20-hdmi currently doesn't
>support OF graphs, so this would probably fail to validate if we merge
>it without a corresponding DT bindings update.

drm/tegra patch is backwards compatible and connector node is optional.

>Thierry
  
Thierry Reding July 27, 2023, 4:50 p.m. UTC | #3
On Thu, Jul 27, 2023 at 07:26:28PM +0300, Svyatoslav Ryhel wrote:
> 
> 
> 27 липня 2023 р. 18:11:15 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла):
> >On Sun, Jun 18, 2023 at 11:50:46AM +0300, Svyatoslav Ryhel wrote:
> >> All ASUS Transformers have micro-HDMI connector directly available.
> >> After Tegra HDMI got bridge/connector support, we should use connector
> >> framework for proper HW description.
> >> 
> >> Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
> >> Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
> >> Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
> >> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> >> ---
> >>  arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
> >>  .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
> >>  2 files changed, 38 insertions(+), 5 deletions(-)
> >> 
> >> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> >> index c2a9c3fb5b33..97350f566539 100644
> >> --- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
> >> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> >> @@ -82,9 +82,11 @@ hdmi@54280000 {
> >>  			pll-supply = <&hdmi_pll_reg>;
> >>  			hdmi-supply = <&vdd_hdmi_en>;
> >>  
> >> -			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
> >> -			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
> >> -				GPIO_ACTIVE_HIGH>;
> >> +			port@0 {
> >> +				hdmi_out: endpoint {
> >> +					remote-endpoint = <&connector_in>;
> >> +				};
> >> +			};
> >
> >Does this need a bindings change? nvidia,tegra20-hdmi currently doesn't
> >support OF graphs, so this would probably fail to validate if we merge
> >it without a corresponding DT bindings update.
> 
> drm/tegra patch is backwards compatible and connector node is optional.

We still need to document the connector node, otherwise the DT
validation will complain about port@0 being used here, won't it?

Thierry
  
Svyatoslav Ryhel July 27, 2023, 4:52 p.m. UTC | #4
27 липня 2023 р. 19:50:35 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла):
>On Thu, Jul 27, 2023 at 07:26:28PM +0300, Svyatoslav Ryhel wrote:
>> 
>> 
>> 27 липня 2023 р. 18:11:15 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла):
>> >On Sun, Jun 18, 2023 at 11:50:46AM +0300, Svyatoslav Ryhel wrote:
>> >> All ASUS Transformers have micro-HDMI connector directly available.
>> >> After Tegra HDMI got bridge/connector support, we should use connector
>> >> framework for proper HW description.
>> >> 
>> >> Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
>> >> Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
>> >> Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
>> >> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
>> >> ---
>> >>  arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
>> >>  .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
>> >>  2 files changed, 38 insertions(+), 5 deletions(-)
>> >> 
>> >> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> >> index c2a9c3fb5b33..97350f566539 100644
>> >> --- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> >> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>> >> @@ -82,9 +82,11 @@ hdmi@54280000 {
>> >>  			pll-supply = <&hdmi_pll_reg>;
>> >>  			hdmi-supply = <&vdd_hdmi_en>;
>> >>  
>> >> -			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
>> >> -			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
>> >> -				GPIO_ACTIVE_HIGH>;
>> >> +			port@0 {
>> >> +				hdmi_out: endpoint {
>> >> +					remote-endpoint = <&connector_in>;
>> >> +				};
>> >> +			};
>> >
>> >Does this need a bindings change? nvidia,tegra20-hdmi currently doesn't
>> >support OF graphs, so this would probably fail to validate if we merge
>> >it without a corresponding DT bindings update.
>> 
>> drm/tegra patch is backwards compatible and connector node is optional.
>
>We still need to document the connector node, otherwise the DT
>validation will complain about port@0 being used here, won't it?

Honestly? I have no idea, linux dt yamls are my nightmare and a reason why most of my patches still are hanging in the void of mailing lists.

>Thierry
  
Maxim Schwalm Aug. 1, 2023, 9:29 p.m. UTC | #5
Hi,

On 27.07.23 18:50, Thierry Reding wrote:
> On Thu, Jul 27, 2023 at 07:26:28PM +0300, Svyatoslav Ryhel wrote:
>>
>>
>> 27 липня 2023 р. 18:11:15 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла):
>>> On Sun, Jun 18, 2023 at 11:50:46AM +0300, Svyatoslav Ryhel wrote:
>>>> All ASUS Transformers have micro-HDMI connector directly available.
>>>> After Tegra HDMI got bridge/connector support, we should use connector
>>>> framework for proper HW description.
>>>>
>>>> Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS TF T30
>>>> Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
>>>> Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # ASUS TF201 T30
>>>> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
>>>> ---
>>>>  arch/arm/boot/dts/tegra20-asus-tf101.dts      | 22 ++++++++++++++++---
>>>>  .../dts/tegra30-asus-transformer-common.dtsi  | 21 ++++++++++++++++--
>>>>  2 files changed, 38 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>>>> index c2a9c3fb5b33..97350f566539 100644
>>>> --- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
>>>> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
>>>> @@ -82,9 +82,11 @@ hdmi@54280000 {
>>>>  			pll-supply = <&hdmi_pll_reg>;
>>>>  			hdmi-supply = <&vdd_hdmi_en>;
>>>>  
>>>> -			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
>>>> -			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
>>>> -				GPIO_ACTIVE_HIGH>;
>>>> +			port@0 {
>>>> +				hdmi_out: endpoint {
>>>> +					remote-endpoint = <&connector_in>;
>>>> +				};
>>>> +			};
>>>
>>> Does this need a bindings change? nvidia,tegra20-hdmi currently doesn't
>>> support OF graphs, so this would probably fail to validate if we merge
>>> it without a corresponding DT bindings update.
>>
>> drm/tegra patch is backwards compatible and connector node is optional.
> 
> We still need to document the connector node, otherwise the DT
> validation will complain about port@0 being used here, won't it?

this change indeed causes several new warnings:

    /mnt/linux/.output/arch/arm/boot/dts/tegra20-asus-tf101.dtb: hdmi@54280000: 'port@0' does not match any of the regexes: 'pinctrl-[0-9]+'
            From schema: /mnt/linux/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-hdmi.yaml
    /mnt/linux/.output/arch/arm/boot/dts/tegra20-asus-tf101.dtb: hdmi@54280000: 'nvidia,ddc-i2c-bus' is a required property
            From schema: /mnt/linux/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-hdmi.yaml
    /mnt/linux/.output/arch/arm/boot/dts/tegra20-asus-tf101.dtb: hdmi@54280000: 'nvidia,hpd-gpio' is a required property
            From schema: /mnt/linux/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-hdmi.yaml

BTW, the parallel RGB port isn't properly documented in nvidia,tegra20-dc either.

Best regards,
Maxim
  

Patch

diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
index c2a9c3fb5b33..97350f566539 100644
--- a/arch/arm/boot/dts/tegra20-asus-tf101.dts
+++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
@@ -82,9 +82,11 @@  hdmi@54280000 {
 			pll-supply = <&hdmi_pll_reg>;
 			hdmi-supply = <&vdd_hdmi_en>;
 
-			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
-				GPIO_ACTIVE_HIGH>;
+			port@0 {
+				hdmi_out: endpoint {
+					remote-endpoint = <&connector_in>;
+				};
+			};
 		};
 	};
 
@@ -963,6 +965,20 @@  clk32k_in: clock-32k-in {
 		#clock-cells = <0>;
 	};
 
+	connector {
+		compatible = "hdmi-connector";
+		type = "d";
+
+		hpd-gpios = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
+		ddc-i2c-bus = <&hdmi_ddc>;
+
+		port {
+			connector_in: endpoint {
+				remote-endpoint = <&hdmi_out>;
+			};
+		};
+	};
+
 	cpus {
 		cpu0: cpu@0 {
 			cpu-supply = <&vdd_cpu>;
diff --git a/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi b/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi
index bdb898ad6262..153d34a012bd 100644
--- a/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi
+++ b/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi
@@ -80,8 +80,11 @@  hdmi: hdmi@54280000 {
 			pll-supply = <&vdd_1v8_vio>;
 			vdd-supply = <&vdd_3v3_sys>;
 
-			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
-			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
+			port@0 {
+				hdmi_out: endpoint {
+					remote-endpoint = <&connector_in>;
+				};
+			};
 		};
 	};
 
@@ -1492,6 +1495,20 @@  clk32k_in: clock-32k {
 		clock-output-names = "pmic-oscillator";
 	};
 
+	connector {
+		compatible = "hdmi-connector";
+		type = "d";
+
+		hpd-gpios = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
+		ddc-i2c-bus = <&hdmi_ddc>;
+
+		port {
+			connector_in: endpoint {
+				remote-endpoint = <&hdmi_out>;
+			};
+		};
+	};
+
 	cpus {
 		cpu0: cpu@0 {
 			cpu-supply = <&vdd_cpu>;