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