118f12901SLaurent Pinchart# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 218f12901SLaurent Pinchart# Copyright (C) 2019 Renesas Electronics Corp. 318f12901SLaurent Pinchart%YAML 1.2 418f12901SLaurent Pinchart--- 518f12901SLaurent Pinchart$id: http://devicetree.org/schemas/media/i2c/maxim,max9286.yaml# 618f12901SLaurent Pinchart$schema: http://devicetree.org/meta-schemas/core.yaml# 718f12901SLaurent Pinchart 818f12901SLaurent Pincharttitle: Maxim Integrated Quad GMSL Deserializer 918f12901SLaurent Pinchart 1018f12901SLaurent Pinchartmaintainers: 1118f12901SLaurent Pinchart - Jacopo Mondi <jacopo+renesas@jmondi.org> 1218f12901SLaurent Pinchart - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> 1318f12901SLaurent Pinchart - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 1418f12901SLaurent Pinchart - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> 1518f12901SLaurent Pinchart 1618f12901SLaurent Pinchartdescription: | 1718f12901SLaurent Pinchart The MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia 1818f12901SLaurent Pinchart Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data 1918f12901SLaurent Pinchart lanes. 2018f12901SLaurent Pinchart 2118f12901SLaurent Pinchart In addition to video data, the GMSL links carry a bidirectional control 2218f12901SLaurent Pinchart channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic 2318f12901SLaurent Pinchart not addressed to itself to the other side of the links, where a GMSL 2418f12901SLaurent Pinchart serializer will output it on a local I2C bus. In the other direction all I2C 2518f12901SLaurent Pinchart traffic received over GMSL by the MAX9286 is output on the local I2C bus. 2618f12901SLaurent Pinchart 2718f12901SLaurent Pinchartproperties: 2818f12901SLaurent Pinchart '#address-cells': 2918f12901SLaurent Pinchart const: 1 3018f12901SLaurent Pinchart 3118f12901SLaurent Pinchart '#size-cells': 3218f12901SLaurent Pinchart const: 0 3318f12901SLaurent Pinchart 3418f12901SLaurent Pinchart compatible: 3518f12901SLaurent Pinchart const: maxim,max9286 3618f12901SLaurent Pinchart 3718f12901SLaurent Pinchart reg: 3818f12901SLaurent Pinchart description: I2C device address 3918f12901SLaurent Pinchart maxItems: 1 4018f12901SLaurent Pinchart 4118f12901SLaurent Pinchart poc-supply: 4248dd004eSLaurent Pinchart description: Regulator providing Power over Coax to all the ports 4318f12901SLaurent Pinchart 4418f12901SLaurent Pinchart enable-gpios: 4518f12901SLaurent Pinchart description: GPIO connected to the \#PWDN pin with inverted polarity 4618f12901SLaurent Pinchart maxItems: 1 4718f12901SLaurent Pinchart 4818f12901SLaurent Pinchart gpio-controller: true 4918f12901SLaurent Pinchart 5018f12901SLaurent Pinchart '#gpio-cells': 5118f12901SLaurent Pinchart const: 2 5218f12901SLaurent Pinchart 53e3435af9SLaurent Pinchart maxim,bus-width: 54e3435af9SLaurent Pinchart $ref: /schemas/types.yaml#/definitions/uint32 55e3435af9SLaurent Pinchart enum: [ 24, 27, 32 ] 56e3435af9SLaurent Pinchart description: | 57e3435af9SLaurent Pinchart The GMSL serial data bus width. This setting is normally controlled by 58e3435af9SLaurent Pinchart the BWS pin, but may be overridden with this property. The value must 59e3435af9SLaurent Pinchart match the configuration of the remote serializers. 60e3435af9SLaurent Pinchart 61622f6daeSLaurent Pinchart maxim,i2c-remote-bus-hz: 62622f6daeSLaurent Pinchart enum: [ 8470, 28300, 84700, 105000, 173000, 339000, 533000, 837000 ] 63622f6daeSLaurent Pinchart default: 105000 64622f6daeSLaurent Pinchart description: | 65622f6daeSLaurent Pinchart The I2C clock frequency for the remote I2C buses. The value must match 66622f6daeSLaurent Pinchart the configuration of the remote serializers. 67622f6daeSLaurent Pinchart 68c00b7249SJacopo Mondi maxim,reverse-channel-microvolt: 69c00b7249SJacopo Mondi minimum: 30000 70c00b7249SJacopo Mondi maximum: 200000 71c00b7249SJacopo Mondi default: 170000 72c00b7249SJacopo Mondi description: | 73c00b7249SJacopo Mondi Initial amplitude of the reverse control channel, in micro volts. 74c00b7249SJacopo Mondi 75c00b7249SJacopo Mondi The initial amplitude shall be adjusted to a value compatible with the 76c00b7249SJacopo Mondi configuration of the connected remote serializer. 77c00b7249SJacopo Mondi 78c00b7249SJacopo Mondi Some camera modules (for example RDACM20) include an on-board MCU that 79c00b7249SJacopo Mondi pre-programs the embedded serializer with power supply noise immunity 80c00b7249SJacopo Mondi (high-threshold) enabled. A typical value of the deserializer's reverse 81c00b7249SJacopo Mondi channel amplitude to communicate with pre-programmed serializers is 82c00b7249SJacopo Mondi 170000 micro volts. 83c00b7249SJacopo Mondi 84c00b7249SJacopo Mondi A typical value for the reverse channel amplitude to communicate with 85c00b7249SJacopo Mondi a remote serializer whose high-threshold noise immunity is not enabled 86c00b7249SJacopo Mondi is 100000 micro volts 87c00b7249SJacopo Mondi 8848a0c73fSJacopo Mondi maxim,gpio-poc: 89ab190665SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-array 9048a0c73fSJacopo Mondi minItems: 2 9148a0c73fSJacopo Mondi maxItems: 2 9248a0c73fSJacopo Mondi description: | 9348a0c73fSJacopo Mondi Index of the MAX9286 gpio output line (0 or 1) that controls Power over 9448a0c73fSJacopo Mondi Coax to the cameras and its associated polarity flag. 9548a0c73fSJacopo Mondi 9648a0c73fSJacopo Mondi The property accepts an array of two unsigned integers, the first being 9748a0c73fSJacopo Mondi the gpio line index (0 or 1) and the second being the gpio line polarity 9848a0c73fSJacopo Mondi flag (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW) as defined in 9948a0c73fSJacopo Mondi <include/dt-bindings/gpio/gpio.h>. 10048a0c73fSJacopo Mondi 10148a0c73fSJacopo Mondi When the remote cameras power is controlled by one of the MAX9286 gpio 10248a0c73fSJacopo Mondi lines, this property has to be used to specify which line among the two 10348a0c73fSJacopo Mondi available ones controls the remote camera power enablement. 10448a0c73fSJacopo Mondi 10548a0c73fSJacopo Mondi When this property is used it is not possible to register a gpio 10648a0c73fSJacopo Mondi controller as the gpio lines are controlled directly by the MAX9286 and 10748a0c73fSJacopo Mondi not available for consumers, nor the 'poc-supply' property should be 10848a0c73fSJacopo Mondi specified. 10948a0c73fSJacopo Mondi 11018f12901SLaurent Pinchart ports: 111066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/ports 11218f12901SLaurent Pinchart 11318f12901SLaurent Pinchart properties: 114066a94e2SRob Herring port@0: 115066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/port 116066a94e2SRob Herring description: GMSL Input 0 11718f12901SLaurent Pinchart 118066a94e2SRob Herring port@1: 119066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/port 120066a94e2SRob Herring description: GMSL Input 1 12118f12901SLaurent Pinchart 122066a94e2SRob Herring port@2: 123066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/port 124066a94e2SRob Herring description: GMSL Input 2 12518f12901SLaurent Pinchart 126066a94e2SRob Herring port@3: 127066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/port 128066a94e2SRob Herring description: GMSL Input 3 12918f12901SLaurent Pinchart 13018f12901SLaurent Pinchart port@4: 131066a94e2SRob Herring $ref: /schemas/graph.yaml#/$defs/port-base 132066a94e2SRob Herring unevaluatedProperties: false 133066a94e2SRob Herring description: CSI-2 Output 13418f12901SLaurent Pinchart 135066a94e2SRob Herring properties: 13618f12901SLaurent Pinchart endpoint: 137066a94e2SRob Herring $ref: /schemas/media/video-interfaces.yaml# 138066a94e2SRob Herring unevaluatedProperties: false 13918f12901SLaurent Pinchart 14018f12901SLaurent Pinchart properties: 141066a94e2SRob Herring data-lanes: true 14218f12901SLaurent Pinchart 14318f12901SLaurent Pinchart required: 14418f12901SLaurent Pinchart - data-lanes 14518f12901SLaurent Pinchart 14618f12901SLaurent Pinchart required: 14718f12901SLaurent Pinchart - port@4 14818f12901SLaurent Pinchart 14918f12901SLaurent Pinchart i2c-mux: 15018f12901SLaurent Pinchart type: object 151f22107b9SRob Herring $ref: /schemas/i2c/i2c-mux.yaml# 152f22107b9SRob Herring unevaluatedProperties: false 15318f12901SLaurent Pinchart description: | 154f22107b9SRob Herring Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch. 15518f12901SLaurent Pinchart 15618f12901SLaurent Pinchart patternProperties: 15718f12901SLaurent Pinchart "^i2c@[0-3]$": 15818f12901SLaurent Pinchart type: object 159e62fc182SRob Herring additionalProperties: false 16018f12901SLaurent Pinchart description: | 16118f12901SLaurent Pinchart Child node of the i2c bus multiplexer which represents a GMSL link. 16218f12901SLaurent Pinchart Each serializer device on the GMSL link remote end is represented with 16318f12901SLaurent Pinchart an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL 16418f12901SLaurent Pinchart channels. 16518f12901SLaurent Pinchart 16618f12901SLaurent Pinchart properties: 16718f12901SLaurent Pinchart reg: 16818f12901SLaurent Pinchart description: The index of the GMSL channel. 16918f12901SLaurent Pinchart maxItems: 1 17018f12901SLaurent Pinchart 171e62fc182SRob Herring '#address-cells': 172e62fc182SRob Herring const: 1 173e62fc182SRob Herring 174e62fc182SRob Herring '#size-cells': 175e62fc182SRob Herring const: 0 176e62fc182SRob Herring 17718f12901SLaurent Pinchart patternProperties: 17818f12901SLaurent Pinchart "^camera@[a-f0-9]+$": 17918f12901SLaurent Pinchart type: object 18018f12901SLaurent Pinchart description: | 18118f12901SLaurent Pinchart The remote camera device, composed by a GMSL serializer and a 18218f12901SLaurent Pinchart connected video source. 18318f12901SLaurent Pinchart 18418f12901SLaurent Pinchart properties: 18518f12901SLaurent Pinchart compatible: 18618f12901SLaurent Pinchart description: The remote device compatible string. 18718f12901SLaurent Pinchart 18818f12901SLaurent Pinchart reg: 18918f12901SLaurent Pinchart minItems: 2 19018f12901SLaurent Pinchart maxItems: 3 19118f12901SLaurent Pinchart description: | 19218f12901SLaurent Pinchart The I2C addresses to be assigned to the remote devices through 19318f12901SLaurent Pinchart address reprogramming. The number of entries depends on the 19418f12901SLaurent Pinchart requirements of the currently connected remote device. 19518f12901SLaurent Pinchart 19618f12901SLaurent Pinchart port: 197066a94e2SRob Herring $ref: /schemas/graph.yaml#/properties/port 198066a94e2SRob Herring description: Connection to the MAX9286 sink. 19918f12901SLaurent Pinchart 20018f12901SLaurent Pinchart required: 20118f12901SLaurent Pinchart - compatible 20218f12901SLaurent Pinchart - reg 20318f12901SLaurent Pinchart - port 20418f12901SLaurent Pinchart 20518f12901SLaurent Pinchart additionalProperties: false 20618f12901SLaurent Pinchart 20748dd004eSLaurent PinchartpatternProperties: 20848dd004eSLaurent Pinchart "^port[0-3]-poc-supply$": 20948dd004eSLaurent Pinchart description: Regulator providing Power over Coax for a particular port 21048dd004eSLaurent Pinchart 21118f12901SLaurent Pinchartrequired: 21218f12901SLaurent Pinchart - compatible 21318f12901SLaurent Pinchart - reg 21418f12901SLaurent Pinchart - ports 21518f12901SLaurent Pinchart - i2c-mux 21648a0c73fSJacopo Mondi 21748dd004eSLaurent PinchartallOf: 21848dd004eSLaurent Pinchart # Only one way of specifying power supplies is allowed: 'maxim,gpio-poc', 21948dd004eSLaurent Pinchart # 'poc-supply' or per-port poc-supply. Additionally, if 'maxim,gpio-poc' is 22048dd004eSLaurent Pinchart # present, then 'gpio-controller' isn't allowed. 22148dd004eSLaurent Pinchart - if: 22248a0c73fSJacopo Mondi required: 22348a0c73fSJacopo Mondi - maxim,gpio-poc 22448a0c73fSJacopo Mondi then: 22548a0c73fSJacopo Mondi properties: 22648a0c73fSJacopo Mondi poc-supply: false 22748a0c73fSJacopo Mondi gpio-controller: false 22848dd004eSLaurent Pinchart patternProperties: 22948dd004eSLaurent Pinchart "^port[0-3]-poc-supply$": false 23048dd004eSLaurent Pinchart 23148dd004eSLaurent Pinchart - if: 23248dd004eSLaurent Pinchart required: 23348dd004eSLaurent Pinchart - poc-supply 23448dd004eSLaurent Pinchart then: 23548dd004eSLaurent Pinchart patternProperties: 23648dd004eSLaurent Pinchart "^port[0-3]-poc-supply$": false 23718f12901SLaurent Pinchart 23818f12901SLaurent PinchartadditionalProperties: false 23918f12901SLaurent Pinchart 24018f12901SLaurent Pinchartexamples: 24118f12901SLaurent Pinchart - | 24218f12901SLaurent Pinchart #include <dt-bindings/gpio/gpio.h> 24318f12901SLaurent Pinchart 24418f12901SLaurent Pinchart i2c@e66d8000 { 24518f12901SLaurent Pinchart #address-cells = <1>; 24618f12901SLaurent Pinchart #size-cells = <0>; 24718f12901SLaurent Pinchart 24818f12901SLaurent Pinchart reg = <0 0xe66d8000>; 24918f12901SLaurent Pinchart 25018f12901SLaurent Pinchart gmsl-deserializer@2c { 25118f12901SLaurent Pinchart compatible = "maxim,max9286"; 25218f12901SLaurent Pinchart reg = <0x2c>; 25318f12901SLaurent Pinchart poc-supply = <&camera_poc_12v>; 25418f12901SLaurent Pinchart enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; 25518f12901SLaurent Pinchart 25618f12901SLaurent Pinchart gpio-controller; 25718f12901SLaurent Pinchart #gpio-cells = <2>; 25818f12901SLaurent Pinchart 259622f6daeSLaurent Pinchart maxim,i2c-remote-bus-hz = <339000>; 260c00b7249SJacopo Mondi maxim,reverse-channel-microvolt = <170000>; 261c00b7249SJacopo Mondi 26218f12901SLaurent Pinchart ports { 26318f12901SLaurent Pinchart #address-cells = <1>; 26418f12901SLaurent Pinchart #size-cells = <0>; 26518f12901SLaurent Pinchart 26618f12901SLaurent Pinchart port@0 { 26718f12901SLaurent Pinchart reg = <0>; 26818f12901SLaurent Pinchart 26918f12901SLaurent Pinchart max9286_in0: endpoint { 27018f12901SLaurent Pinchart remote-endpoint = <&rdacm20_out0>; 27118f12901SLaurent Pinchart }; 27218f12901SLaurent Pinchart }; 27318f12901SLaurent Pinchart 27418f12901SLaurent Pinchart port@1 { 27518f12901SLaurent Pinchart reg = <1>; 27618f12901SLaurent Pinchart 27718f12901SLaurent Pinchart max9286_in1: endpoint { 27818f12901SLaurent Pinchart remote-endpoint = <&rdacm20_out1>; 27918f12901SLaurent Pinchart }; 28018f12901SLaurent Pinchart }; 28118f12901SLaurent Pinchart 28218f12901SLaurent Pinchart port@2 { 28318f12901SLaurent Pinchart reg = <2>; 28418f12901SLaurent Pinchart 28518f12901SLaurent Pinchart max9286_in2: endpoint { 28618f12901SLaurent Pinchart remote-endpoint = <&rdacm20_out2>; 28718f12901SLaurent Pinchart }; 28818f12901SLaurent Pinchart }; 28918f12901SLaurent Pinchart 29018f12901SLaurent Pinchart port@3 { 29118f12901SLaurent Pinchart reg = <3>; 29218f12901SLaurent Pinchart 29318f12901SLaurent Pinchart max9286_in3: endpoint { 29418f12901SLaurent Pinchart remote-endpoint = <&rdacm20_out3>; 29518f12901SLaurent Pinchart }; 29618f12901SLaurent Pinchart }; 29718f12901SLaurent Pinchart 29818f12901SLaurent Pinchart port@4 { 29918f12901SLaurent Pinchart reg = <4>; 30018f12901SLaurent Pinchart 30118f12901SLaurent Pinchart max9286_out: endpoint { 30218f12901SLaurent Pinchart data-lanes = <1 2 3 4>; 30318f12901SLaurent Pinchart remote-endpoint = <&csi40_in>; 30418f12901SLaurent Pinchart }; 30518f12901SLaurent Pinchart }; 30618f12901SLaurent Pinchart }; 30718f12901SLaurent Pinchart 30818f12901SLaurent Pinchart i2c-mux { 30918f12901SLaurent Pinchart #address-cells = <1>; 31018f12901SLaurent Pinchart #size-cells = <0>; 31118f12901SLaurent Pinchart 31218f12901SLaurent Pinchart i2c@0 { 31318f12901SLaurent Pinchart #address-cells = <1>; 31418f12901SLaurent Pinchart #size-cells = <0>; 31518f12901SLaurent Pinchart reg = <0>; 31618f12901SLaurent Pinchart 31718f12901SLaurent Pinchart camera@51 { 31818f12901SLaurent Pinchart compatible = "imi,rdacm20"; 31918f12901SLaurent Pinchart reg = <0x51>, <0x61>; 32018f12901SLaurent Pinchart 32118f12901SLaurent Pinchart port { 32218f12901SLaurent Pinchart rdacm20_out0: endpoint { 32318f12901SLaurent Pinchart remote-endpoint = <&max9286_in0>; 32418f12901SLaurent Pinchart }; 32518f12901SLaurent Pinchart }; 32618f12901SLaurent Pinchart 32718f12901SLaurent Pinchart }; 32818f12901SLaurent Pinchart }; 32918f12901SLaurent Pinchart 33018f12901SLaurent Pinchart i2c@1 { 33118f12901SLaurent Pinchart #address-cells = <1>; 33218f12901SLaurent Pinchart #size-cells = <0>; 33318f12901SLaurent Pinchart reg = <1>; 33418f12901SLaurent Pinchart 33518f12901SLaurent Pinchart camera@52 { 33618f12901SLaurent Pinchart compatible = "imi,rdacm20"; 33718f12901SLaurent Pinchart reg = <0x52>, <0x62>; 33818f12901SLaurent Pinchart 33918f12901SLaurent Pinchart port { 34018f12901SLaurent Pinchart rdacm20_out1: endpoint { 34118f12901SLaurent Pinchart remote-endpoint = <&max9286_in1>; 34218f12901SLaurent Pinchart }; 34318f12901SLaurent Pinchart }; 34418f12901SLaurent Pinchart }; 34518f12901SLaurent Pinchart }; 34618f12901SLaurent Pinchart 34718f12901SLaurent Pinchart i2c@2 { 34818f12901SLaurent Pinchart #address-cells = <1>; 34918f12901SLaurent Pinchart #size-cells = <0>; 35018f12901SLaurent Pinchart reg = <2>; 35118f12901SLaurent Pinchart 35218f12901SLaurent Pinchart camera@53 { 35318f12901SLaurent Pinchart compatible = "imi,rdacm20"; 35418f12901SLaurent Pinchart reg = <0x53>, <0x63>; 35518f12901SLaurent Pinchart 35618f12901SLaurent Pinchart port { 35718f12901SLaurent Pinchart rdacm20_out2: endpoint { 35818f12901SLaurent Pinchart remote-endpoint = <&max9286_in2>; 35918f12901SLaurent Pinchart }; 36018f12901SLaurent Pinchart }; 36118f12901SLaurent Pinchart }; 36218f12901SLaurent Pinchart }; 36318f12901SLaurent Pinchart 36418f12901SLaurent Pinchart i2c@3 { 36518f12901SLaurent Pinchart #address-cells = <1>; 36618f12901SLaurent Pinchart #size-cells = <0>; 36718f12901SLaurent Pinchart reg = <3>; 36818f12901SLaurent Pinchart 36918f12901SLaurent Pinchart camera@54 { 37018f12901SLaurent Pinchart compatible = "imi,rdacm20"; 37118f12901SLaurent Pinchart reg = <0x54>, <0x64>; 37218f12901SLaurent Pinchart 37318f12901SLaurent Pinchart port { 37418f12901SLaurent Pinchart rdacm20_out3: endpoint { 37518f12901SLaurent Pinchart remote-endpoint = <&max9286_in3>; 37618f12901SLaurent Pinchart }; 37718f12901SLaurent Pinchart }; 37818f12901SLaurent Pinchart }; 37918f12901SLaurent Pinchart }; 38018f12901SLaurent Pinchart }; 38118f12901SLaurent Pinchart }; 38248a0c73fSJacopo Mondi 38348a0c73fSJacopo Mondi /* 38448a0c73fSJacopo Mondi * Example of a deserializer that controls the camera Power over Coax 38548a0c73fSJacopo Mondi * through one of its gpio lines. 38648a0c73fSJacopo Mondi */ 38748a0c73fSJacopo Mondi gmsl-deserializer@6c { 38848a0c73fSJacopo Mondi compatible = "maxim,max9286"; 38948a0c73fSJacopo Mondi reg = <0x6c>; 39048a0c73fSJacopo Mondi enable-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; 39148a0c73fSJacopo Mondi 39248a0c73fSJacopo Mondi /* 39348a0c73fSJacopo Mondi * The remote camera power is controlled by MAX9286 GPIO line #0. 39448a0c73fSJacopo Mondi * No 'poc-supply' nor 'gpio-controller' are specified. 39548a0c73fSJacopo Mondi */ 39648a0c73fSJacopo Mondi maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>; 39748a0c73fSJacopo Mondi 39848a0c73fSJacopo Mondi /* 39948a0c73fSJacopo Mondi * Do not describe connections as they're the same as in the previous 40048a0c73fSJacopo Mondi * example. 40148a0c73fSJacopo Mondi */ 40248a0c73fSJacopo Mondi ports { 40348a0c73fSJacopo Mondi #address-cells = <1>; 40448a0c73fSJacopo Mondi #size-cells = <0>; 40548a0c73fSJacopo Mondi 40648a0c73fSJacopo Mondi port@4 { 40748a0c73fSJacopo Mondi reg = <4>; 40848a0c73fSJacopo Mondi }; 40948a0c73fSJacopo Mondi }; 41048a0c73fSJacopo Mondi 41148a0c73fSJacopo Mondi i2c-mux { 41248a0c73fSJacopo Mondi #address-cells = <1>; 41348a0c73fSJacopo Mondi #size-cells = <0>; 41448a0c73fSJacopo Mondi }; 41548a0c73fSJacopo Mondi }; 41618f12901SLaurent Pinchart }; 417