Message ID | 518d5db83e84e3f0326854c5afb53a92e7ae4e41.1633436959.git.hns@goldelico.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | MIPS: JZ4780 and CI20 HDMI | expand |
Hi Nikolaus, Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller <hns@goldelico.com> a écrit : > From: Sam Ravnborg <sam@ravnborg.org> > > 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 <sam@ravnborg.org> > Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> > Cc: Rob Herring <robh@kernel.org> > Cc: devicetree@vger.kernel.org > --- > .../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 <hns@goldelico.com> > + > +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 >
On Tue, 05 Oct 2021 14:29:15 +0200, H. Nikolaus Schaller wrote: > From: Sam Ravnborg <sam@ravnborg.org> > > 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 <sam@ravnborg.org> > Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> > Cc: Rob Herring <robh@kernel.org> > Cc: devicetree@vger.kernel.org > --- > .../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.
Hi, > Am 05.10.2021 um 22:43 schrieb Paul Cercueil <paul@crapouillou.net>: > > Hi Nikolaus, > > Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller <hns@goldelico.com> a écrit : >> From: Sam Ravnborg <sam@ravnborg.org> >> 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 <sam@ravnborg.org> >> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> >> Cc: Rob Herring <robh@kernel.org> >> Cc: devicetree@vger.kernel.org >> --- >> .../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 <hns@goldelico.com> >> + >> +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
Hi Nikolaus, Le dim., nov. 7 2021 at 14:43:33 +0100, H. Nikolaus Schaller <hns@goldelico.com> a écrit : > Hi, > >> Am 05.10.2021 um 22:43 schrieb Paul Cercueil <paul@crapouillou.net>: >> >> Hi Nikolaus, >> >> Le mar., oct. 5 2021 at 14:29:15 +0200, H. Nikolaus Schaller >> <hns@goldelico.com> a écrit : >>> From: Sam Ravnborg <sam@ravnborg.org> >>> 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 <sam@ravnborg.org> >>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> >>> Cc: Rob Herring <robh@kernel.org> >>> Cc: devicetree@vger.kernel.org >>> --- >>> .../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 <hns@goldelico.com> >>> + >>> +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 >
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 <hns@goldelico.com> + +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>; + }; + }; + }; + }; + +...