All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
To: Jacopo Mondi <jacopo@jmondi.org>, linux-renesas-soc@vger.kernel.org
Subject: [RFC PATCH v6 05/13] arm64: dts: renesas: eagle: Provide MAX9286 GMSL deserialiser
Date: Mon, 16 Dec 2019 10:29:22 +0000	[thread overview]
Message-ID: <20191216102930.5867-6-kieran.bingham+renesas@ideasonboard.com> (raw)
In-Reply-To: <20191216102930.5867-1-kieran.bingham+renesas@ideasonboard.com>

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

Provide the wiring for the MAX9286 populated on the Eagle-V3M board
which has 4 FAKRA connectors.

No cameras are connected, and the I2C muxes are disabled by default.

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

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

---
v2
 - Rebase to mainline, and fix DTB merge issues.

v3:
 - Fix up gmsl-serialiszer i2c bus unit address

v6:
 - Use new i2c-mux subnode

 - Make use of the GPIO controller exposed by the max9286 to expose a
   hog on the line we need to hold low for camera power.

   Produces this:

   gpiochip7 - 2 lines:
	line   0:   "GPIO0OUT" "CSI0_CAMVDD_EN" output active-high [used]
	line   1:   "GPIO1OUT"       unused  output  active-high

 - Remove the powerdown hog, and utilise an optional enable-gpio line
   instead.
---
 .../arm64/boot/dts/renesas/r8a77970-eagle.dts | 135 ++++++++++++++++++
 1 file changed, 135 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
index 2be89ed879a5..86caf98e9eb0 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"
 
@@ -189,6 +191,11 @@
 		function = "i2c0";
 	};
 
+	i2c3_pins: i2c3 {
+		groups = "i2c3_a";
+		function = "i2c3";
+	};
+
 	scif0_pins: scif0 {
 		groups = "scif0_data";
 		function = "scif0";
@@ -200,6 +207,134 @@
 	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 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		compatible = "maxim,max9286";
+		reg = <0x48>;
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* eagle-pca9654-max9286-pwdn */
+		enable-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
+
+		/*
+		 * Workaround: Hog the CAMVDD line high as we can't establish a
+		 * regulator-fixed on the gpio_chip exposed by &gmsl due to
+		 * circular-dependency issues.
+		 */
+		camvdd_en {
+			gpio-hog;
+			gpios = <0 0>;
+			output-low;
+			line-name = "CSI0_CAMVDD_EN";
+		};
+
+		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.20.1


  parent reply	other threads:[~2019-12-16 10:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-11 12:44 [PATCH v6 0/2] MAX9286 GMSL Support Kieran Bingham
2019-12-11 12:44 ` [PATCH v6 1/2] dt-bindings: media: i2c: Add bindings for Maxim Integrated MAX9286 Kieran Bingham
2019-12-18 18:13   ` Rob Herring
2019-12-19 11:46     ` Kieran Bingham
2019-12-11 12:44 ` [PATCH v6 2/2] media: i2c: Add MAX9286 driver Kieran Bingham
2019-12-16 10:29 ` [RFC PATCH v6 00/13] GMSL Renesas Platform Support Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 01/13] media: i2c: max9286: Add GPIO chip controller Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 02/13] dt-bindings: media: i2c: Add bindings for IMI RDACM20 Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 03/13] media: i2c: Add RDACM20 driver Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 04/13] arm64: dts: renesas: eagle: enable VIN Kieran Bingham
2019-12-16 10:29   ` Kieran Bingham [this message]
2019-12-16 10:29   ` [RFC PATCH v6 06/13] arm64: dts: renesas: eagle: Provide Eagle FAKRA dynamic overlay Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 07/13] arm64: dts: renesas: salvator-x: Add MAX9286 expansion board Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 08/13] arm64: dts: renesas: eagle: Include Eagle FAKRA overlay Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 09/13] arm64: dts: renesas: r8a7795-es1-salvator-x: Include MAX9286 8 Camera expansion board Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 10/13] media: i2c: max9286: Introduce a debugfs layer Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 11/13] [DNI:DEBUG] media: i2c: max9286: Add max9286_check_config_link() Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 12/13] media: i2c: max9286: [Workaround] Hard delay while waiting to enable the V3M cameras Kieran Bingham
2019-12-16 10:29   ` [RFC PATCH v6 13/13] media: i2c: max9286: [Workaround] 'device is bound' Kieran Bingham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191216102930.5867-6-kieran.bingham+renesas@ideasonboard.com \
    --to=kieran.bingham+renesas@ideasonboard.com \
    --cc=jacopo@jmondi.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.