xref: /freebsd/sys/contrib/device-tree/Bindings/media/ti,cal.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/media/ti,cal.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Texas Instruments DRA72x CAMERA ADAPTATION LAYER (CAL)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Benoit Parrot <bparrot@ti.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |-
13c66ec88fSEmmanuel Vadot  The Camera Adaptation Layer (CAL) is a key component for image capture
14c66ec88fSEmmanuel Vadot  applications. The capture module provides the system interface and the
15c66ec88fSEmmanuel Vadot  processing capability to connect CSI2 image-sensor modules to the
16c66ec88fSEmmanuel Vadot  DRA72x device.
17c66ec88fSEmmanuel Vadot
185def4c47SEmmanuel Vadot  CAL supports 2 camera port nodes on MIPI bus.
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadotproperties:
21c66ec88fSEmmanuel Vadot  compatible:
22c66ec88fSEmmanuel Vadot    enum:
23c66ec88fSEmmanuel Vadot      # for DRA72 controllers
24c66ec88fSEmmanuel Vadot      - ti,dra72-cal
25c66ec88fSEmmanuel Vadot      # for DRA72 controllers pre ES2.0
26c66ec88fSEmmanuel Vadot      - ti,dra72-pre-es2-cal
27c66ec88fSEmmanuel Vadot      # for DRA76 controllers
28c66ec88fSEmmanuel Vadot      - ti,dra76-cal
29c66ec88fSEmmanuel Vadot      # for AM654 controllers
30c66ec88fSEmmanuel Vadot      - ti,am654-cal
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot  reg:
33c66ec88fSEmmanuel Vadot    minItems: 2
34c66ec88fSEmmanuel Vadot    items:
35c66ec88fSEmmanuel Vadot      - description: The CAL main register region
36c66ec88fSEmmanuel Vadot      - description: The RX Core0 (DPHY0) register region
37c66ec88fSEmmanuel Vadot      - description: The RX Core1 (DPHY1) register region
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  reg-names:
40c66ec88fSEmmanuel Vadot    minItems: 2
41c66ec88fSEmmanuel Vadot    items:
42c66ec88fSEmmanuel Vadot      - const: cal_top
43c66ec88fSEmmanuel Vadot      - const: cal_rx_core0
44c66ec88fSEmmanuel Vadot      - const: cal_rx_core1
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot  interrupts:
47c66ec88fSEmmanuel Vadot    maxItems: 1
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  ti,camerrx-control:
50*fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
51c9ccf3a3SEmmanuel Vadot    items:
52c9ccf3a3SEmmanuel Vadot      - items:
53c9ccf3a3SEmmanuel Vadot          - description: phandle to device control module
54c9ccf3a3SEmmanuel Vadot          - description: offset to the control_camerarx_core register
55c66ec88fSEmmanuel Vadot    description:
56c66ec88fSEmmanuel Vadot      phandle to the device control module and offset to the
57c66ec88fSEmmanuel Vadot      control_camerarx_core register
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  clocks:
60c66ec88fSEmmanuel Vadot    maxItems: 1
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot  clock-names:
63c66ec88fSEmmanuel Vadot    const: fck
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot  power-domains:
66c66ec88fSEmmanuel Vadot    description:
67c66ec88fSEmmanuel Vadot      List of phandle and PM domain specifier as documented in
68c66ec88fSEmmanuel Vadot      Documentation/devicetree/bindings/power/power_domain.txt
69c66ec88fSEmmanuel Vadot    maxItems: 1
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot  ports:
725def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot    properties:
75c66ec88fSEmmanuel Vadot      port@0:
765def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
775def4c47SEmmanuel Vadot        unevaluatedProperties: false
78*fac71e4eSEmmanuel Vadot        description: 'CSI2 Port #0'
79c66ec88fSEmmanuel Vadot
805def4c47SEmmanuel Vadot        properties:
81c66ec88fSEmmanuel Vadot          endpoint:
825def4c47SEmmanuel Vadot            $ref: video-interfaces.yaml#
835def4c47SEmmanuel Vadot            unevaluatedProperties: false
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot            properties:
86c66ec88fSEmmanuel Vadot              clock-lanes:
87c66ec88fSEmmanuel Vadot                maxItems: 1
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot              data-lanes:
90c66ec88fSEmmanuel Vadot                minItems: 1
91c66ec88fSEmmanuel Vadot                maxItems: 4
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot      port@1:
945def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
955def4c47SEmmanuel Vadot        unevaluatedProperties: false
96*fac71e4eSEmmanuel Vadot        description: 'CSI2 Port #1'
97c66ec88fSEmmanuel Vadot
985def4c47SEmmanuel Vadot        properties:
99c66ec88fSEmmanuel Vadot          endpoint:
1005def4c47SEmmanuel Vadot            $ref: video-interfaces.yaml#
1015def4c47SEmmanuel Vadot            unevaluatedProperties: false
102c66ec88fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot            properties:
104c66ec88fSEmmanuel Vadot              clock-lanes:
105c66ec88fSEmmanuel Vadot                maxItems: 1
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot              data-lanes:
108c66ec88fSEmmanuel Vadot                minItems: 1
109c66ec88fSEmmanuel Vadot                maxItems: 4
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadot    required:
112c66ec88fSEmmanuel Vadot      - port@0
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadotrequired:
115c66ec88fSEmmanuel Vadot  - compatible
116c66ec88fSEmmanuel Vadot  - reg
117c66ec88fSEmmanuel Vadot  - reg-names
118c66ec88fSEmmanuel Vadot  - interrupts
119c66ec88fSEmmanuel Vadot  - ti,camerrx-control
120c66ec88fSEmmanuel Vadot
121c66ec88fSEmmanuel VadotadditionalProperties: false
122c66ec88fSEmmanuel Vadot
123c66ec88fSEmmanuel Vadotexamples:
124c66ec88fSEmmanuel Vadot  - |
125c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
126c66ec88fSEmmanuel Vadot
127c66ec88fSEmmanuel Vadot    cal: cal@4845b000 {
128c66ec88fSEmmanuel Vadot        compatible = "ti,dra72-cal";
129c66ec88fSEmmanuel Vadot        reg = <0x4845B000 0x400>,
130c66ec88fSEmmanuel Vadot              <0x4845B800 0x40>,
131c66ec88fSEmmanuel Vadot              <0x4845B900 0x40>;
132c66ec88fSEmmanuel Vadot        reg-names = "cal_top",
133c66ec88fSEmmanuel Vadot                    "cal_rx_core0",
134c66ec88fSEmmanuel Vadot                    "cal_rx_core1";
135c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
136c66ec88fSEmmanuel Vadot        ti,camerrx-control = <&scm_conf 0xE94>;
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot        ports {
139c66ec88fSEmmanuel Vadot              #address-cells = <1>;
140c66ec88fSEmmanuel Vadot              #size-cells = <0>;
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot              csi2_0: port@0 {
143c66ec88fSEmmanuel Vadot                    reg = <0>;
144c66ec88fSEmmanuel Vadot                    csi2_phy0: endpoint {
145c66ec88fSEmmanuel Vadot                           remote-endpoint = <&csi2_cam0>;
146c66ec88fSEmmanuel Vadot                           clock-lanes = <0>;
147c66ec88fSEmmanuel Vadot                           data-lanes = <1 2>;
148c66ec88fSEmmanuel Vadot                    };
149c66ec88fSEmmanuel Vadot              };
150c66ec88fSEmmanuel Vadot        };
151c66ec88fSEmmanuel Vadot    };
152c66ec88fSEmmanuel Vadot
153c66ec88fSEmmanuel Vadot    i2c {
154c66ec88fSEmmanuel Vadot        clock-frequency = <400000>;
155c66ec88fSEmmanuel Vadot        #address-cells = <1>;
156c66ec88fSEmmanuel Vadot        #size-cells = <0>;
157c66ec88fSEmmanuel Vadot
158c66ec88fSEmmanuel Vadot        camera-sensor@3c {
159c66ec88fSEmmanuel Vadot               compatible = "ovti,ov5640";
160c66ec88fSEmmanuel Vadot               reg = <0x3c>;
1618cc087a1SEmmanuel Vadot               AVDD-supply = <&reg_2p8v>;
1628cc087a1SEmmanuel Vadot               DOVDD-supply = <&reg_1p8v>;
1638cc087a1SEmmanuel Vadot               DVDD-supply = <&reg_1p5v>;
164c66ec88fSEmmanuel Vadot               clocks = <&clk_ov5640_fixed>;
165c66ec88fSEmmanuel Vadot               clock-names = "xclk";
166c66ec88fSEmmanuel Vadot
167c66ec88fSEmmanuel Vadot               port {
168c66ec88fSEmmanuel Vadot                    csi2_cam0: endpoint {
169c66ec88fSEmmanuel Vadot                            remote-endpoint = <&csi2_phy0>;
170c66ec88fSEmmanuel Vadot                            clock-lanes = <0>;
171c66ec88fSEmmanuel Vadot                            data-lanes = <1 2>;
172c66ec88fSEmmanuel Vadot                    };
173c66ec88fSEmmanuel Vadot               };
174c66ec88fSEmmanuel Vadot        };
175c66ec88fSEmmanuel Vadot    };
176c66ec88fSEmmanuel Vadot
177c66ec88fSEmmanuel Vadot...
178