xref: /openbmc/linux/Documentation/devicetree/bindings/media/ti,cal.yaml (revision 51a21e0e7baf279fbd0b57f3e376f8762df8bb7d)
12099ef02SBenoit Parrot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22099ef02SBenoit Parrot%YAML 1.2
32099ef02SBenoit Parrot---
42099ef02SBenoit Parrot$id: http://devicetree.org/schemas/media/ti,cal.yaml#
52099ef02SBenoit Parrot$schema: http://devicetree.org/meta-schemas/core.yaml#
62099ef02SBenoit Parrot
72099ef02SBenoit Parrottitle: Texas Instruments DRA72x CAMERA ADAPTATION LAYER (CAL) Device Tree Bindings
82099ef02SBenoit Parrot
92099ef02SBenoit Parrotmaintainers:
102099ef02SBenoit Parrot  - Benoit Parrot <bparrot@ti.com>
112099ef02SBenoit Parrot
122099ef02SBenoit Parrotdescription: |-
132099ef02SBenoit Parrot  The Camera Adaptation Layer (CAL) is a key component for image capture
142099ef02SBenoit Parrot  applications. The capture module provides the system interface and the
152099ef02SBenoit Parrot  processing capability to connect CSI2 image-sensor modules to the
162099ef02SBenoit Parrot  DRA72x device.
172099ef02SBenoit Parrot
182099ef02SBenoit Parrot  CAL supports 2 camera port nodes on MIPI bus. Each CSI2 camera port nodes
192099ef02SBenoit Parrot  should contain a 'port' child node with child 'endpoint' node. Please
202099ef02SBenoit Parrot  refer to the bindings defined in
212099ef02SBenoit Parrot  Documentation/devicetree/bindings/media/video-interfaces.txt.
222099ef02SBenoit Parrot
232099ef02SBenoit Parrotproperties:
242099ef02SBenoit Parrot  compatible:
252099ef02SBenoit Parrot    enum:
262099ef02SBenoit Parrot      # for DRA72 controllers
272099ef02SBenoit Parrot      - ti,dra72-cal
282099ef02SBenoit Parrot      # for DRA72 controllers pre ES2.0
292099ef02SBenoit Parrot      - ti,dra72-pre-es2-cal
302099ef02SBenoit Parrot      # for DRA76 controllers
312099ef02SBenoit Parrot      - ti,dra76-cal
322099ef02SBenoit Parrot      # for AM654 controllers
332099ef02SBenoit Parrot      - ti,am654-cal
342099ef02SBenoit Parrot
352099ef02SBenoit Parrot  reg:
362099ef02SBenoit Parrot    minItems: 2
372099ef02SBenoit Parrot    items:
382099ef02SBenoit Parrot      - description: The CAL main register region
392099ef02SBenoit Parrot      - description: The RX Core0 (DPHY0) register region
402099ef02SBenoit Parrot      - description: The RX Core1 (DPHY1) register region
412099ef02SBenoit Parrot
422099ef02SBenoit Parrot  reg-names:
432099ef02SBenoit Parrot    minItems: 2
442099ef02SBenoit Parrot    items:
452099ef02SBenoit Parrot      - const: cal_top
462099ef02SBenoit Parrot      - const: cal_rx_core0
472099ef02SBenoit Parrot      - const: cal_rx_core1
482099ef02SBenoit Parrot
492099ef02SBenoit Parrot  interrupts:
502099ef02SBenoit Parrot    maxItems: 1
512099ef02SBenoit Parrot
522099ef02SBenoit Parrot  ti,camerrx-control:
532099ef02SBenoit Parrot    $ref: "/schemas/types.yaml#/definitions/phandle-array"
542099ef02SBenoit Parrot    description:
552099ef02SBenoit Parrot      phandle to the device control module and offset to the
562099ef02SBenoit Parrot      control_camerarx_core register
572099ef02SBenoit Parrot
582099ef02SBenoit Parrot  clocks:
592099ef02SBenoit Parrot    maxItems: 1
602099ef02SBenoit Parrot
612099ef02SBenoit Parrot  clock-names:
622099ef02SBenoit Parrot    const: fck
632099ef02SBenoit Parrot
642099ef02SBenoit Parrot  power-domains:
652099ef02SBenoit Parrot    description:
662099ef02SBenoit Parrot      List of phandle and PM domain specifier as documented in
672099ef02SBenoit Parrot      Documentation/devicetree/bindings/power/power_domain.txt
682099ef02SBenoit Parrot    maxItems: 1
692099ef02SBenoit Parrot
702099ef02SBenoit Parrot  # See ./video-interfaces.txt for details
712099ef02SBenoit Parrot  ports:
722099ef02SBenoit Parrot    type: object
732099ef02SBenoit Parrot    additionalProperties: false
742099ef02SBenoit Parrot
752099ef02SBenoit Parrot    properties:
762099ef02SBenoit Parrot      "#address-cells":
772099ef02SBenoit Parrot        const: 1
782099ef02SBenoit Parrot
792099ef02SBenoit Parrot      "#size-cells":
802099ef02SBenoit Parrot        const: 0
812099ef02SBenoit Parrot
822099ef02SBenoit Parrot      port@0:
832099ef02SBenoit Parrot        type: object
842099ef02SBenoit Parrot        additionalProperties: false
852099ef02SBenoit Parrot
862099ef02SBenoit Parrot        properties:
872099ef02SBenoit Parrot          reg:
882099ef02SBenoit Parrot            const: 0
892099ef02SBenoit Parrot            description: CSI2 Port #0
902099ef02SBenoit Parrot
912099ef02SBenoit Parrot        patternProperties:
922099ef02SBenoit Parrot          endpoint:
932099ef02SBenoit Parrot            type: object
942099ef02SBenoit Parrot            additionalProperties: false
952099ef02SBenoit Parrot
962099ef02SBenoit Parrot            properties:
972099ef02SBenoit Parrot              clock-lanes:
982099ef02SBenoit Parrot                maxItems: 1
992099ef02SBenoit Parrot
1002099ef02SBenoit Parrot              data-lanes:
1012099ef02SBenoit Parrot                minItems: 1
1022099ef02SBenoit Parrot                maxItems: 4
1032099ef02SBenoit Parrot
1042099ef02SBenoit Parrot              remote-endpoint: true
1052099ef02SBenoit Parrot
1062099ef02SBenoit Parrot        required:
1072099ef02SBenoit Parrot          - reg
1082099ef02SBenoit Parrot
1092099ef02SBenoit Parrot      port@1:
1102099ef02SBenoit Parrot        type: object
1112099ef02SBenoit Parrot        additionalProperties: false
1122099ef02SBenoit Parrot
1132099ef02SBenoit Parrot        properties:
1142099ef02SBenoit Parrot          reg:
1152099ef02SBenoit Parrot            const: 1
1162099ef02SBenoit Parrot            description: CSI2 Port #1
1172099ef02SBenoit Parrot
1182099ef02SBenoit Parrot        patternProperties:
1192099ef02SBenoit Parrot          endpoint:
1202099ef02SBenoit Parrot            type: object
1212099ef02SBenoit Parrot            additionalProperties: false
1222099ef02SBenoit Parrot
1232099ef02SBenoit Parrot            properties:
1242099ef02SBenoit Parrot              clock-lanes:
1252099ef02SBenoit Parrot                maxItems: 1
1262099ef02SBenoit Parrot
1272099ef02SBenoit Parrot              data-lanes:
1282099ef02SBenoit Parrot                minItems: 1
1292099ef02SBenoit Parrot                maxItems: 4
1302099ef02SBenoit Parrot
1312099ef02SBenoit Parrot              remote-endpoint: true
1322099ef02SBenoit Parrot
1332099ef02SBenoit Parrot        required:
1342099ef02SBenoit Parrot          - reg
1352099ef02SBenoit Parrot
1362099ef02SBenoit Parrot    required:
1372099ef02SBenoit Parrot      - "#address-cells"
1382099ef02SBenoit Parrot      - "#size-cells"
1392099ef02SBenoit Parrot      - port@0
1402099ef02SBenoit Parrot
1412099ef02SBenoit Parrotrequired:
1422099ef02SBenoit Parrot  - compatible
1432099ef02SBenoit Parrot  - reg
1442099ef02SBenoit Parrot  - reg-names
1452099ef02SBenoit Parrot  - interrupts
1462099ef02SBenoit Parrot  - ti,camerrx-control
1472099ef02SBenoit Parrot
1482099ef02SBenoit ParrotadditionalProperties: false
1492099ef02SBenoit Parrot
1502099ef02SBenoit Parrotexamples:
1512099ef02SBenoit Parrot  - |
1522099ef02SBenoit Parrot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1532099ef02SBenoit Parrot
1542099ef02SBenoit Parrot    cal: cal@4845b000 {
1552099ef02SBenoit Parrot        compatible = "ti,dra72-cal";
1562099ef02SBenoit Parrot        reg = <0x4845B000 0x400>,
1572099ef02SBenoit Parrot              <0x4845B800 0x40>,
1582099ef02SBenoit Parrot              <0x4845B900 0x40>;
1592099ef02SBenoit Parrot        reg-names = "cal_top",
1602099ef02SBenoit Parrot                    "cal_rx_core0",
1612099ef02SBenoit Parrot                    "cal_rx_core1";
1622099ef02SBenoit Parrot        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
1632099ef02SBenoit Parrot        ti,camerrx-control = <&scm_conf 0xE94>;
1642099ef02SBenoit Parrot
1652099ef02SBenoit Parrot        ports {
1662099ef02SBenoit Parrot              #address-cells = <1>;
1672099ef02SBenoit Parrot              #size-cells = <0>;
1682099ef02SBenoit Parrot
1692099ef02SBenoit Parrot              csi2_0: port@0 {
1702099ef02SBenoit Parrot                    reg = <0>;
1712099ef02SBenoit Parrot                    csi2_phy0: endpoint {
1722099ef02SBenoit Parrot                           remote-endpoint = <&csi2_cam0>;
1732099ef02SBenoit Parrot                           clock-lanes = <0>;
1742099ef02SBenoit Parrot                           data-lanes = <1 2>;
1752099ef02SBenoit Parrot                    };
1762099ef02SBenoit Parrot              };
1772099ef02SBenoit Parrot        };
1782099ef02SBenoit Parrot    };
1792099ef02SBenoit Parrot
180*51a21e0eSRob Herring    i2c {
1812099ef02SBenoit Parrot        clock-frequency = <400000>;
1822099ef02SBenoit Parrot        #address-cells = <1>;
1832099ef02SBenoit Parrot        #size-cells = <0>;
1842099ef02SBenoit Parrot
1852099ef02SBenoit Parrot        camera-sensor@3c {
1862099ef02SBenoit Parrot               compatible = "ovti,ov5640";
1872099ef02SBenoit Parrot               reg = <0x3c>;
1882099ef02SBenoit Parrot
1892099ef02SBenoit Parrot               clocks = <&clk_ov5640_fixed>;
1902099ef02SBenoit Parrot               clock-names = "xclk";
1912099ef02SBenoit Parrot
1922099ef02SBenoit Parrot               port {
1932099ef02SBenoit Parrot                    csi2_cam0: endpoint {
1942099ef02SBenoit Parrot                            remote-endpoint = <&csi2_phy0>;
1952099ef02SBenoit Parrot                            clock-lanes = <0>;
1962099ef02SBenoit Parrot                            data-lanes = <1 2>;
1972099ef02SBenoit Parrot                    };
1982099ef02SBenoit Parrot               };
1992099ef02SBenoit Parrot        };
2002099ef02SBenoit Parrot    };
2012099ef02SBenoit Parrot
2022099ef02SBenoit Parrot...
203