Commit d96d8f91 authored by Robert Foss's avatar Robert Foss Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: sm8350-hdk: Enable lt9611uxc dsi-hdmi bridge



The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip.

In order to toggle the board to enable the HDMI output,
switch #7 & #8 on the rightmost multi-switch package have
to be toggled to On.

Signed-off-by: default avatarRobert Foss <robert.foss@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230117120223.1055225-4-rfoss@kernel.org
parent ea9df63f
Loading
Loading
Loading
Loading
+105 −0
Original line number Diff line number Diff line
@@ -20,6 +20,17 @@
		stdout-path = "serial0:115200n8";
	};

	hdmi-connector {
		compatible = "hdmi-connector";
		type = "a";

		port {
			hdmi_con: endpoint {
				remote-endpoint = <&lt9611_out>;
			};
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
@@ -29,6 +40,31 @@
		regulator-always-on;
		regulator-boot-on;
	};

	lt9611_1v2: lt9611-1v2-regulator {
		compatible = "regulator-fixed";
		regulator-name = "LT9611_1V2";

		vin-supply = <&vph_pwr>;
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
	};

	lt9611_3v3: lt9611-3v3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "LT9611_3V3";

		vin-supply = <&vreg_bob>;
		gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		enable-active-high;
		regulator-boot-on;
		regulator-always-on;
	};
};

&adsp {
@@ -228,6 +264,15 @@
&mdss_dsi0 {
	vdda-supply = <&vreg_l6b_1p2>;
	status = "okay";

	ports {
		port@1 {
			endpoint {
				remote-endpoint = <&lt9611_a>;
				data-lanes = <0 1 2 3>;
			};
		};
	};
};

&mdss_dsi0_phy  {
@@ -239,6 +284,46 @@
	status = "okay";
};

&i2c15 {
	clock-frequency = <400000>;
	status = "okay";

	lt9611_codec: hdmi-bridge@2b {
		compatible = "lontium,lt9611uxc";
		reg = <0x2b>;

		interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;

		vdd-supply = <&lt9611_1v2>;
		vcc-supply = <&lt9611_3v3>;

		pinctrl-names = "default";
		pinctrl-0 = <&lt9611_state>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				lt9611_a: endpoint {
					remote-endpoint = <&dsi0_out>;
				};
			};

			port@2 {
				reg = <2>;

				lt9611_out: endpoint {
					remote-endpoint = <&hdmi_con>;
				};
			};
		};
	};
};

&mdss {
	status = "okay";
};
@@ -289,6 +374,10 @@
	status = "okay";
};

&qupv3_id_2 {
	status = "okay";
};

&slpi {
	status = "okay";
	firmware-name = "qcom/sm8350/slpi.mbn";
@@ -427,4 +516,20 @@
		drive-strength = <2>;
		output-low;
	};

	lt9611_state: lt9611-state {
		rst {
			pins = "gpio48";
			function = "normal";

			output-high;
			input-disable;
		};

		irq {
			pins = "gpio50";
			function = "gpio";
			bias-disable;
		};
	};
};