| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | 
 | %YAML 1.2 | 
 | --- | 
 | $id: http://devicetree.org/schemas/media/ti,cal.yaml# | 
 | $schema: http://devicetree.org/meta-schemas/core.yaml# | 
 |  | 
 | title: Texas Instruments DRA72x CAMERA ADAPTATION LAYER (CAL) Device Tree Bindings | 
 |  | 
 | maintainers: | 
 |   - Benoit Parrot <bparrot@ti.com> | 
 |  | 
 | description: |- | 
 |   The Camera Adaptation Layer (CAL) is a key component for image capture | 
 |   applications. The capture module provides the system interface and the | 
 |   processing capability to connect CSI2 image-sensor modules to the | 
 |   DRA72x device. | 
 |  | 
 |   CAL supports 2 camera port nodes on MIPI bus. Each CSI2 camera port nodes | 
 |   should contain a 'port' child node with child 'endpoint' node. Please | 
 |   refer to the bindings defined in | 
 |   Documentation/devicetree/bindings/media/video-interfaces.txt. | 
 |  | 
 | properties: | 
 |   compatible: | 
 |     enum: | 
 |       # for DRA72 controllers | 
 |       - ti,dra72-cal | 
 |       # for DRA72 controllers pre ES2.0 | 
 |       - ti,dra72-pre-es2-cal | 
 |       # for DRA76 controllers | 
 |       - ti,dra76-cal | 
 |       # for AM654 controllers | 
 |       - ti,am654-cal | 
 |  | 
 |   reg: | 
 |     minItems: 2 | 
 |     items: | 
 |       - description: The CAL main register region | 
 |       - description: The RX Core0 (DPHY0) register region | 
 |       - description: The RX Core1 (DPHY1) register region | 
 |  | 
 |   reg-names: | 
 |     minItems: 2 | 
 |     items: | 
 |       - const: cal_top | 
 |       - const: cal_rx_core0 | 
 |       - const: cal_rx_core1 | 
 |  | 
 |   interrupts: | 
 |     maxItems: 1 | 
 |  | 
 |   ti,camerrx-control: | 
 |     $ref: "/schemas/types.yaml#/definitions/phandle-array" | 
 |     description: | 
 |       phandle to the device control module and offset to the | 
 |       control_camerarx_core register | 
 |  | 
 |   clocks: | 
 |     maxItems: 1 | 
 |  | 
 |   clock-names: | 
 |     const: fck | 
 |  | 
 |   power-domains: | 
 |     description: | 
 |       List of phandle and PM domain specifier as documented in | 
 |       Documentation/devicetree/bindings/power/power_domain.txt | 
 |     maxItems: 1 | 
 |  | 
 |   # See ./video-interfaces.txt for details | 
 |   ports: | 
 |     type: object | 
 |     additionalProperties: false | 
 |  | 
 |     properties: | 
 |       "#address-cells": | 
 |         const: 1 | 
 |  | 
 |       "#size-cells": | 
 |         const: 0 | 
 |  | 
 |       port@0: | 
 |         type: object | 
 |         additionalProperties: false | 
 |  | 
 |         properties: | 
 |           reg: | 
 |             const: 0 | 
 |             description: CSI2 Port #0 | 
 |  | 
 |         patternProperties: | 
 |           endpoint: | 
 |             type: object | 
 |             additionalProperties: false | 
 |  | 
 |             properties: | 
 |               clock-lanes: | 
 |                 maxItems: 1 | 
 |  | 
 |               data-lanes: | 
 |                 minItems: 1 | 
 |                 maxItems: 4 | 
 |  | 
 |               remote-endpoint: true | 
 |  | 
 |         required: | 
 |           - reg | 
 |  | 
 |       port@1: | 
 |         type: object | 
 |         additionalProperties: false | 
 |  | 
 |         properties: | 
 |           reg: | 
 |             const: 1 | 
 |             description: CSI2 Port #1 | 
 |  | 
 |         patternProperties: | 
 |           endpoint: | 
 |             type: object | 
 |             additionalProperties: false | 
 |  | 
 |             properties: | 
 |               clock-lanes: | 
 |                 maxItems: 1 | 
 |  | 
 |               data-lanes: | 
 |                 minItems: 1 | 
 |                 maxItems: 4 | 
 |  | 
 |               remote-endpoint: true | 
 |  | 
 |         required: | 
 |           - reg | 
 |  | 
 |     required: | 
 |       - "#address-cells" | 
 |       - "#size-cells" | 
 |       - port@0 | 
 |  | 
 | required: | 
 |   - compatible | 
 |   - reg | 
 |   - reg-names | 
 |   - interrupts | 
 |   - ti,camerrx-control | 
 |  | 
 | additionalProperties: false | 
 |  | 
 | examples: | 
 |   - | | 
 |     #include <dt-bindings/interrupt-controller/arm-gic.h> | 
 |  | 
 |     cal: cal@4845b000 { | 
 |         compatible = "ti,dra72-cal"; | 
 |         reg = <0x4845B000 0x400>, | 
 |               <0x4845B800 0x40>, | 
 |               <0x4845B900 0x40>; | 
 |         reg-names = "cal_top", | 
 |                     "cal_rx_core0", | 
 |                     "cal_rx_core1"; | 
 |         interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; | 
 |         ti,camerrx-control = <&scm_conf 0xE94>; | 
 |  | 
 |         ports { | 
 |               #address-cells = <1>; | 
 |               #size-cells = <0>; | 
 |  | 
 |               csi2_0: port@0 { | 
 |                     reg = <0>; | 
 |                     csi2_phy0: endpoint { | 
 |                            remote-endpoint = <&csi2_cam0>; | 
 |                            clock-lanes = <0>; | 
 |                            data-lanes = <1 2>; | 
 |                     }; | 
 |               }; | 
 |         }; | 
 |     }; | 
 |  | 
 |     i2c { | 
 |         clock-frequency = <400000>; | 
 |         #address-cells = <1>; | 
 |         #size-cells = <0>; | 
 |  | 
 |         camera-sensor@3c { | 
 |                compatible = "ovti,ov5640"; | 
 |                reg = <0x3c>; | 
 |  | 
 |                clocks = <&clk_ov5640_fixed>; | 
 |                clock-names = "xclk"; | 
 |  | 
 |                port { | 
 |                     csi2_cam0: endpoint { | 
 |                             remote-endpoint = <&csi2_phy0>; | 
 |                             clock-lanes = <0>; | 
 |                             data-lanes = <1 2>; | 
 |                     }; | 
 |                }; | 
 |         }; | 
 |     }; | 
 |  | 
 | ... |