Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 252130d8 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Tony Lindgren
Browse files

ARM: dts: n950: add display support



Add basic panel support for the Nokia N950. It must be tweaked a
little bit later, since the panel was built into the device
upside-down. Also the first 5 and the last 5 pixels are covered
by plastic.

Signed-off-By: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent d6c95d54
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
@@ -51,6 +51,26 @@
	};
};

&omap3_pmx_core {
	dsi_pins: pinmux_dsi_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE1) /* dsi_dx0 - data0+ */
			OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE1) /* dsi_dy0 - data0- */
			OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE1) /* dsi_dx1 - clk+   */
			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE1) /* dsi_dy1 - clk-   */
			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE1) /* dsi_dx2 - data1+ */
			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE1) /* dsi_dy2 - data1- */
		>;
	};

	display_pins: pinmux_display_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x20ca, PIN_INPUT | MUX_MODE4) /* gpio 62 - display te */
			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 - display reset */
		>;
	};
};

&i2c2 {
	smia_1: camera@10 {
		compatible = "nokia,smia";
@@ -186,3 +206,71 @@
	st,max-limit-y = <32>;
	st,max-limit-z = <32>;
};

&dss {
	status = "ok";

	vdda_video-supply = <&vdac>;
};

&dsi {
	status = "ok";

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

	vdd-supply = <&vpll2>;

	port {
		dsi_out_ep: endpoint {
			remote-endpoint = <&lcd0_in>;
			lanes = <2 3 0 1 4 5>;
		};
	};

	lcd0: display {
		compatible = "nokia,himalaya", "panel-dsi-cm";
		label = "lcd0";

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

		vpnl-supply = <&vmmc2>;
		vddi-supply = <&vio>;

		reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;	/* 87 */
		te-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;	/* 62 */

		width-mm = <49>; /* 48.960 mm */
		height-mm = <88>; /* 88.128 mm */

		/* TODO:
		 * - panel is upside-down
		 * - top + bottom 5px are not visible
		 */
		panel-timing {
			clock-frequency = <0>;          /* Calculated by dsi */

			hback-porch = <2>;
			hactive = <480>;
			hfront-porch = <0>;
			hsync-len = <2>;

			vback-porch = <1>;
			vactive = <864>;
			vfront-porch = <0>;
			vsync-len = <1>;

			hsync-active = <0>;
			vsync-active = <0>;
			de-active = <1>;
			pixelclk-active = <1>;
		};

		port {
			lcd0_in: endpoint {
				remote-endpoint = <&dsi_out_ep>;
			};
		};
	};
};