Quoting Jacopo Mondi (2021-12-16 16:34:36) > Enable the MAX9286 GMSL deserializers on Condor-V3H board. > > Connected cameras should be defined in a device-tree overlay or included > after these definitions. > > Signed-off-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> This looks good to me. It now enables the CSI2s, and the max9286 will have no children. Will this create a completed media graph that simply has no cameras connected? Or will the max9286 return a failure if there are no devices attached. I could look this up I guess, but I'm only curious of what potential side effects there are of having a now successfully probed CSI2 receiver/VIN but without any cameras. Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > --- > .../boot/dts/renesas/r8a77980-condor.dts | 193 ++++++++++++++++++ > 1 file changed, 193 insertions(+) > > diff --git a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts > index 3d6d10c82f48..2eb2b852ddca 100644 > --- a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts > +++ b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts > @@ -6,6 +6,8 @@ > * Copyright (C) 2018 Cogent Embedded, Inc. > */ > > +#include <dt-bindings/gpio/gpio.h> > + > /dts-v1/; > #include "r8a77980.dtsi" > #include <dt-bindings/gpio/gpio.h> > @@ -108,6 +110,34 @@ channel0 { > }; > }; > > +&csi40 { > + status = "okay"; > + > + ports { > + port@0 { > + csi40_in: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&max9286_out0>; > + }; > + }; > + }; > +}; > + > +&csi41 { > + status = "okay"; > + > + ports { > + port@0 { > + csi41_in: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&max9286_out1>; > + }; > + }; > + }; > +}; > + > &du { > clocks = <&cpg CPG_MOD 724>, > <&x1_clk>; > @@ -200,6 +230,164 @@ adv7511_out: endpoint { > }; > }; > > +&i2c1 { > + pinctrl-0 = <&i2c1_pins>; > + pinctrl-names = "default"; > + > + status = "okay"; > + clock-frequency = <400000>; > + > + gmsl0: gmsl-deserializer@48 { > + compatible = "maxim,max9286"; > + reg = <0x48>; > + > + maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>; > + enable-gpios = <&io_expander0 0 GPIO_ACTIVE_HIGH>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + }; > + > + port@1 { > + reg = <1>; > + }; > + > + port@2 { > + reg = <2>; > + }; > + > + port@3 { > + reg = <3>; > + }; > + > + port@4 { > + reg = <4>; > + max9286_out0: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&csi40_in>; > + }; > + }; > + }; > + > + i2c-mux { > + #address-cells = <1>; > + #size-cells = <0>; > + > + i2c@0 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0>; > + > + status = "disabled"; > + }; > + > + i2c@1 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <1>; > + > + status = "disabled"; > + }; > + > + i2c@2 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <2>; > + > + status = "disabled"; > + }; > + > + i2c@3 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <3>; > + > + status = "disabled"; > + }; > + }; > + }; > + > + gmsl1: gmsl-deserializer@4a { > + compatible = "maxim,max9286"; > + reg = <0x4a>; > + > + maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>; > + enable-gpios = <&io_expander1 0 GPIO_ACTIVE_HIGH>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + }; > + > + port@1 { > + reg = <1>; > + }; > + > + port@2 { > + reg = <2>; > + }; > + > + port@3 { > + reg = <3>; > + }; > + > + port@4 { > + reg = <4>; > + max9286_out1: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&csi41_in>; > + }; > + }; > + }; > + > + i2c-mux { > + #address-cells = <1>; > + #size-cells = <0>; > + > + i2c@0 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0>; > + > + status = "disabled"; > + }; > + > + i2c@1 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <1>; > + > + status = "disabled"; > + }; > + > + i2c@2 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <2>; > + > + status = "disabled"; > + }; > + > + i2c@3 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <3>; > + > + status = "disabled"; > + }; > + }; > + }; > +}; > + > &lvds0 { > status = "okay"; > > @@ -256,6 +444,11 @@ i2c0_pins: i2c0 { > function = "i2c0"; > }; > > + i2c1_pins: i2c1 { > + groups = "i2c1"; > + function = "i2c1"; > + }; > + > mmc_pins: mmc { > groups = "mmc_data8", "mmc_ctrl", "mmc_ds"; > function = "mmc"; > -- > 2.33.1 >