2021-10-05 12:30:46

by H. Nikolaus Schaller

[permalink] [raw]
Subject: [PATCH v5 3/7] dt-bindings: display: Add ingenic,jz4780-dw-hdmi DT Schema

From: Sam Ravnborg <[email protected]>

Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
Based on .txt binding from Zubair Lutfullah Kakakhel

Signed-off-by: Sam Ravnborg <[email protected]>
Signed-off-by: H. Nikolaus Schaller <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: [email protected]
---
.../bindings/display/ingenic-jz4780-hdmi.yaml | 79 +++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml

diff --git a/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
new file mode 100644
index 000000000000..5bcb342da86f
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for Ingenic JZ4780 HDMI Transmitter
+
+maintainers:
+ - H. Nikolaus Schaller <[email protected]>
+
+description: |
+ The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys DesignWare HDMI 1.4
+ TX controller IP with accompanying PHY IP.
+
+allOf:
+ - $ref: bridge/synopsys,dw-hdmi.yaml#
+
+properties:
+ compatible:
+ const: ingenic,jz4780-dw-hdmi
+
+ reg-io-width:
+ const: 4
+
+ clocks:
+ maxItems: 2
+
+ hdmi-5v-supply:
+ description: Optional regulator to provide +5V at the connector
+
+ ddc-i2c-bus:
+ description: An I2C interface if the internal DDC I2C driver is not to be used
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+
+required:
+ - compatible
+ - clocks
+ - clock-names
+ - ports
+ - reg-io-width
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/jz4780-cgu.h>
+
+ hdmi: hdmi@10180000 {
+ compatible = "ingenic,jz4780-dw-hdmi";
+ reg = <0x10180000 0x8000>;
+ reg-io-width = <4>;
+ ddc-i2c-bus = <&i2c4>;
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ clocks = <&cgu JZ4780_CLK_AHB0>, <&cgu JZ4780_CLK_HDMI>;
+ clock-names = "iahb", "isfr";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ hdmi_in: port@0 {
+ reg = <0>;
+ dw_hdmi_in: endpoint {
+ remote-endpoint = <&jz4780_lcd_out>;
+ };
+ };
+ hdmi_out: port@1 {
+ reg = <1>;
+ dw_hdmi_out: endpoint {
+ remote-endpoint = <&hdmi_con>;
+ };
+ };
+ };
+ };
+
+...
--
2.33.0


2021-10-05 20:48:19

by Paul Cercueil

[permalink] [raw]
Subject: Re: [PATCH v5 3/7] dt-bindings: display: Add ingenic,jz4780-dw-hdmi DT Schema

Hi Nikolaus,

Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller
<[email protected]> a ?crit :
> From: Sam Ravnborg <[email protected]>
>
> Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
> Based on .txt binding from Zubair Lutfullah Kakakhel
>
> Signed-off-by: Sam Ravnborg <[email protected]>
> Signed-off-by: H. Nikolaus Schaller <[email protected]>
> Cc: Rob Herring <[email protected]>
> Cc: [email protected]
> ---
> .../bindings/display/ingenic-jz4780-hdmi.yaml | 79
> +++++++++++++++++++
> 1 file changed, 79 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>
> diff --git
> a/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> new file mode 100644
> index 000000000000..5bcb342da86f
> --- /dev/null
> +++
> b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> @@ -0,0 +1,79 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for Ingenic JZ4780 HDMI Transmitter
> +
> +maintainers:
> + - H. Nikolaus Schaller <[email protected]>
> +
> +description: |
> + The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys
> DesignWare HDMI 1.4
> + TX controller IP with accompanying PHY IP.

My dmesg disagrees:
dw-hdmi-ingenic 10180000.hdmi: Detected HDMI TX controller v1.31a with
HDCP (DWC HDMI 3D TX PHY)

Or am I comparing apples to oranges?

> +
> +allOf:
> + - $ref: bridge/synopsys,dw-hdmi.yaml#
> +
> +properties:
> + compatible:
> + const: ingenic,jz4780-dw-hdmi
> +
> + reg-io-width:
> + const: 4
> +
> + clocks:
> + maxItems: 2
> +
> + hdmi-5v-supply:
> + description: Optional regulator to provide +5V at the connector
> +
> + ddc-i2c-bus:
> + description: An I2C interface if the internal DDC I2C driver is
> not to be used

This property is used within
(drivers/gpu/drm/bridge/synopsys/dw-hdmi.c); I think it would make
sense to move it to bridge/synopsys,dw-hdmi.yaml.

Cheers,
-Paul

> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> +required:
> + - compatible
> + - clocks
> + - clock-names
> + - ports
> + - reg-io-width
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/jz4780-cgu.h>
> +
> + hdmi: hdmi@10180000 {
> + compatible = "ingenic,jz4780-dw-hdmi";
> + reg = <0x10180000 0x8000>;
> + reg-io-width = <4>;
> + ddc-i2c-bus = <&i2c4>;
> + interrupt-parent = <&intc>;
> + interrupts = <3>;
> + clocks = <&cgu JZ4780_CLK_AHB0>, <&cgu JZ4780_CLK_HDMI>;
> + clock-names = "iahb", "isfr";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + hdmi_in: port@0 {
> + reg = <0>;
> + dw_hdmi_in: endpoint {
> + remote-endpoint = <&jz4780_lcd_out>;
> + };
> + };
> + hdmi_out: port@1 {
> + reg = <1>;
> + dw_hdmi_out: endpoint {
> + remote-endpoint = <&hdmi_con>;
> + };
> + };
> + };
> + };
> +
> +...
> --
> 2.33.0
>


2021-10-05 22:47:23

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v5 3/7] dt-bindings: display: Add ingenic,jz4780-dw-hdmi DT Schema

On Tue, 05 Oct 2021 14:29:15 +0200, H. Nikolaus Schaller wrote:
> From: Sam Ravnborg <[email protected]>
>
> Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
> Based on .txt binding from Zubair Lutfullah Kakakhel
>
> Signed-off-by: Sam Ravnborg <[email protected]>
> Signed-off-by: H. Nikolaus Schaller <[email protected]>
> Cc: Rob Herring <[email protected]>
> Cc: [email protected]
> ---
> .../bindings/display/ingenic-jz4780-hdmi.yaml | 79 +++++++++++++++++++
> 1 file changed, 79 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:
./Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml:39:5: [warning] wrong indentation: expected 2 but found 4 (indentation)

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.example.dt.yaml: hdmi@10180000: 'clock-names', 'interrupt-parent', 'interrupts', 'reg' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1536624

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.

2021-11-07 19:16:25

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH v5 3/7] dt-bindings: display: Add ingenic,jz4780-dw-hdmi DT Schema

Hi,

> Am 05.10.2021 um 22:43 schrieb Paul Cercueil <[email protected]>:
>
> Hi Nikolaus,
>
> Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller <[email protected]> a écrit :
>> From: Sam Ravnborg <[email protected]>
>> Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
>> Based on .txt binding from Zubair Lutfullah Kakakhel
>> Signed-off-by: Sam Ravnborg <[email protected]>
>> Signed-off-by: H. Nikolaus Schaller <[email protected]>
>> Cc: Rob Herring <[email protected]>
>> Cc: [email protected]
>> ---
>> .../bindings/display/ingenic-jz4780-hdmi.yaml | 79 +++++++++++++++++++
>> 1 file changed, 79 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>> diff --git a/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>> new file mode 100644
>> index 000000000000..5bcb342da86f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>> @@ -0,0 +1,79 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Bindings for Ingenic JZ4780 HDMI Transmitter
>> +
>> +maintainers:
>> + - H. Nikolaus Schaller <[email protected]>
>> +
>> +description: |
>> + The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys DesignWare HDMI 1.4
>> + TX controller IP with accompanying PHY IP.
>
> My dmesg disagrees:
> dw-hdmi-ingenic 10180000.hdmi: Detected HDMI TX controller v1.31a with HDCP (DWC HDMI 3D TX PHY)

mine as well.

>
> Or am I comparing apples to oranges?

There is a document called "JZ4780 High Efficiency Engine for Mobile Device"
(JZ4780_PB.pdf) which says

"24-bit parallel/serial TFT interface, HDMI 1.4a interface, LVDS interface"

And the data sheet ("JZ4780 Mobile Application Processor Data Sheet ") says: "Support HDMI 1.4a Interface"

Finally, the programming manual also says "Support HDMI 1.4a Interface".

So what is correct?

dmesg may return something else. E.g. silicon revision 1.31a
while the interface is HDMI protocol revision 1.4a compatible?

Trying to find something about "hdmi 1.31a" did only lead to some
"Synopsys' HAPS-51 eval platform" [1].

Looking at HDMI standards [2] I can only find HDMI 1.3 and 1.3a but no HDMI 1.31a.

[1] https://www.digital-cp.com/hdcp-products/haps51-hdmi-tx-platform-dwc-hdmi-tx-controller-131a-ea-hdmi-3d-tx-phy-tsmc40g-ip
[2] https://en.wikipedia.org/wiki/HDMI#Version_1.3

Well it may also be some Synopsys-internal designation 1.31a referring so something
newer than HDMI 1.3a which became the HDMI 1.4 standard (released June 2009)...

Whom should we believe? What the chip tells or what the data sheet and programming
manual says?

I tend to keep confusion low and stay with "HDMI 1.4" in the bindings because
there is no offical "HDMI 1.31a" standard. And HDMI 1.4 was already some years old
when the jz4780 was released. So it is likely that the chip identification just
returns 1.31a (maybe Ingenic licenced an interim release VHDL) although the standard
was later officially named 1.4a.

>
>> +
>> +allOf:
>> + - $ref: bridge/synopsys,dw-hdmi.yaml#
>> +
>> +properties:
>> + compatible:
>> + const: ingenic,jz4780-dw-hdmi
>> +
>> + reg-io-width:
>> + const: 4
>> +
>> + clocks:
>> + maxItems: 2
>> +
>> + hdmi-5v-supply:
>> + description: Optional regulator to provide +5V at the connector
>> +
>> + ddc-i2c-bus:
>> + description: An I2C interface if the internal DDC I2C driver is not to be used
>
> This property is used within (drivers/gpu/drm/bridge/synopsys/dw-hdmi.c); I think it would make sense to move it to bridge/synopsys,dw-hdmi.yaml.

It is indeed more general and not jz4780 specific. I'll move it for v6.

BR and thanks,
Nikolaus

2021-11-08 00:50:13

by Paul Cercueil

[permalink] [raw]
Subject: Re: [PATCH v5 3/7] dt-bindings: display: Add ingenic,jz4780-dw-hdmi DT Schema

Hi Nikolaus,

Le dim., nov. 7 2021 at 14:43:33 +0100, H. Nikolaus Schaller
<[email protected]> a ?crit :
> Hi,
>
>> Am 05.10.2021 um 22:43 schrieb Paul Cercueil <[email protected]>:
>>
>> Hi Nikolaus,
>>
>> Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller
>> <[email protected]> a ?crit :
>>> From: Sam Ravnborg <[email protected]>
>>> Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
>>> Based on .txt binding from Zubair Lutfullah Kakakhel
>>> Signed-off-by: Sam Ravnborg <[email protected]>
>>> Signed-off-by: H. Nikolaus Schaller <[email protected]>
>>> Cc: Rob Herring <[email protected]>
>>> Cc: [email protected]
>>> ---
>>> .../bindings/display/ingenic-jz4780-hdmi.yaml | 79
>>> +++++++++++++++++++
>>> 1 file changed, 79 insertions(+)
>>> create mode 100644
>>> Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>>> diff --git
>>> a/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>>> b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>>> new file mode 100644
>>> index 000000000000..5bcb342da86f
>>> --- /dev/null
>>> +++
>>> b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
>>> @@ -0,0 +1,79 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id:
>>> http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Bindings for Ingenic JZ4780 HDMI Transmitter
>>> +
>>> +maintainers:
>>> + - H. Nikolaus Schaller <[email protected]>
>>> +
>>> +description: |
>>> + The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys
>>> DesignWare HDMI 1.4
>>> + TX controller IP with accompanying PHY IP.
>>
>> My dmesg disagrees:
>> dw-hdmi-ingenic 10180000.hdmi: Detected HDMI TX controller v1.31a
>> with HDCP (DWC HDMI 3D TX PHY)
>
> mine as well.
>
>>
>> Or am I comparing apples to oranges?
>
> There is a document called "JZ4780 High Efficiency Engine for Mobile
> Device"
> (JZ4780_PB.pdf) which says
>
> "24-bit parallel/serial TFT interface, HDMI 1.4a interface, LVDS
> interface"
>
> And the data sheet ("JZ4780 Mobile Application Processor Data Sheet
> ") says: "Support HDMI 1.4a Interface"
>
> Finally, the programming manual also says "Support HDMI 1.4a
> Interface".
>
> So what is correct?
>
> dmesg may return something else. E.g. silicon revision 1.31a
> while the interface is HDMI protocol revision 1.4a compatible?
>
> Trying to find something about "hdmi 1.31a" did only lead to some
> "Synopsys' HAPS-51 eval platform" [1].
>
> Looking at HDMI standards [2] I can only find HDMI 1.3 and 1.3a but
> no HDMI 1.31a.
>
> [1]
> https://www.digital-cp.com/hdcp-products/haps51-hdmi-tx-platform-dwc-hdmi-tx-controller-131a-ea-hdmi-3d-tx-phy-tsmc40g-ip
> [2] https://en.wikipedia.org/wiki/HDMI#Version_1.3
>
> Well it may also be some Synopsys-internal designation 1.31a
> referring so something
> newer than HDMI 1.3a which became the HDMI 1.4 standard (released
> June 2009)...
>
> Whom should we believe? What the chip tells or what the data sheet
> and programming
> manual says?
>
> I tend to keep confusion low and stay with "HDMI 1.4" in the bindings
> because
> there is no offical "HDMI 1.31a" standard. And HDMI 1.4 was already
> some years old
> when the jz4780 was released. So it is likely that the chip
> identification just
> returns 1.31a (maybe Ingenic licenced an interim release VHDL)
> although the standard
> was later officially named 1.4a.

Fair enough. Let's keep "HDMI 1.4" until proven otherwise.

Cheers,
-Paul

>>
>>> +
>>> +allOf:
>>> + - $ref: bridge/synopsys,dw-hdmi.yaml#
>>> +
>>> +properties:
>>> + compatible:
>>> + const: ingenic,jz4780-dw-hdmi
>>> +
>>> + reg-io-width:
>>> + const: 4
>>> +
>>> + clocks:
>>> + maxItems: 2
>>> +
>>> + hdmi-5v-supply:
>>> + description: Optional regulator to provide +5V at the
>>> connector
>>> +
>>> + ddc-i2c-bus:
>>> + description: An I2C interface if the internal DDC I2C driver
>>> is not to be used
>>
>> This property is used within
>> (drivers/gpu/drm/bridge/synopsys/dw-hdmi.c); I think it would make
>> sense to move it to bridge/synopsys,dw-hdmi.yaml.
>
> It is indeed more general and not jz4780 specific. I'll move it for
> v6.
>
> BR and thanks,
> Nikolaus
>