Commit 9199da68 authored by Jacopo Mondi's avatar Jacopo Mondi Committed by Geert Uytterhoeven
Browse files

arm64: dts: renesas: condor: Enable MAX9286



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: default avatarJacopo Mondi <jacopo+renesas@jmondi.org>
Reviewed-by: default avatarKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20211216163439.139579-5-jacopo+renesas@jmondi.org


Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
parent ce0c63b6
Loading
Loading
Loading
Loading
+191 −0
Original line number Diff line number Diff line
@@ -108,6 +108,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 +228,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 +442,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";