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