1*f0fb3328SMarek Vasut# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*f0fb3328SMarek Vasut%YAML 1.2
3*f0fb3328SMarek Vasut---
4*f0fb3328SMarek Vasut$id: http://devicetree.org/schemas/media/i2c/isil,isl79987.yaml#
5*f0fb3328SMarek Vasut$schema: http://devicetree.org/meta-schemas/core.yaml#
6*f0fb3328SMarek Vasut
7*f0fb3328SMarek Vasuttitle: Intersil ISL79987 Analog to MIPI CSI-2 decoder
8*f0fb3328SMarek Vasut
9*f0fb3328SMarek Vasutmaintainers:
10*f0fb3328SMarek Vasut  - Michael Tretter <m.tretter@pengutronix.de>
11*f0fb3328SMarek Vasut  - Marek Vasut <marex@denx.de>
12*f0fb3328SMarek Vasut
13*f0fb3328SMarek Vasutdescription:
14*f0fb3328SMarek Vasut  The Intersil ISL79987 is an analog to MIPI CSI-2 decoder which is capable of
15*f0fb3328SMarek Vasut  receiving up to four analog stream and multiplexing them into up to four MIPI
16*f0fb3328SMarek Vasut  CSI-2 virtual channels, using one MIPI clock lane and 1/2 data lanes.
17*f0fb3328SMarek Vasut
18*f0fb3328SMarek Vasutproperties:
19*f0fb3328SMarek Vasut  compatible:
20*f0fb3328SMarek Vasut    enum:
21*f0fb3328SMarek Vasut      - isil,isl79987
22*f0fb3328SMarek Vasut
23*f0fb3328SMarek Vasut  reg:
24*f0fb3328SMarek Vasut    maxItems: 1
25*f0fb3328SMarek Vasut
26*f0fb3328SMarek Vasut  reset-gpios:
27*f0fb3328SMarek Vasut    maxItems: 1
28*f0fb3328SMarek Vasut    description:
29*f0fb3328SMarek Vasut      A GPIO spec for the RSTB pin (active high)
30*f0fb3328SMarek Vasut
31*f0fb3328SMarek Vasut  powerdown-gpios:
32*f0fb3328SMarek Vasut    maxItems: 1
33*f0fb3328SMarek Vasut    description:
34*f0fb3328SMarek Vasut      A GPIO spec for the Power Down pin (active high)
35*f0fb3328SMarek Vasut
36*f0fb3328SMarek Vasut  ports:
37*f0fb3328SMarek Vasut    $ref: /schemas/graph.yaml#/properties/ports
38*f0fb3328SMarek Vasut    properties:
39*f0fb3328SMarek Vasut      port@0:
40*f0fb3328SMarek Vasut        $ref: /schemas/graph.yaml#/$defs/port-base
41*f0fb3328SMarek Vasut        unevaluatedProperties: false
42*f0fb3328SMarek Vasut        description: Output port
43*f0fb3328SMarek Vasut
44*f0fb3328SMarek Vasut        properties:
45*f0fb3328SMarek Vasut          endpoint:
46*f0fb3328SMarek Vasut            $ref: /schemas/media/video-interfaces.yaml#
47*f0fb3328SMarek Vasut            unevaluatedProperties: false
48*f0fb3328SMarek Vasut
49*f0fb3328SMarek Vasut            properties:
50*f0fb3328SMarek Vasut              data-lanes:
51*f0fb3328SMarek Vasut                minItems: 1
52*f0fb3328SMarek Vasut                maxItems: 2
53*f0fb3328SMarek Vasut
54*f0fb3328SMarek Vasut            required:
55*f0fb3328SMarek Vasut              - data-lanes
56*f0fb3328SMarek Vasut
57*f0fb3328SMarek Vasut    patternProperties:
58*f0fb3328SMarek Vasut      "^port@[1-4]$":
59*f0fb3328SMarek Vasut        $ref: /schemas/graph.yaml#/properties/port
60*f0fb3328SMarek Vasut        description: Input ports
61*f0fb3328SMarek Vasut
62*f0fb3328SMarek Vasut    required:
63*f0fb3328SMarek Vasut      - port@0
64*f0fb3328SMarek Vasut
65*f0fb3328SMarek VasutadditionalProperties: false
66*f0fb3328SMarek Vasut
67*f0fb3328SMarek Vasutrequired:
68*f0fb3328SMarek Vasut  - compatible
69*f0fb3328SMarek Vasut  - reg
70*f0fb3328SMarek Vasut  - ports
71*f0fb3328SMarek Vasut
72*f0fb3328SMarek Vasutexamples:
73*f0fb3328SMarek Vasut  - |
74*f0fb3328SMarek Vasut    #include <dt-bindings/gpio/gpio.h>
75*f0fb3328SMarek Vasut
76*f0fb3328SMarek Vasut    i2c {
77*f0fb3328SMarek Vasut      #address-cells = <1>;
78*f0fb3328SMarek Vasut      #size-cells = <0>;
79*f0fb3328SMarek Vasut
80*f0fb3328SMarek Vasut      isl7998x_mipi@44 {
81*f0fb3328SMarek Vasut        compatible = "isil,isl79987";
82*f0fb3328SMarek Vasut        reg = <0x44>;
83*f0fb3328SMarek Vasut        powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
84*f0fb3328SMarek Vasut        reset-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
85*f0fb3328SMarek Vasut
86*f0fb3328SMarek Vasut        ports {
87*f0fb3328SMarek Vasut          #address-cells = <1>;
88*f0fb3328SMarek Vasut          #size-cells = <0>;
89*f0fb3328SMarek Vasut
90*f0fb3328SMarek Vasut          port@0 {
91*f0fb3328SMarek Vasut            reg = <0>;
92*f0fb3328SMarek Vasut            isl79987_out: endpoint {
93*f0fb3328SMarek Vasut              remote-endpoint = <&mipi_csi2_in>;
94*f0fb3328SMarek Vasut              data-lanes = <1 2>;
95*f0fb3328SMarek Vasut            };
96*f0fb3328SMarek Vasut          };
97*f0fb3328SMarek Vasut
98*f0fb3328SMarek Vasut          port@1 {
99*f0fb3328SMarek Vasut            reg = <1>;
100*f0fb3328SMarek Vasut            endpoint {
101*f0fb3328SMarek Vasut              remote-endpoint = <&camera_0>;
102*f0fb3328SMarek Vasut            };
103*f0fb3328SMarek Vasut          };
104*f0fb3328SMarek Vasut
105*f0fb3328SMarek Vasut          port@2 {
106*f0fb3328SMarek Vasut            reg = <2>;
107*f0fb3328SMarek Vasut            endpoint {
108*f0fb3328SMarek Vasut              remote-endpoint = <&camera_1>;
109*f0fb3328SMarek Vasut            };
110*f0fb3328SMarek Vasut          };
111*f0fb3328SMarek Vasut        };
112*f0fb3328SMarek Vasut      };
113*f0fb3328SMarek Vasut    };
114