xref: /linux/Documentation/devicetree/bindings/media/ti,omap3isp.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*c16b58a4SAlex Tran# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c16b58a4SAlex Tran%YAML 1.2
3*c16b58a4SAlex Tran---
4*c16b58a4SAlex Tran$id: http://devicetree.org/schemas/media/ti,omap3isp.yaml#
5*c16b58a4SAlex Tran$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c16b58a4SAlex Tran
7*c16b58a4SAlex Trantitle: Texas Instruments OMAP 3 Image Signal Processor (ISP)
8*c16b58a4SAlex Tran
9*c16b58a4SAlex Tranmaintainers:
10*c16b58a4SAlex Tran  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11*c16b58a4SAlex Tran  - Sakari Ailus <sakari.ailus@iki.fi>
12*c16b58a4SAlex Tran
13*c16b58a4SAlex Trandescription:
14*c16b58a4SAlex Tran  The OMAP 3 ISP is an image signal processor present in OMAP 3 SoCs.
15*c16b58a4SAlex Tran
16*c16b58a4SAlex Tranproperties:
17*c16b58a4SAlex Tran  compatible:
18*c16b58a4SAlex Tran    const: ti,omap3-isp
19*c16b58a4SAlex Tran
20*c16b58a4SAlex Tran  reg:
21*c16b58a4SAlex Tran    items:
22*c16b58a4SAlex Tran      - description: Core ISP registers up to the end of the SBL block
23*c16b58a4SAlex Tran      - description: CSI PHYs and receivers registers
24*c16b58a4SAlex Tran
25*c16b58a4SAlex Tran  interrupts:
26*c16b58a4SAlex Tran    maxItems: 1
27*c16b58a4SAlex Tran
28*c16b58a4SAlex Tran  iommus:
29*c16b58a4SAlex Tran    maxItems: 1
30*c16b58a4SAlex Tran
31*c16b58a4SAlex Tran  syscon:
32*c16b58a4SAlex Tran    $ref: /schemas/types.yaml#/definitions/phandle-array
33*c16b58a4SAlex Tran    items:
34*c16b58a4SAlex Tran      - items:
35*c16b58a4SAlex Tran          - description: phandle to System Control Module
36*c16b58a4SAlex Tran          - description: register offset to Complex I/O or CSI-PHY register
37*c16b58a4SAlex Tran    description:
38*c16b58a4SAlex Tran      Phandle and register offset to the Complex I/O or CSI-PHY register
39*c16b58a4SAlex Tran
40*c16b58a4SAlex Tran  ti,phy-type:
41*c16b58a4SAlex Tran    $ref: /schemas/types.yaml#/definitions/uint32
42*c16b58a4SAlex Tran    enum: [0, 1]
43*c16b58a4SAlex Tran    description:
44*c16b58a4SAlex Tran      0 - OMAP3ISP_PHY_TYPE_COMPLEX_IO (e.g. OMAP 3430)
45*c16b58a4SAlex Tran      1 - OMAP3ISP_PHY_TYPE_CSIPHY (e.g. OMAP 3630)
46*c16b58a4SAlex Tran
47*c16b58a4SAlex Tran  '#clock-cells':
48*c16b58a4SAlex Tran    const: 1
49*c16b58a4SAlex Tran    description:
50*c16b58a4SAlex Tran      The ISP provides two external clocks, cam_xclka and cam_xclkb,
51*c16b58a4SAlex Tran      at indices 0 and 1 respectively.
52*c16b58a4SAlex Tran
53*c16b58a4SAlex Tran  vdd-csiphy1-supply:
54*c16b58a4SAlex Tran    description: Voltage supply of the CSI-2 PHY 1
55*c16b58a4SAlex Tran
56*c16b58a4SAlex Tran  vdd-csiphy2-supply:
57*c16b58a4SAlex Tran    description: Voltage supply of the CSI-2 PHY 2
58*c16b58a4SAlex Tran
59*c16b58a4SAlex Tran  ports:
60*c16b58a4SAlex Tran    $ref: /schemas/graph.yaml#/properties/ports
61*c16b58a4SAlex Tran
62*c16b58a4SAlex Tran    properties:
63*c16b58a4SAlex Tran      port@0:
64*c16b58a4SAlex Tran        $ref: /schemas/graph.yaml#/$defs/port-base
65*c16b58a4SAlex Tran        unevaluatedProperties: false
66*c16b58a4SAlex Tran        description: Parallel (CCDC) interface
67*c16b58a4SAlex Tran
68*c16b58a4SAlex Tran        properties:
69*c16b58a4SAlex Tran          endpoint:
70*c16b58a4SAlex Tran            $ref: /schemas/media/video-interfaces.yaml#
71*c16b58a4SAlex Tran            unevaluatedProperties: false
72*c16b58a4SAlex Tran
73*c16b58a4SAlex Tran      port@1:
74*c16b58a4SAlex Tran        $ref: /schemas/graph.yaml#/$defs/port-base
75*c16b58a4SAlex Tran        unevaluatedProperties: false
76*c16b58a4SAlex Tran        description: |
77*c16b58a4SAlex Tran          CSIPHY1 interface:
78*c16b58a4SAlex Tran            OMAP 3630: CSI2C / CCP2B
79*c16b58a4SAlex Tran            OMAP 3430: CSI1 (CSIb)
80*c16b58a4SAlex Tran
81*c16b58a4SAlex Tran        properties:
82*c16b58a4SAlex Tran          endpoint:
83*c16b58a4SAlex Tran            $ref: /schemas/media/video-interfaces.yaml#
84*c16b58a4SAlex Tran            unevaluatedProperties: false
85*c16b58a4SAlex Tran
86*c16b58a4SAlex Tran            properties:
87*c16b58a4SAlex Tran              lane-polarities:
88*c16b58a4SAlex Tran                minItems: 2
89*c16b58a4SAlex Tran                maxItems: 3
90*c16b58a4SAlex Tran
91*c16b58a4SAlex Tran              data-lanes:
92*c16b58a4SAlex Tran                minItems: 1
93*c16b58a4SAlex Tran                maxItems: 2
94*c16b58a4SAlex Tran                items:
95*c16b58a4SAlex Tran                  minimum: 1
96*c16b58a4SAlex Tran                  maximum: 3
97*c16b58a4SAlex Tran
98*c16b58a4SAlex Tran              clock-lanes:
99*c16b58a4SAlex Tran                minimum: 1
100*c16b58a4SAlex Tran                maximum: 3
101*c16b58a4SAlex Tran
102*c16b58a4SAlex Tran      port@2:
103*c16b58a4SAlex Tran        $ref: /schemas/graph.yaml#/$defs/port-base
104*c16b58a4SAlex Tran        unevaluatedProperties: false
105*c16b58a4SAlex Tran        description: |
106*c16b58a4SAlex Tran          CSIPHY2 interface:
107*c16b58a4SAlex Tran            OMAP 3630: CSI2A / CCP2B
108*c16b58a4SAlex Tran            OMAP 3430: CSI2 (CSIa)
109*c16b58a4SAlex Tran
110*c16b58a4SAlex Tran        properties:
111*c16b58a4SAlex Tran          endpoint:
112*c16b58a4SAlex Tran            $ref: /schemas/media/video-interfaces.yaml#
113*c16b58a4SAlex Tran            unevaluatedProperties: false
114*c16b58a4SAlex Tran
115*c16b58a4SAlex Tran            properties:
116*c16b58a4SAlex Tran              lane-polarities:
117*c16b58a4SAlex Tran                minItems: 2
118*c16b58a4SAlex Tran                maxItems: 3
119*c16b58a4SAlex Tran
120*c16b58a4SAlex Tran              data-lanes:
121*c16b58a4SAlex Tran                minItems: 1
122*c16b58a4SAlex Tran                maxItems: 2
123*c16b58a4SAlex Tran                items:
124*c16b58a4SAlex Tran                  minimum: 1
125*c16b58a4SAlex Tran                  maximum: 3
126*c16b58a4SAlex Tran
127*c16b58a4SAlex Tran              clock-lanes:
128*c16b58a4SAlex Tran                minimum: 1
129*c16b58a4SAlex Tran                maximum: 3
130*c16b58a4SAlex Tran
131*c16b58a4SAlex Tranrequired:
132*c16b58a4SAlex Tran  - compatible
133*c16b58a4SAlex Tran  - reg
134*c16b58a4SAlex Tran  - interrupts
135*c16b58a4SAlex Tran  - iommus
136*c16b58a4SAlex Tran  - syscon
137*c16b58a4SAlex Tran  - ti,phy-type
138*c16b58a4SAlex Tran  - '#clock-cells'
139*c16b58a4SAlex Tran
140*c16b58a4SAlex TranadditionalProperties: false
141*c16b58a4SAlex Tran
142*c16b58a4SAlex Tranexamples:
143*c16b58a4SAlex Tran  - |
144*c16b58a4SAlex Tran    #include <dt-bindings/media/omap3-isp.h>
145*c16b58a4SAlex Tran
146*c16b58a4SAlex Tran    isp@480bc000 {
147*c16b58a4SAlex Tran        compatible = "ti,omap3-isp";
148*c16b58a4SAlex Tran        reg = <0x480bc000 0x12fc>,
149*c16b58a4SAlex Tran              <0x480bd800 0x0600>;
150*c16b58a4SAlex Tran        interrupts = <24>;
151*c16b58a4SAlex Tran        iommus = <&mmu_isp>;
152*c16b58a4SAlex Tran        syscon = <&scm_conf 0x2f0>;
153*c16b58a4SAlex Tran        ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
154*c16b58a4SAlex Tran        #clock-cells = <1>;
155*c16b58a4SAlex Tran        vdd-csiphy1-supply = <&vaux2>;
156*c16b58a4SAlex Tran        vdd-csiphy2-supply = <&vaux2>;
157*c16b58a4SAlex Tran
158*c16b58a4SAlex Tran        ports {
159*c16b58a4SAlex Tran            #address-cells = <1>;
160*c16b58a4SAlex Tran            #size-cells = <0>;
161*c16b58a4SAlex Tran
162*c16b58a4SAlex Tran            port@0 {
163*c16b58a4SAlex Tran                reg = <0>;
164*c16b58a4SAlex Tran                parallel_ep: endpoint {
165*c16b58a4SAlex Tran                    remote-endpoint = <&parallel>;
166*c16b58a4SAlex Tran                };
167*c16b58a4SAlex Tran            };
168*c16b58a4SAlex Tran
169*c16b58a4SAlex Tran            port@1 {
170*c16b58a4SAlex Tran                reg = <1>;
171*c16b58a4SAlex Tran                csi1_ep: endpoint {
172*c16b58a4SAlex Tran                    remote-endpoint = <&smia_1>;
173*c16b58a4SAlex Tran                    clock-lanes = <1>;
174*c16b58a4SAlex Tran                    data-lanes = <2>;
175*c16b58a4SAlex Tran                    lane-polarities = <0 0>;
176*c16b58a4SAlex Tran                };
177*c16b58a4SAlex Tran            };
178*c16b58a4SAlex Tran
179*c16b58a4SAlex Tran            port@2 {
180*c16b58a4SAlex Tran                reg = <2>;
181*c16b58a4SAlex Tran                csi2a_ep: endpoint {
182*c16b58a4SAlex Tran                    remote-endpoint = <&smia_2>;
183*c16b58a4SAlex Tran                    clock-lanes = <2>;
184*c16b58a4SAlex Tran                    data-lanes = <1 3>;
185*c16b58a4SAlex Tran                    lane-polarities = <1 1 1>;
186*c16b58a4SAlex Tran                };
187*c16b58a4SAlex Tran            };
188*c16b58a4SAlex Tran        };
189*c16b58a4SAlex Tran    };
190