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