2023-08-07 15:15:05

by Svyatoslav Ryhel

[permalink] [raw]
Subject: [PATCH v3 0/5] Support bridge/connector by Tegra HDMI

This patch adds support for the bridge/connector attached to the
HDMI output, allowing to model the hardware properly. It keeps
backwards compatibility with existing bindings and is required
by devices which have a simple or MHL bridge connected to HDMI
output like ASUS P1801-T or LG P880/P895 or HTC One X.

Tested on ASUS Transformers which have no dedicated bridge but
have type d HDMI connector directly available. Tests went smoothly.

---
Changes from v2:
- added missing descriptions to tegra dc and hdmi yamls
- fixed "Warning (unit_address_vs_reg): /host1x@50000000/
dc@54200000/rgb/port@0: node has a unit name, but no reg or
ranges property"
- dropped reg from port to avoid same warning with hdmi ports

Changes from v1:
- no changes, re-sending
---

Maxim Schwalm (4):
ARM: dts: tegra: Drop unit-address from parallel RGB output port
dt-bindings: display: tegra: nvidia,tegra20-dc: Add parallel RGB
output port node
dt-bindings: display: tegra: nvidia,tegra20-hdmi: Add HDMI output port
node
drm/tegra: output: hdmi: Support bridge/connector

Svyatoslav Ryhel (1):
ARM: tegra: transformers: add connector node

.../display/tegra/nvidia,tegra20-dc.yaml | 31 +++++++++++++
.../display/tegra/nvidia,tegra20-hdmi.yaml | 32 +++++++++++++-
.../dts/nvidia/tegra20-acer-a500-picasso.dts | 2 +-
.../boot/dts/nvidia/tegra20-asus-tf101.dts | 24 ++++++++--
.../dts/nvidia/tegra30-asus-lvds-display.dtsi | 2 +-
.../boot/dts/nvidia/tegra30-asus-tf700t.dts | 2 +-
.../tegra30-asus-transformer-common.dtsi | 21 ++++++++-
drivers/gpu/drm/tegra/hdmi.c | 44 ++++++++++++++-----
8 files changed, 136 insertions(+), 22 deletions(-)

--
2.39.2



2023-08-07 15:26:20

by Svyatoslav Ryhel

[permalink] [raw]
Subject: [PATCH v3 2/5] dt-bindings: display: tegra: nvidia,tegra20-dc: Add parallel RGB output port node

From: Maxim Schwalm <[email protected]>

Either this node, which is optional, or the nvidia,panel property can be
present.

Signed-off-by: Maxim Schwalm <[email protected]>
Signed-off-by: Svyatoslav Ryhel <[email protected]>
---
.../display/tegra/nvidia,tegra20-dc.yaml | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml
index 69be95afd562..102304703062 100644
--- a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml
+++ b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml
@@ -127,6 +127,37 @@ allOf:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle of a display panel

+ port:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ description: Parallel RGB output port
+
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ unevaluatedProperties: false
+
+ anyOf:
+ - if:
+ not:
+ properties:
+ nvidia,panel: false
+ then:
+ not:
+ properties:
+ port: true
+ - if:
+ not:
+ properties:
+ port: false
+ then:
+ not:
+ properties:
+ nvidia,panel: true
+
+ additionalProperties: false
+
- if:
properties:
compatible:
--
2.39.2


2023-08-07 16:21:22

by Svyatoslav Ryhel

[permalink] [raw]
Subject: [PATCH v3 1/5] ARM: dts: tegra: Drop unit-address from parallel RGB output port

From: Maxim Schwalm <[email protected]>

Fix the following W=1 build warning:
"Warning (unit_address_vs_reg): /host1x@50000000/dc@54200000/rgb/port@0:
node has a unit name, but no reg or ranges property"

Signed-off-by: Maxim Schwalm <[email protected]>
Signed-off-by: Svyatoslav Ryhel <[email protected]>
---
arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts | 2 +-
arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts | 2 +-
arch/arm/boot/dts/nvidia/tegra30-asus-lvds-display.dtsi | 2 +-
arch/arm/boot/dts/nvidia/tegra30-asus-tf700t.dts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts b/arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts
index 486fd244291e..a619ea83ed3b 100644
--- a/arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts
+++ b/arch/arm/boot/dts/nvidia/tegra20-acer-a500-picasso.dts
@@ -65,7 +65,7 @@ dc@54200000 {
rgb {
status = "okay";

- port@0 {
+ port {
lcd_output: endpoint {
remote-endpoint = <&lvds_encoder_input>;
bus-width = <18>;
diff --git a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts b/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts
index a3757b7daeda..e118809dc6d9 100644
--- a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts
+++ b/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts
@@ -66,7 +66,7 @@ dc@54200000 {
rgb {
status = "okay";

- port@0 {
+ port {
lcd_output: endpoint {
remote-endpoint = <&lvds_encoder_input>;
bus-width = <18>;
diff --git a/arch/arm/boot/dts/nvidia/tegra30-asus-lvds-display.dtsi b/arch/arm/boot/dts/nvidia/tegra30-asus-lvds-display.dtsi
index bae09d82594d..680edff0f26f 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-asus-lvds-display.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra30-asus-lvds-display.dtsi
@@ -10,7 +10,7 @@ lcd: dc@54200000 {
rgb {
status = "okay";

- port@0 {
+ port {
dpi_output: endpoint {
remote-endpoint = <&bridge_input>;
bus-width = <24>;
diff --git a/arch/arm/boot/dts/nvidia/tegra30-asus-tf700t.dts b/arch/arm/boot/dts/nvidia/tegra30-asus-tf700t.dts
index efde7dad718a..9c480fde2e76 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-asus-tf700t.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-asus-tf700t.dts
@@ -15,7 +15,7 @@ lcd: dc@54200000 {
rgb {
status = "okay";

- port@0 {
+ port {
dpi_output: endpoint {
remote-endpoint = <&bridge_input>;
bus-width = <24>;
--
2.39.2


2023-08-07 17:03:21

by Svyatoslav Ryhel

[permalink] [raw]
Subject: [PATCH v3 5/5] ARM: tegra: transformers: add connector node

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 <[email protected]> # ASUS TF T30
Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 T20
Tested-by: Svyatoslav Ryhel <[email protected]> # ASUS TF201 T30
Signed-off-by: Svyatoslav Ryhel <[email protected]>
---
.../boot/dts/nvidia/tegra20-asus-tf101.dts | 22 ++++++++++++++++---
.../tegra30-asus-transformer-common.dtsi | 21 ++++++++++++++++--
2 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts b/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts
index e118809dc6d9..cd6acbea0318 100644
--- a/arch/arm/boot/dts/nvidia/tegra20-asus-tf101.dts
+++ b/arch/arm/boot/dts/nvidia/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 {
+ hdmi_out: endpoint {
+ remote-endpoint = <&connector_in>;
+ };
+ };
};
};

@@ -967,6 +969,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/nvidia/tegra30-asus-transformer-common.dtsi b/arch/arm/boot/dts/nvidia/tegra30-asus-transformer-common.dtsi
index ead95306840f..9b658b3de7a4 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-asus-transformer-common.dtsi
+++ b/arch/arm/boot/dts/nvidia/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 {
+ hdmi_out: endpoint {
+ remote-endpoint = <&connector_in>;
+ };
+ };
};
};

@@ -1494,6 +1497,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>;
--
2.39.2


2023-10-10 15:46:51

by Thierry Reding

[permalink] [raw]
Subject: Re: (subset) [PATCH v3 0/5] Support bridge/connector by Tegra HDMI

From: Thierry Reding <[email protected]>


On Mon, 07 Aug 2023 17:35:10 +0300, Svyatoslav Ryhel wrote:
> This patch adds support for the bridge/connector attached to the
> HDMI output, allowing to model the hardware properly. It keeps
> backwards compatibility with existing bindings and is required
> by devices which have a simple or MHL bridge connected to HDMI
> output like ASUS P1801-T or LG P880/P895 or HTC One X.
>
> Tested on ASUS Transformers which have no dedicated bridge but
> have type d HDMI connector directly available. Tests went smoothly.
>
> [...]

Applied, thanks!

[1/5] ARM: dts: tegra: Drop unit-address from parallel RGB output port
(no commit info)

Best regards,
--
Thierry Reding <[email protected]>