From: Kieran Bingham <kieran.bing...@ideasonboard.com>

Enable the MAX9286 GMSL deserializer on the Eagle-V3M board.

Connected cameras should be defined in a device-tree overlay or included
after these definitions.

Signed-off-by: Kieran Bingham <kieran.bing...@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo+rene...@jmondi.org>
---
 .../arm64/boot/dts/renesas/r8a77970-eagle.dts | 119 ++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts 
b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
index 874a7fc2730b..d2b6368d1e72 100644
--- a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
@@ -6,6 +6,8 @@
  * Copyright (C) 2017 Cogent Embedded, Inc.
  */
 
+#include <dt-bindings/gpio/gpio.h>
+
 /dts-v1/;
 #include "r8a77970.dtsi"
 
@@ -188,6 +190,11 @@ i2c0_pins: i2c0 {
                function = "i2c0";
        };
 
+       i2c3_pins: i2c3 {
+               groups = "i2c3_a";
+               function = "i2c3";
+       };
+
        qspi0_pins: qspi0 {
                groups = "qspi0_ctrl", "qspi0_data4";
                function = "qspi0";
@@ -266,6 +273,118 @@ &rwdt {
        status = "okay";
 };
 
+&csi40 {
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       csi40_in: endpoint {
+                               clock-lanes = <0>;
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&max9286_out0>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       pinctrl-0 = <&i2c3_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       gmsl: gmsl-deserializer@48 {
+               compatible = "maxim,max9286";
+               reg = <0x48>;
+
+               maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;
+
+               /* eagle-pca9654-max9286-pwdn */
+               enable-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               max9286_in0: endpoint {
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               max9286_in1: endpoint {
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               max9286_in2: endpoint {
+                               };
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               max9286_in3: endpoint {
+                               };
+                       };
+
+                       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";
+                       };
+               };
+       };
+};
+
 &scif0 {
        pinctrl-0 = <&scif0_pins>;
        pinctrl-names = "default";
-- 
2.31.1

Reply via email to