Documentation / devicetree / bindings / display / rockchip / rockchip,inno-hdmi.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/rockchip/rockchip,inno-hdmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip Innosilicon HDMI controller

maintainers:
  - Sandy Huang <hjc@rock-chips.com>
  - Heiko Stuebner <heiko@sntech.de>

properties:
  compatible:
    enum:
      - rockchip,rk3036-inno-hdmi
      - rockchip,rk3128-inno-hdmi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: The HDMI controller main clock
      - description: The HDMI PHY reference clock

  clock-names:
    minItems: 1
    items:
      - const: pclk
      - const: ref

  power-domains:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Port node with one endpoint connected to a vop node.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Port node with one endpoint connected to a hdmi-connector node.

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - pinctrl-0
  - pinctrl-names
  - ports

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3036-inno-hdmi

    then:
      properties:
        power-domains: false

  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3128-inno-hdmi

    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2
      required:
        - power-domains

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/rk3036-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/pinctrl/rockchip.h>
    hdmi: hdmi@20034000 {
      compatible = "rockchip,rk3036-inno-hdmi";
      reg = <0x20034000 0x4000>;
      interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&cru  PCLK_HDMI>;
      clock-names = "pclk";
      pinctrl-names = "default";
      pinctrl-0 = <&hdmi_ctl>;
 
      ports {
        #address-cells = <1>;
        #size-cells = <0>;
 
        hdmi_in: port@0 {
          reg = <0>;
          hdmi_in_vop: endpoint {
            remote-endpoint = <&vop_out_hdmi>;
          };
        };
 
        hdmi_out: port@1 {
          reg = <1>;
          hdmi_out_con: endpoint {
            remote-endpoint = <&hdmi_con_in>;
          };
        };
      };
    };
 
    pinctrl {
      hdmi {
        hdmi_ctl: hdmi-ctl {
          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>,
                          <1 RK_PB1 1 &pcfg_pull_none>,
                          <1 RK_PB2 1 &pcfg_pull_none>,
                          <1 RK_PB3 1 &pcfg_pull_none>;
        };
      };
    };