Commit 3e987e1f authored by Martijn Braam's avatar Martijn Braam Committed by Heiko Stuebner
Browse files

arm64: dts: rockchip: Add internal display support to rk3399-pinephone-pro



The phone's display is using a Hannstar LCD panel. Support it by adding a
panel DT node and all needed nodes (backlight, MIPI DSI, regulators, etc).

Signed-off-by: default avatarMartijn Braam <martijn@brixit.nl>
Co-developed-by: default avatarKamil Trzciński <ayufan@ayufan.eu>
Signed-off-by: default avatarKamil Trzciński <ayufan@ayufan.eu>
Co-developed-by: default avatarOndrej Jirman <megi@xff.cz>
Signed-off-by: default avatarOndrej Jirman <megi@xff.cz>
Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Tested-by: default avatarOndrej Jirman <megi@xff.cz>
Link: https://lore.kernel.org/r/20230328073309.1743112-2-javierm@redhat.com


Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent e1a234eb
Loading
Loading
Loading
Loading
+95 −0
Original line number Diff line number Diff line
@@ -29,6 +29,11 @@
		stdout-path = "serial2:115200n8";
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm0 0 50000 0>;
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
@@ -102,6 +107,30 @@
		/* WL_REG_ON on module */
		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
	};

	/* MIPI DSI panel 1.8v supply */
	vcc1v8_lcd: vcc1v8-lcd {
		compatible = "regulator-fixed";
		enable-active-high;
		regulator-name = "vcc1v8_lcd";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc3v3_sys>;
		gpio = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
	};

	/* MIPI DSI panel 2.8v supply */
	vcc2v8_lcd: vcc2v8-lcd {
		compatible = "regulator-fixed";
		enable-active-high;
		regulator-name = "vcc2v8_lcd";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		vin-supply = <&vcc3v3_sys>;
		gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
	};
};

&cpu_alert0 {
@@ -139,6 +168,11 @@
	status = "okay";
};

&gpu {
	mali-supply = <&vdd_gpu>;
	status = "okay";
};

&i2c0 {
	clock-frequency = <400000>;
	i2c-scl-rising-time-ns = <168>;
@@ -362,6 +396,39 @@
	status = "okay";
};

&mipi_dsi {
	status = "okay";
	clock-master;

	ports {
		mipi_out: port@1 {
			#address-cells = <0>;
			#size-cells = <0>;
			reg = <1>;

			mipi_out_panel: endpoint {
				remote-endpoint = <&mipi_in_panel>;
			};
		};
	};

	panel@0 {
		compatible = "hannstar,hsd060bhw4";
		reg = <0>;
		backlight = <&backlight>;
		reset-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_LOW>;
		vcc-supply = <&vcc2v8_lcd>;
		iovcc-supply = <&vcc1v8_lcd>;
		pinctrl-names = "default";

		port {
			mipi_in_panel: endpoint {
				remote-endpoint = <&mipi_out_panel>;
			};
		};
	};
};

&pmu_io_domains {
	pmu1830-supply = <&vcc_1v8>;
	status = "okay";
@@ -429,6 +496,10 @@
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&sdmmc {
	bus-width = <4>;
	cap-sd-highspeed;
@@ -479,3 +550,27 @@
&uart2 {
	status = "okay";
};

&vopb {
	status = "okay";
	assigned-clocks = <&cru DCLK_VOP0_DIV>, <&cru DCLK_VOP0>,
			  <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
	assigned-clock-rates = <0>, <0>, <400000000>, <100000000>;
	assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP0_DIV>;
};

&vopb_mmu {
	status = "okay";
};

&vopl {
	status = "okay";
	assigned-clocks = <&cru DCLK_VOP1_DIV>, <&cru DCLK_VOP1>,
			  <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
	assigned-clock-rates = <0>, <0>, <400000000>, <100000000>;
	assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP1_DIV>;
};

&vopl_mmu {
	status = "okay";
};