xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2*4882a593Smuzhiyun# Copyright (C) 2019 Renesas Electronics Corp.
3*4882a593Smuzhiyun%YAML 1.2
4*4882a593Smuzhiyun---
5*4882a593Smuzhiyun$id: http://devicetree.org/schemas/media/i2c/imi,rdacm2x-gmsl.yaml#
6*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
7*4882a593Smuzhiyun
8*4882a593Smuzhiyuntitle: IMI D&D RDACM20 and RDACM21 Automotive Camera Platforms
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunmaintainers:
11*4882a593Smuzhiyun  - Jacopo Mondi <jacopo+renesas@jmondi.org>
12*4882a593Smuzhiyun  - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
13*4882a593Smuzhiyun  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
14*4882a593Smuzhiyun  - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
15*4882a593Smuzhiyun
16*4882a593Smuzhiyundescription: -|
17*4882a593Smuzhiyun  The IMI D&D RDACM20 and RDACM21 are GMSL-compatible camera designed for
18*4882a593Smuzhiyun  automotive applications.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun  The RDACM20 camera module encloses a Maxim Integrated MAX9271 GMSL serializer,
21*4882a593Smuzhiyun  coupled with an OV10635 image sensor and an embedded MCU. Both the MCU and
22*4882a593Smuzhiyun  the image sensor are connected to the serializer local I2C bus and are
23*4882a593Smuzhiyun  accessible by the host SoC by direct addressing.
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun  The RDACM21 camera module encloses the same serializer, coupled with an
26*4882a593Smuzhiyun  OV10640 image sensor and an OV490 ISP. Only the OV490 ISP is interfaced to
27*4882a593Smuzhiyun  the serializer local I2C bus while the image sensor is not accessible from
28*4882a593Smuzhiyun  the host SoC.
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  They both connect to a remote GMSL endpoint through a coaxial cable.
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun                                                   IMI RDACM20
33*4882a593Smuzhiyun  +---------------+                        +--------------------------------+
34*4882a593Smuzhiyun  |      GMSL     |   <- Video Stream      |       <- Video--------\        |
35*4882a593Smuzhiyun  |               |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV10635 |
36*4882a593Smuzhiyun  | de-serializer |   <- I2C messages ->   |                   \<-->MCU     |
37*4882a593Smuzhiyun  +---------------+                        +--------------------------------+
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun                                                   IMI RDACM21
40*4882a593Smuzhiyun  +---------------+                        +--------------------------------+
41*4882a593Smuzhiyun  |      GMSL     |   <- Video Stream      |       <- Video--------\        |
42*4882a593Smuzhiyun  |               |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV490   |
43*4882a593Smuzhiyun  |               |   <- I2C messages ->   |                          |     |
44*4882a593Smuzhiyun  | de-serializer |                        |          OV10640 <-------|     |
45*4882a593Smuzhiyun  +---------------+                        +--------------------------------+
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun  Both camera modules serialize video data generated by the embedded camera
48*4882a593Smuzhiyun  sensor on the GMSL serial channel to a remote GMSL de-serializer. They also
49*4882a593Smuzhiyun  receive and transmit I2C messages encapsulated and transmitted on the GMSL
50*4882a593Smuzhiyun  bidirectional control channel.
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun  All I2C traffic received on the GMSL link not directed to the serializer is
53*4882a593Smuzhiyun  propagated on the local I2C bus to the remote device there connected. All the
54*4882a593Smuzhiyun  I2C traffic generated on the local I2C bus not directed to the serializer is
55*4882a593Smuzhiyun  propagated to the remote de-serializer encapsulated in the GMSL control
56*4882a593Smuzhiyun  channel.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun  The RDACM20 and RDACM21 DT node should be a direct child of the GMSL
59*4882a593Smuzhiyun  deserializer's I2C bus corresponding to the GMSL link that the camera is
60*4882a593Smuzhiyun  attached to.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunproperties:
63*4882a593Smuzhiyun  '#address-cells':
64*4882a593Smuzhiyun    const: 1
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun  '#size-cells':
67*4882a593Smuzhiyun    const: 0
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun  compatible:
70*4882a593Smuzhiyun    enum:
71*4882a593Smuzhiyun      - imi,rdacm20
72*4882a593Smuzhiyun      - imi,rdacm21
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun  reg:
75*4882a593Smuzhiyun    description: -|
76*4882a593Smuzhiyun      I2C device addresses, the first to be assigned to the serializer, the
77*4882a593Smuzhiyun      following ones to be assigned to the remote devices.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun      For RDACM20 the second entry of the property is assigned to the
80*4882a593Smuzhiyun      OV10635 image sensor and the optional third one to the embedded MCU.
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun      For RDACM21 the second entry is assigned to the OV490 ISP and the optional
83*4882a593Smuzhiyun      third one ignored.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun    minItems: 2
86*4882a593Smuzhiyun    maxItems: 3
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun  port:
89*4882a593Smuzhiyun    type: object
90*4882a593Smuzhiyun    additionalProperties: false
91*4882a593Smuzhiyun    description: -|
92*4882a593Smuzhiyun      Connection to the remote GMSL endpoint are modelled using the OF graph
93*4882a593Smuzhiyun      bindings in accordance with the video interface bindings defined in
94*4882a593Smuzhiyun      Documentation/devicetree/bindings/media/video-interfaces.txt.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun      The device node contains a single "port" child node with a single
97*4882a593Smuzhiyun      "endpoint" sub-device.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun    properties:
100*4882a593Smuzhiyun      endpoint:
101*4882a593Smuzhiyun        type: object
102*4882a593Smuzhiyun        additionalProperties: false
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun        properties:
105*4882a593Smuzhiyun          remote-endpoint:
106*4882a593Smuzhiyun            description: -|
107*4882a593Smuzhiyun              phandle to the remote GMSL endpoint sub-node in the remote node
108*4882a593Smuzhiyun              port.
109*4882a593Smuzhiyun            maxItems: 1
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun        required:
112*4882a593Smuzhiyun          - remote-endpoint
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun    required:
115*4882a593Smuzhiyun      - endpoint
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunrequired:
118*4882a593Smuzhiyun  - compatible
119*4882a593Smuzhiyun  - reg
120*4882a593Smuzhiyun  - port
121*4882a593Smuzhiyun
122*4882a593SmuzhiyunadditionalProperties: false
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunexamples:
125*4882a593Smuzhiyun  - |
126*4882a593Smuzhiyun    i2c@e66d8000 {
127*4882a593Smuzhiyun      #address-cells = <1>;
128*4882a593Smuzhiyun      #size-cells = <0>;
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun      reg = <0 0xe66d8000>;
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun      camera@31 {
133*4882a593Smuzhiyun        compatible = "imi,rdacm20";
134*4882a593Smuzhiyun        reg = <0x31>, <0x41>, <0x51>;
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun        port {
137*4882a593Smuzhiyun          rdacm20_out0: endpoint {
138*4882a593Smuzhiyun            remote-endpoint = <&max9286_in0>;
139*4882a593Smuzhiyun          };
140*4882a593Smuzhiyun        };
141*4882a593Smuzhiyun      };
142*4882a593Smuzhiyun    };
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun  - |
145*4882a593Smuzhiyun    i2c@e66d8000 {
146*4882a593Smuzhiyun      #address-cells = <1>;
147*4882a593Smuzhiyun      #size-cells = <0>;
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun      reg = <0 0xe66d8000>;
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun      camera@31 {
152*4882a593Smuzhiyun        compatible = "imi,rdacm21";
153*4882a593Smuzhiyun        reg = <0x31>, <0x41>;
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun        port {
156*4882a593Smuzhiyun          rdacm21_out0: endpoint {
157*4882a593Smuzhiyun            remote-endpoint = <&max9286_in0>;
158*4882a593Smuzhiyun          };
159*4882a593Smuzhiyun        };
160*4882a593Smuzhiyun      };
161*4882a593Smuzhiyun    };
162