Add the dt-binding for the StarFive JH7110 Innosilicon HDMI controller (DRM bridge).
This device is the second child of the starfive,jh7110-hdmi-mfd node. It consumes register access clocks (sys, mclk, bclk) from the voutcrg and both the pixel clock (pclk) and the PHY from its hdmi_phy sibling. Signed-off-by: Michal Wilczynski <[email protected]> --- .../starfive,jh7110-inno-hdmi-controller.yaml | 123 +++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 124 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/starfive,jh7110-inno-hdmi-controller.yaml b/Documentation/devicetree/bindings/display/bridge/starfive,jh7110-inno-hdmi-controller.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3707c9dbff9c9fdc0ed7db4720a6dd8eabeeb774 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/starfive,jh7110-inno-hdmi-controller.yaml @@ -0,0 +1,123 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/starfive,jh7110-inno-hdmi-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: StarFive JH7110 Innosilicon HDMI Controller + +maintainers: + - Michal Wilczynski <[email protected]> + +description: + The controller portion of the StarFive JH7110 INNO HDMI IP. + +properties: + compatible: + const: starfive,jh7110-inno-hdmi-controller + + interrupts: + maxItems: 1 + + clocks: + items: + - description: System clock for register access + - description: Module clock + - description: Bus clock + - description: Pixel clock from PHY + + clock-names: + items: + - const: sys + - const: mclk + - const: bclk + - const: pclk + + resets: + maxItems: 1 + + reset-names: + const: hdmi_tx + + phys: + maxItems: 1 + + phy-names: + const: hdmi-phy + + ports: + $ref: /schemas/graph.yaml#/properties/ports + description: + A graph node with one input port and one output port. + +required: + - compatible + - interrupts + - clocks + - clock-names + - resets + - reset-names + - phys + - phy-names + - ports + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/starfive,jh7110-crg.h> + #include <dt-bindings/reset/starfive,jh7110-crg.h> + + soc { + #address-cells = <1>; + #size-cells = <1>; + + hdmi_mfd: hdmi@29590000 { + compatible = "starfive,jh7110-hdmi-mfd"; + reg = <0x29590000 0x4000>; + + hdmi_phy: phy { + compatible = "starfive,jh7110-inno-hdmi-phy"; + clocks = <&xin24m>; + clock-names = "refoclk"; + #clock-cells = <0>; + clock-output-names = "hdmi_pclk"; + #phy-cells = <0>; + }; + + hdmi_controller: controller { + compatible = "starfive,jh7110-inno-hdmi-controller"; + interrupts = <99>; + clocks = <&voutcrg JH7110_VOUTCLK_HDMI_TX_SYS>, + <&voutcrg JH7110_VOUTCLK_HDMI_TX_MCLK>, + <&voutcrg JH7110_VOUTCLK_HDMI_TX_BCLK>, + <&hdmi_phy>; + clock-names = "sys", "mclk", "bclk", "pclk"; + resets = <&voutcrg JH7110_VOUTRST_HDMI_TX_HDMI>; + reset-names = "hdmi_tx"; + phys = <&hdmi_phy>; + phy-names = "hdmi-phy"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + hdmi_in: endpoint { + remote-endpoint = <&dpu_out_dpi0>; + }; + }; + + port@1 { + reg = <1>; + hdmi_out: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; + }; + }; + }; + }; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index a75ba7a44ee84db6a75b91c1a0867a37db2ebcdb..66fab45bbee8c1a5f73d09bb470d28029b8c6139 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -24047,6 +24047,7 @@ F: drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c STARFIVE JH7110 DISPLAY SUBSYSTEM M: Michal Wilczynski <[email protected]> S: Maintained +F: Documentation/devicetree/bindings/display/bridge/starfive,jh7110-inno-hdmi-controller.yaml F: Documentation/devicetree/bindings/phy/starfive,jh7110-inno-hdmi-phy.yaml F: Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-vout-subsystem.yaml -- 2.34.1
