On 02/06/2023 09:40, Keith Zhao wrote:
Add bindings for JH7110 display subsystem which has a display controller verisilicon dc8200 and an HDMI interface.
Signed-off-by: Keith Zhao keith.zhao@starfivetech.com
.../display/verisilicon/starfive-hdmi.yaml | 93 +++++++++++++++ .../display/verisilicon/verisilicon-dc.yaml | 110 ++++++++++++++++++ .../display/verisilicon/verisilicon-drm.yaml | 42 +++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + MAINTAINERS | 7 ++ 5 files changed, 254 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/verisilicon/starfive-hdmi.yaml create mode 100644 Documentation/devicetree/bindings/display/verisilicon/verisilicon-dc.yaml create mode 100644 Documentation/devicetree/bindings/display/verisilicon/verisilicon-drm.yaml
diff --git a/Documentation/devicetree/bindings/display/verisilicon/starfive-hdmi.yaml b/Documentation/devicetree/bindings/display/verisilicon/starfive-hdmi.yaml new file mode 100644 index 000000000000..c30b7954a355 --- /dev/null +++ b/Documentation/devicetree/bindings/display/verisilicon/starfive-hdmi.yaml
Filename matching compatible.
@@ -0,0 +1,93 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/verisilicon/starfive-hdmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: StarFive HDMI transmiter
+description:
- The StarFive SoC uses the HDMI signal transmiter based on innosilicon IP
 - to generate HDMI signal from its input and transmit the signal to the screen.
 +maintainers:
- Keith Zhao keith.zhao@starfivetech.com
 
- ShengYang Chen shengyang.chen@starfivetech.com
 +properties:
- compatible:
 - const: starfive,hdmi
 
Conor already commented on this.
- reg:
 - minItems: 1
 - interrupts:
 - items:
 - description: The HDMI hot plug detection interrupt.- clocks:
 - items:
 - description: System clock of HDMI module.- description: Mclk clock of HDMI audio.- description: Bclk clock of HDMI audio.- description: Pixel clock generated by HDMI module.- clock-names:
 - items:
 - const: sysclk- const: mclk- const: bclk- const: pclk- resets:
 - items:
 - description: Reset for HDMI module.- reset-names:
 - items:
 - const: hdmi_tx- '#sound-dai-cells':
 - const: 0
 - port:
 - $ref: /schemas/graph.yaml#/properties/port
 - description:
 Port node with one endpoint connected to a display connector node.
One port, so how do you get data? From where does it come?
+required:
- compatible
 
- reg
 
- interrupts
 
- clocks
 
- clock-names
 
- resets
 
- reset-names
 
- '#sound-dai-cells'
 
- port
 +additionalProperties: false
+examples:
- |
 - hdmi: hdmi@29590000 {
 compatible = "starfive,hdmi";reg = <0x29590000 0x4000>;interrupts = <99>;clocks = <&voutcrg 17>,<&voutcrg 15>,<&voutcrg 16>,<&hdmitx0_pixelclk>;clock-names = "sysclk", "mclk","bclk","pclk";resets = <&voutcrg 9>;reset-names = "hdmi_tx";#sound-dai-cells = <0>;hdmi_in: port {#address-cells = <1>;#size-cells = <0>;hdmi_input: endpoint@0 {reg = <0>;remote-endpoint = <&dc_out_dpi0>;
Mixed up indentation.
};};- };
 diff --git a/Documentation/devicetree/bindings/display/verisilicon/verisilicon-dc.yaml b/Documentation/devicetree/bindings/display/verisilicon/verisilicon-dc.yaml new file mode 100644 index 000000000000..1322502c4cde --- /dev/null +++ b/Documentation/devicetree/bindings/display/verisilicon/verisilicon-dc.yaml
Same problem.
@@ -0,0 +1,110 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/verisilicon/verisilicon-dc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: StarFive display controller
+description:
- The StarFive SoC uses the display controller based on Verisilicon IP
 - to transfer the image data from a video memory
 - buffer to an external LCD interface.
 +maintainers:
- Keith Zhao keith.zhao@starfivetech.com
 
- ShengYang Chen shengyang.chen@starfivetech.com
 +properties:
- compatible:
 - const: verisilicon,dc8200
 - reg:
 - maxItems: 3
 - interrupts:
 - items:
 - description: The interrupt will be generated when DC finish one frame- clocks:
 - items:
 - description: Clock for display system noc bus.- description: Pixel clock for display channel 0.- description: Pixel clock for display channel 1.- description: Clock for axi interface of display controller.- description: Core clock for display controller.- description: Clock for ahb interface of display controller.- description: External HDMI pixel clock.- description: Parent clock for pixel clock- clock-names:
 - items:
 - const: clk_vout_noc_disp
Why do you need "clk_" prefixes? Drop.
- const: clk_vout_pix0- const: clk_vout_pix1- const: clk_vout_axi- const: clk_vout_core- const: clk_vout_vout_ahb- const: hdmitx0_pixel- const: clk_vout_dc8200- resets:
 - items:
 - description: Reset for axi interface of display controller.- description: Reset for ahb interface of display controller.- description: Core reset of display controller.- reset-names:
 - items:
 - const: rst_vout_axi
Drop rst_
- const: rst_vout_ahb- const: rst_vout_core- port:
 - $ref: /schemas/graph.yaml#/properties/port
 - description:
 Port node with one endpoint connected to a hdmi node.
Oh really? But your HDMI does not allow it! Submit DTS user of all this so we can see it.
+required:
- compatible
 
- reg
 
- interrupts
 
- clocks
 
- clock-names
 
- resets
 
- reset-names
 
- port
 +additionalProperties: false
+examples:
- |
 - dc8200: dc8200@29400000 {
 
Node names should be generic. See also explanation and list of examples in DT specification: https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetre...
compatible = "verisilicon,dc8200";reg = <0x29400000 0x100>,<0x29400800 0x2000>,<0x295B0000 0x90>;
Lowercase hex
interrupts = <95>;clocks = <&syscrg 60>,<&voutcrg 7>,<&voutcrg 8>,<&voutcrg 4>,<&voutcrg 5>,<&voutcrg 6>,<&hdmitx0_pixelclk>,<&voutcrg 1>;clock-names = "clk_vout_noc_disp", "clk_vout_pix0", "clk_vout_pix1", "clk_vout_axi","clk_vout_core", "clk_vout_vout_ahb", "hdmitx0_pixel","clk_vout_dc8200";resets = <&voutcrg 0>,<&voutcrg 1>,<&voutcrg 2>;reset-names = "rst_vout_axi","rst_vout_ahb","rst_vout_core";dc_out: port {#address-cells = <1>;#size-cells = <0>;dc_out_dpi0: endpoint@0 {reg = <0>;remote-endpoint = <&hdmi_input>;};};- };
 diff --git a/Documentation/devicetree/bindings/display/verisilicon/verisilicon-drm.yaml b/Documentation/devicetree/bindings/display/verisilicon/verisilicon-drm.yaml new file mode 100644 index 000000000000..aed8d4af2c55 --- /dev/null +++ b/Documentation/devicetree/bindings/display/verisilicon/verisilicon-drm.yaml
Same comments
@@ -0,0 +1,42 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/verisilicon/verisilicon-drm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Verisilicon DRM master device
What is DRM? If Linux thingy, then it does not suit bindings.
Give it proper description of hardware.
+maintainers:
- Keith Zhao keith.zhao@starfivetech.com
 
- ShengYang Chen shengyang.chen@starfivetech.com
 +description: |
Do not need '|' unless you need to preserve formatting.
- The Verisilicon DRM master device is a virtual device needed to list all
 
We do not describe virtual devices in bindings.
NAK.
- display controller or other display interface nodes that comprise the
 - graphics subsystem.
 +properties:
- compatible:
 - const: verisilicon,display-subsystem
 - ports:
 - $ref: /schemas/types.yaml#/definitions/phandle-array
 
Ports is an object, not array. Drop entire property. It's just wrong.
Best regards, Krzysztof