xref: /linux/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-csi.yaml (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-csi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVIDIA Tegra20 CSI controller
8
9maintainers:
10  - Svyatoslav Ryhel <clamor95@gmail.com>
11
12properties:
13  compatible:
14    enum:
15      - nvidia,tegra20-csi
16      - nvidia,tegra30-csi
17
18  reg:
19    maxItems: 1
20
21  clocks:
22    minItems: 1
23    items:
24      - description: module clock
25      - description: PAD A clock
26      - description: PAD B clock
27
28  clock-names:
29    items:
30      - const: csi
31      - const: csia-pad
32      - const: csib-pad
33
34  avdd-dsi-csi-supply:
35    description: DSI/CSI power supply. Must supply 1.2 V.
36
37  power-domains:
38    maxItems: 1
39
40  "#nvidia,mipi-calibrate-cells":
41    description:
42      The number of cells in a MIPI calibration specifier. Should be 1.
43      The single cell specifies an id of the pad that need to be
44      calibrated for a given device. Valid pad ids for receiver would be
45      0 for CSI-A; 1 for CSI-B; 2 for DSI-A and 3 for DSI-B.
46    $ref: /schemas/types.yaml#/definitions/uint32
47    const: 1
48
49  "#address-cells":
50    const: 1
51
52  "#size-cells":
53    const: 0
54
55patternProperties:
56  "^channel@[0-1]$":
57    type: object
58    description: channel 0 represents CSI-A and 1 represents CSI-B
59    additionalProperties: false
60
61    properties:
62      reg:
63        maximum: 1
64
65      nvidia,mipi-calibrate:
66        description: Should contain a phandle and a specifier specifying
67          which pad is used by this CSI channel and needs to be calibrated.
68        $ref: /schemas/types.yaml#/definitions/phandle-array
69
70      "#address-cells":
71        const: 1
72
73      "#size-cells":
74        const: 0
75
76      port@0:
77        $ref: /schemas/graph.yaml#/$defs/port-base
78        unevaluatedProperties: false
79        description: port receiving the video stream from the sensor
80
81        properties:
82          endpoint:
83            $ref: /schemas/media/video-interfaces.yaml#
84            unevaluatedProperties: false
85
86            required:
87              - data-lanes
88
89      port@1:
90        $ref: /schemas/graph.yaml#/properties/port
91        description: port sending the video stream to the VI
92
93    required:
94      - reg
95      - "#address-cells"
96      - "#size-cells"
97      - port@0
98      - port@1
99
100allOf:
101  - if:
102      properties:
103        compatible:
104          contains:
105            enum:
106              - nvidia,tegra20-csi
107    then:
108      properties:
109        clocks:
110          maxItems: 1
111
112        clock-names: false
113
114  - if:
115      properties:
116        compatible:
117          contains:
118            enum:
119              - nvidia,tegra30-csi
120    then:
121      properties:
122        clocks:
123          minItems: 3
124
125        clock-names:
126          minItems: 3
127
128additionalProperties: false
129
130required:
131  - compatible
132  - reg
133  - clocks
134  - power-domains
135  - "#address-cells"
136  - "#size-cells"
137
138# see nvidia,tegra20-vi.yaml for an example
139