arm64: dts: renesas: condor: Enable MAX9286
authorJacopo Mondi <jacopo+renesas@jmondi.org>
Thu, 16 Dec 2021 16:34:36 +0000 (17:34 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 24 Jan 2022 09:09:13 +0000 (10:09 +0100)
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@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20211216163439.139579-5-jacopo+renesas@jmondi.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm64/boot/dts/renesas/r8a77980-condor.dts

index 3d6d10c..43ed033 100644 (file)
        };
 };
 
+&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>;
        };
 };
 
+&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";
 
                function = "i2c0";
        };
 
+       i2c1_pins: i2c1 {
+               groups = "i2c1";
+               function = "i2c1";
+       };
+
        mmc_pins: mmc {
                groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
                function = "mmc";