xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/tegra/nvidia,tegra124-sor.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-sor.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: NVIDIA Tegra SOR Output Encoder
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
11b97ee269SEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
12b97ee269SEmmanuel Vadot
13b97ee269SEmmanuel Vadotdescription: |
14b97ee269SEmmanuel Vadot  The Serial Output Resource (SOR) can be used to drive HDMI, LVDS, eDP
15b97ee269SEmmanuel Vadot  and DP outputs.
16b97ee269SEmmanuel Vadot
17b97ee269SEmmanuel Vadotproperties:
18b97ee269SEmmanuel Vadot  $nodename:
19b97ee269SEmmanuel Vadot    pattern: "^sor@[0-9a-f]+$"
20b97ee269SEmmanuel Vadot
21b97ee269SEmmanuel Vadot  compatible:
22b97ee269SEmmanuel Vadot    oneOf:
23b97ee269SEmmanuel Vadot      - enum:
24b97ee269SEmmanuel Vadot          - nvidia,tegra124-sor
25b97ee269SEmmanuel Vadot          - nvidia,tegra210-sor
26b97ee269SEmmanuel Vadot          - nvidia,tegra210-sor1
27b97ee269SEmmanuel Vadot          - nvidia,tegra186-sor
28b97ee269SEmmanuel Vadot          - nvidia,tegra186-sor1
29b97ee269SEmmanuel Vadot          - nvidia,tegra194-sor
30b97ee269SEmmanuel Vadot
31b97ee269SEmmanuel Vadot      - items:
32b97ee269SEmmanuel Vadot          - const: nvidia,tegra132-sor
33b97ee269SEmmanuel Vadot          - const: nvidia,tegra124-sor
34b97ee269SEmmanuel Vadot
35b97ee269SEmmanuel Vadot  reg:
36b97ee269SEmmanuel Vadot    maxItems: 1
37b97ee269SEmmanuel Vadot
38b97ee269SEmmanuel Vadot  interrupts:
39b97ee269SEmmanuel Vadot    maxItems: 1
40b97ee269SEmmanuel Vadot
41b97ee269SEmmanuel Vadot  clocks:
42b97ee269SEmmanuel Vadot    minItems: 5
43b97ee269SEmmanuel Vadot    maxItems: 6
44b97ee269SEmmanuel Vadot
45b97ee269SEmmanuel Vadot  clock-names:
46b97ee269SEmmanuel Vadot    minItems: 5
47b97ee269SEmmanuel Vadot    maxItems: 6
48b97ee269SEmmanuel Vadot
49b97ee269SEmmanuel Vadot  resets:
50b97ee269SEmmanuel Vadot    items:
51b97ee269SEmmanuel Vadot      - description: module reset
52b97ee269SEmmanuel Vadot
53b97ee269SEmmanuel Vadot  reset-names:
54b97ee269SEmmanuel Vadot    items:
55b97ee269SEmmanuel Vadot      - const: sor
56b97ee269SEmmanuel Vadot
57b97ee269SEmmanuel Vadot  power-domains:
58b97ee269SEmmanuel Vadot    maxItems: 1
59b97ee269SEmmanuel Vadot
60b97ee269SEmmanuel Vadot  avdd-io-hdmi-dp-supply:
61b97ee269SEmmanuel Vadot    description: I/O supply for HDMI/DP
62b97ee269SEmmanuel Vadot
63b97ee269SEmmanuel Vadot  vdd-hdmi-dp-pll-supply:
64b97ee269SEmmanuel Vadot    description: PLL supply for HDMI/DP
65b97ee269SEmmanuel Vadot
66b97ee269SEmmanuel Vadot  hdmi-supply:
67b97ee269SEmmanuel Vadot    description: +5.0V HDMI connector supply, required for HDMI
68b97ee269SEmmanuel Vadot
69b97ee269SEmmanuel Vadot  # Tegra186 and later
70b97ee269SEmmanuel Vadot  nvidia,interface:
71b97ee269SEmmanuel Vadot    description: index of the SOR interface
72fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
73b97ee269SEmmanuel Vadot
74b97ee269SEmmanuel Vadot  nvidia,ddc-i2c-bus:
75b97ee269SEmmanuel Vadot    description: phandle of an I2C controller used for DDC EDID
76b97ee269SEmmanuel Vadot      probing
77fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
78b97ee269SEmmanuel Vadot
79b97ee269SEmmanuel Vadot  nvidia,hpd-gpio:
80b97ee269SEmmanuel Vadot    description: specifies a GPIO used for hotplug detection
81b97ee269SEmmanuel Vadot    maxItems: 1
82b97ee269SEmmanuel Vadot
83b97ee269SEmmanuel Vadot  nvidia,edid:
84b97ee269SEmmanuel Vadot    description: supplies a binary EDID blob
85fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
86b97ee269SEmmanuel Vadot
87b97ee269SEmmanuel Vadot  nvidia,panel:
88b97ee269SEmmanuel Vadot    description: phandle of a display panel, required for eDP
89fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
90b97ee269SEmmanuel Vadot
91b97ee269SEmmanuel Vadot  nvidia,xbar-cfg:
92b97ee269SEmmanuel Vadot    description: 5 cells containing the crossbar configuration.
93b97ee269SEmmanuel Vadot      Each lane of the SOR, identified by the cell's index, is
94b97ee269SEmmanuel Vadot      mapped via the crossbar to the pad specified by the cell's
95b97ee269SEmmanuel Vadot      value.
96fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
97b97ee269SEmmanuel Vadot
98b97ee269SEmmanuel Vadot  # optional when driving an eDP output
99b97ee269SEmmanuel Vadot  nvidia,dpaux:
100*aa1a8ff2SEmmanuel Vadot    description: phandle to a DisplayPort AUX interface
101fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
102b97ee269SEmmanuel Vadot
103b97ee269SEmmanuel VadotallOf:
104b97ee269SEmmanuel Vadot  - if:
105b97ee269SEmmanuel Vadot      properties:
106b97ee269SEmmanuel Vadot        compatible:
107b97ee269SEmmanuel Vadot          contains:
108b97ee269SEmmanuel Vadot            enum:
109b97ee269SEmmanuel Vadot              - nvidia,tegra186-sor
110b97ee269SEmmanuel Vadot              - nvidia,tegra194-sor
111b97ee269SEmmanuel Vadot    then:
112b97ee269SEmmanuel Vadot      properties:
113b97ee269SEmmanuel Vadot        clocks:
114b97ee269SEmmanuel Vadot          items:
115b97ee269SEmmanuel Vadot            - description: clock input for the SOR hardware
116b97ee269SEmmanuel Vadot            - description: SOR output clock
117b97ee269SEmmanuel Vadot            - description: input for the pixel clock
118b97ee269SEmmanuel Vadot            - description: reference clock for the SOR clock
119b97ee269SEmmanuel Vadot            - description: safe reference clock for the SOR clock
120b97ee269SEmmanuel Vadot                during power up
121b97ee269SEmmanuel Vadot            - description: SOR pad output clock
122b97ee269SEmmanuel Vadot
123b97ee269SEmmanuel Vadot        clock-names:
124b97ee269SEmmanuel Vadot          items:
125b97ee269SEmmanuel Vadot            - const: sor
126b97ee269SEmmanuel Vadot            - enum:
127b97ee269SEmmanuel Vadot                - source # deprecated
128b97ee269SEmmanuel Vadot                - out
129b97ee269SEmmanuel Vadot            - const: parent
130b97ee269SEmmanuel Vadot            - const: dp
131b97ee269SEmmanuel Vadot            - const: safe
132b97ee269SEmmanuel Vadot            - const: pad
133b97ee269SEmmanuel Vadot    else:
134b97ee269SEmmanuel Vadot      properties:
135b97ee269SEmmanuel Vadot        clocks:
136b97ee269SEmmanuel Vadot          items:
137b97ee269SEmmanuel Vadot            - description: clock input for the SOR hardware
138b97ee269SEmmanuel Vadot            - description: SOR output clock
139b97ee269SEmmanuel Vadot            - description: input for the pixel clock
140b97ee269SEmmanuel Vadot            - description: reference clock for the SOR clock
141b97ee269SEmmanuel Vadot            - description: safe reference clock for the SOR clock
142b97ee269SEmmanuel Vadot                during power up
143b97ee269SEmmanuel Vadot
144b97ee269SEmmanuel Vadot        clock-names:
145b97ee269SEmmanuel Vadot          items:
146b97ee269SEmmanuel Vadot            - const: sor
147b97ee269SEmmanuel Vadot            - enum:
148b97ee269SEmmanuel Vadot                - source # deprecated
149b97ee269SEmmanuel Vadot                - out
150b97ee269SEmmanuel Vadot            - const: parent
151b97ee269SEmmanuel Vadot            - const: dp
152b97ee269SEmmanuel Vadot            - const: safe
153b97ee269SEmmanuel Vadot
154b97ee269SEmmanuel VadotadditionalProperties: false
155b97ee269SEmmanuel Vadot
156b97ee269SEmmanuel Vadotrequired:
157b97ee269SEmmanuel Vadot  - compatible
158b97ee269SEmmanuel Vadot  - reg
159b97ee269SEmmanuel Vadot  - interrupts
160b97ee269SEmmanuel Vadot  - clocks
161b97ee269SEmmanuel Vadot  - clock-names
162b97ee269SEmmanuel Vadot  - resets
163b97ee269SEmmanuel Vadot  - reset-names
164b97ee269SEmmanuel Vadot  - avdd-io-hdmi-dp-supply
165b97ee269SEmmanuel Vadot  - vdd-hdmi-dp-pll-supply
166b97ee269SEmmanuel Vadot
167b97ee269SEmmanuel Vadotexamples:
168b97ee269SEmmanuel Vadot  - |
169b97ee269SEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
170b97ee269SEmmanuel Vadot    #include <dt-bindings/gpio/tegra-gpio.h>
171b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
172b97ee269SEmmanuel Vadot
173b97ee269SEmmanuel Vadot    sor0: sor@54540000 {
174b97ee269SEmmanuel Vadot        compatible = "nvidia,tegra210-sor";
175b97ee269SEmmanuel Vadot        reg = <0x54540000 0x00040000>;
176b97ee269SEmmanuel Vadot        interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
177b97ee269SEmmanuel Vadot        clocks = <&tegra_car TEGRA210_CLK_SOR0>,
178b97ee269SEmmanuel Vadot                 <&tegra_car TEGRA210_CLK_SOR0_OUT>,
179b97ee269SEmmanuel Vadot                 <&tegra_car TEGRA210_CLK_PLL_D_OUT0>,
180b97ee269SEmmanuel Vadot                 <&tegra_car TEGRA210_CLK_PLL_DP>,
181b97ee269SEmmanuel Vadot                 <&tegra_car TEGRA210_CLK_SOR_SAFE>;
182b97ee269SEmmanuel Vadot        clock-names = "sor", "out", "parent", "dp", "safe";
183b97ee269SEmmanuel Vadot        resets = <&tegra_car 182>;
184b97ee269SEmmanuel Vadot        reset-names = "sor";
185b97ee269SEmmanuel Vadot        pinctrl-0 = <&state_dpaux_aux>;
186b97ee269SEmmanuel Vadot        pinctrl-1 = <&state_dpaux_i2c>;
187b97ee269SEmmanuel Vadot        pinctrl-2 = <&state_dpaux_off>;
188b97ee269SEmmanuel Vadot        pinctrl-names = "aux", "i2c", "off";
189b97ee269SEmmanuel Vadot        power-domains = <&pd_sor>;
190b97ee269SEmmanuel Vadot
191b97ee269SEmmanuel Vadot        avdd-io-hdmi-dp-supply = <&avdd_1v05>;
192b97ee269SEmmanuel Vadot        vdd-hdmi-dp-pll-supply = <&vdd_1v8>;
193b97ee269SEmmanuel Vadot        hdmi-supply = <&vdd_hdmi>;
194b97ee269SEmmanuel Vadot
195b97ee269SEmmanuel Vadot        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
196b97ee269SEmmanuel Vadot        nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1) GPIO_ACTIVE_LOW>;
197b97ee269SEmmanuel Vadot    };
198