xref: /linux/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
16c08bd7aSLad Prabhakar# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
26c08bd7aSLad Prabhakar# Copyright (C) 2022 Renesas Electronics Corp.
36c08bd7aSLad Prabhakar%YAML 1.2
46c08bd7aSLad Prabhakar---
56c08bd7aSLad Prabhakar$id: http://devicetree.org/schemas/media/renesas,rzg2l-csi2.yaml#
66c08bd7aSLad Prabhakar$schema: http://devicetree.org/meta-schemas/core.yaml#
76c08bd7aSLad Prabhakar
86c08bd7aSLad Prabhakartitle: Renesas RZ/G2L (and alike SoC's) MIPI CSI-2 receiver
96c08bd7aSLad Prabhakar
106c08bd7aSLad Prabhakarmaintainers:
116c08bd7aSLad Prabhakar  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
126c08bd7aSLad Prabhakar
136c08bd7aSLad Prabhakardescription:
146c08bd7aSLad Prabhakar  The CSI-2 receiver device provides MIPI CSI-2 capabilities for the Renesas RZ/G2L
156c08bd7aSLad Prabhakar  (and alike SoCs). MIPI CSI-2 is part of the CRU block which is used in conjunction
166c08bd7aSLad Prabhakar  with the Image Processing module, which provides the video capture capabilities.
176c08bd7aSLad Prabhakar
186c08bd7aSLad Prabhakarproperties:
196c08bd7aSLad Prabhakar  compatible:
206c08bd7aSLad Prabhakar    items:
216c08bd7aSLad Prabhakar      - enum:
22*77b023baSBiju Das          - renesas,r9a07g043-csi2       # RZ/G2UL
236c08bd7aSLad Prabhakar          - renesas,r9a07g044-csi2       # RZ/G2{L,LC}
246c08bd7aSLad Prabhakar          - renesas,r9a07g054-csi2       # RZ/V2L
256c08bd7aSLad Prabhakar      - const: renesas,rzg2l-csi2
266c08bd7aSLad Prabhakar
276c08bd7aSLad Prabhakar  reg:
286c08bd7aSLad Prabhakar    maxItems: 1
296c08bd7aSLad Prabhakar
306c08bd7aSLad Prabhakar  interrupts:
316c08bd7aSLad Prabhakar    maxItems: 1
326c08bd7aSLad Prabhakar
336c08bd7aSLad Prabhakar  clocks:
346c08bd7aSLad Prabhakar    items:
356c08bd7aSLad Prabhakar      - description: Internal clock for connecting CRU and MIPI
366c08bd7aSLad Prabhakar      - description: CRU Main clock
376c08bd7aSLad Prabhakar      - description: CRU Register access clock
386c08bd7aSLad Prabhakar
396c08bd7aSLad Prabhakar  clock-names:
406c08bd7aSLad Prabhakar    items:
416c08bd7aSLad Prabhakar      - const: system
426c08bd7aSLad Prabhakar      - const: video
436c08bd7aSLad Prabhakar      - const: apb
446c08bd7aSLad Prabhakar
456c08bd7aSLad Prabhakar  power-domains:
466c08bd7aSLad Prabhakar    maxItems: 1
476c08bd7aSLad Prabhakar
486c08bd7aSLad Prabhakar  resets:
496c08bd7aSLad Prabhakar    items:
506c08bd7aSLad Prabhakar      - description: CRU_PRESETN reset terminal
516c08bd7aSLad Prabhakar      - description: CRU_CMN_RSTB reset terminal
526c08bd7aSLad Prabhakar
536c08bd7aSLad Prabhakar  reset-names:
546c08bd7aSLad Prabhakar    items:
556c08bd7aSLad Prabhakar      - const: presetn
566c08bd7aSLad Prabhakar      - const: cmn-rstb
576c08bd7aSLad Prabhakar
586c08bd7aSLad Prabhakar  ports:
596c08bd7aSLad Prabhakar    $ref: /schemas/graph.yaml#/properties/ports
606c08bd7aSLad Prabhakar
616c08bd7aSLad Prabhakar    properties:
626c08bd7aSLad Prabhakar      port@0:
636c08bd7aSLad Prabhakar        $ref: /schemas/graph.yaml#/$defs/port-base
646c08bd7aSLad Prabhakar        unevaluatedProperties: false
656c08bd7aSLad Prabhakar        description:
666c08bd7aSLad Prabhakar          Input port node, single endpoint describing the CSI-2 transmitter.
676c08bd7aSLad Prabhakar
686c08bd7aSLad Prabhakar        properties:
696c08bd7aSLad Prabhakar          endpoint:
706c08bd7aSLad Prabhakar            $ref: video-interfaces.yaml#
716c08bd7aSLad Prabhakar            unevaluatedProperties: false
726c08bd7aSLad Prabhakar
736c08bd7aSLad Prabhakar            properties:
746c08bd7aSLad Prabhakar              data-lanes:
756c08bd7aSLad Prabhakar                minItems: 1
766c08bd7aSLad Prabhakar                maxItems: 4
776c08bd7aSLad Prabhakar                items:
786c08bd7aSLad Prabhakar                  maximum: 4
796c08bd7aSLad Prabhakar
806c08bd7aSLad Prabhakar            required:
816c08bd7aSLad Prabhakar              - clock-lanes
826c08bd7aSLad Prabhakar              - data-lanes
836c08bd7aSLad Prabhakar
846c08bd7aSLad Prabhakar      port@1:
856c08bd7aSLad Prabhakar        $ref: /schemas/graph.yaml#/properties/port
866c08bd7aSLad Prabhakar        description:
876c08bd7aSLad Prabhakar          Output port node, Image Processing block connected to the CSI-2 receiver.
886c08bd7aSLad Prabhakar
896c08bd7aSLad Prabhakar    required:
906c08bd7aSLad Prabhakar      - port@0
916c08bd7aSLad Prabhakar      - port@1
926c08bd7aSLad Prabhakar
936c08bd7aSLad Prabhakarrequired:
946c08bd7aSLad Prabhakar  - compatible
956c08bd7aSLad Prabhakar  - reg
966c08bd7aSLad Prabhakar  - interrupts
976c08bd7aSLad Prabhakar  - clocks
986c08bd7aSLad Prabhakar  - clock-names
996c08bd7aSLad Prabhakar  - power-domains
1006c08bd7aSLad Prabhakar  - resets
1016c08bd7aSLad Prabhakar  - reset-names
1026c08bd7aSLad Prabhakar  - ports
1036c08bd7aSLad Prabhakar
1046c08bd7aSLad PrabhakaradditionalProperties: false
1056c08bd7aSLad Prabhakar
1066c08bd7aSLad Prabhakarexamples:
1076c08bd7aSLad Prabhakar  - |
1086c08bd7aSLad Prabhakar    #include <dt-bindings/clock/r9a07g044-cpg.h>
1096c08bd7aSLad Prabhakar    #include <dt-bindings/interrupt-controller/arm-gic.h>
1106c08bd7aSLad Prabhakar
1116c08bd7aSLad Prabhakar    csi: csi@10830400 {
1126c08bd7aSLad Prabhakar        compatible = "renesas,r9a07g044-csi2", "renesas,rzg2l-csi2";
1136c08bd7aSLad Prabhakar        reg = <0x10830400 0xfc00>;
1146c08bd7aSLad Prabhakar        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
1156c08bd7aSLad Prabhakar        clocks = <&cpg CPG_MOD R9A07G044_CRU_SYSCLK>,
1166c08bd7aSLad Prabhakar                 <&cpg CPG_MOD R9A07G044_CRU_VCLK>,
1176c08bd7aSLad Prabhakar                 <&cpg CPG_MOD R9A07G044_CRU_PCLK>;
1186c08bd7aSLad Prabhakar        clock-names = "system", "video", "apb";
1196c08bd7aSLad Prabhakar        power-domains = <&cpg>;
1206c08bd7aSLad Prabhakar        resets = <&cpg R9A07G044_CRU_PRESETN>,
1216c08bd7aSLad Prabhakar                 <&cpg R9A07G044_CRU_CMN_RSTB>;
1226c08bd7aSLad Prabhakar        reset-names = "presetn", "cmn-rstb";
1236c08bd7aSLad Prabhakar
1246c08bd7aSLad Prabhakar        ports {
1256c08bd7aSLad Prabhakar            #address-cells = <1>;
1266c08bd7aSLad Prabhakar            #size-cells = <0>;
1276c08bd7aSLad Prabhakar
1286c08bd7aSLad Prabhakar            port@0 {
1296c08bd7aSLad Prabhakar                reg = <0>;
1306c08bd7aSLad Prabhakar
1316c08bd7aSLad Prabhakar                csi2_in: endpoint {
1326c08bd7aSLad Prabhakar                    clock-lanes = <0>;
1336c08bd7aSLad Prabhakar                    data-lanes = <1 2>;
1346c08bd7aSLad Prabhakar                    remote-endpoint = <&ov5645_ep>;
1356c08bd7aSLad Prabhakar                };
1366c08bd7aSLad Prabhakar            };
1376c08bd7aSLad Prabhakar
1386c08bd7aSLad Prabhakar            port@1 {
1396c08bd7aSLad Prabhakar                #address-cells = <1>;
1406c08bd7aSLad Prabhakar                #size-cells = <0>;
1416c08bd7aSLad Prabhakar
1426c08bd7aSLad Prabhakar                reg = <1>;
1436c08bd7aSLad Prabhakar
1446c08bd7aSLad Prabhakar                csi2cru: endpoint@0 {
1456c08bd7aSLad Prabhakar                    reg = <0>;
1466c08bd7aSLad Prabhakar                    remote-endpoint = <&crucsi2>;
1476c08bd7aSLad Prabhakar                };
1486c08bd7aSLad Prabhakar            };
1496c08bd7aSLad Prabhakar        };
1506c08bd7aSLad Prabhakar    };
151