linux/arch/arm64/boot/dts/qcom/sm8650-hdk-display-card.dtso

// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2024, Linaro Limited
 */

/*
 * Display Card kit overlay
 * This requires S5702 Switch 7 to be turned to OFF to route DSI0 to the display panel
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/dts-v1/;
/plugin/;

/* Disable HDMI bridge related nodes (mutually exclusive with the display card) */

&i2c6 {
	status = "disabled";
};

&lt9611_1v2 {
	status = "disabled";
};

&lt9611_3v3 {
	status = "disabled";
};

&vreg_bob_3v3 {
	status = "disabled";
};

&lt9611_codec {
	status = "disabled";
};

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

	panel@0 {
		compatible = "visionox,vtdr6130";
		reg = <0>;

		reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;

		vddio-supply = <&vreg_l12b_1p8>;
		vci-supply = <&vreg_l13b_3p0>;
		vdd-supply = <&vreg_l11b_1p2>;

		pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync>;
		pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync>;
		pinctrl-names = "default", "sleep";

		port {
			panel0_in: endpoint {
				remote-endpoint = <&mdss_dsi0_out>;
			};
		};
	};

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

		port@1 {
			reg = <1>;

			mdss_dsi0_out: endpoint {
				remote-endpoint = <&panel0_in>;
			};
		};
	};
};

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

	status = "okay";

	touchscreen@0 {
		compatible = "goodix,gt9916";
		reg = <0>;

		interrupt-parent = <&tlmm>;
		interrupts = <162 IRQ_TYPE_LEVEL_LOW>;

		reset-gpios = <&tlmm 161 GPIO_ACTIVE_LOW>;

		avdd-supply = <&vreg_l14b_3p2>;

		spi-max-frequency = <1000000>;

		touchscreen-size-x = <1080>;
		touchscreen-size-y = <2400>;

		pinctrl-0 = <&ts_irq>, <&ts_reset>;
		pinctrl-names = "default";
	};
};

&tlmm {
	disp0_reset_n_active: disp0-reset-n-active-state {
		pins = "gpio133";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
	};

	disp0_reset_n_suspend: disp0-reset-n-suspend-state {
		pins = "gpio133";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

	mdp_vsync: mdp-vsync-state {
		pins = "gpio86";
		function = "mdp_vsync";
		drive-strength = <2>;
		bias-pull-down;
	};

	ts_irq: ts-irq-state {
		pins = "gpio161";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
		output-disable;
	};

	ts_reset: ts-reset-state {
		pins = "gpio162";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};
};