Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 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 | |
| 8 | title: IMI D&D RDACM20 and RDACM21 Automotive Camera Platforms |
| 9 | |
| 10 | maintainers: |
| 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 | |
| 16 | description: -| |
| 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 | |
| 62 | properties: |
| 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 | |
| 93 | required: |
| 94 | - compatible |
| 95 | - reg |
| 96 | - port |
| 97 | |
| 98 | additionalProperties: false |
| 99 | |
| 100 | examples: |
| 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 | }; |