Skip to content
Snippets Groups Projects
seco-ptn3460-qcom.txt 2.14 KiB
Newer Older
Device tree bindings for NXP PTN3460 DP/LVDS bridge on Qualcomm SoCs
********************************************************************

Properties
----------
- compatible = "seco,ptn3460-qcom"
- reg = <0x60>: The address on the i2c-bus.
- powerdown-gpios = <phandle>: gpio for power-down
- reset-gpios = <phandle>: gpio for reset
- lvds-enable-gpios = <phandle>: gpio for enableing the panel
- hpd-gpios = <phandle>: gpio for hotplug-detect
- backlight = <phandle>: handle for backlight
- edid-emulation = <int>: edid to emulate, defaults to 0
- width  = <int>: panel width
- height  = <int>: panel height
- data-mapping = "vesa24" | "jeida-24" | "jeida-18"
- panel-timing: panel timing,
  see Documentation/devicetree/bindings/display/panel/display-timings.yaml
- dual-lvds: boolean, use dul-lvds if set
- port@0: input port for the bridge
  see https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/graph.yaml

If no panel-timing is defined edid-emulation selects one of the
7 EDIDs preconfigured in the bridge.

Ports are not used by the driver itself. Nevertheless the input port
defines a dependance of devices for the purpose an endpoint can defer
it's probe until the bridge is probed.


Required
--------
- compatible
- reg
- reset-gpios


Examples
--------
&i2c13 {
	edp2lvds: ptn3460@60 {
		compatible = "seco,ptn3460-qcom";
		reg = <0x60>; // DEV_CFG is floating
		powerdown-gpios = <&tlmm 46 0>;
		reset-gpios = <&tlmm 44 0>;
		hpd-gpios = <&stm32 3 (GPIO_PUSH_PULL | GPIO_ACTIVE_HIGH)>;
		lvds-enable-gpios = <LCD0_VDD_EN (GPIO_PUSH_PULL | GPIO_ACTIVE_HIGH)>;
		edid-emulation = <0>;
		status = "disabled";

		panel-timing {
			clock-frequency = <71100000>;
			hactive = <1280>;
			hfront-porch = <75>;
			hsync-len = <10>;
			hback-porch = <75>;
			//htotal = <1440>;

			vactive = <800>;
			vfront-porch = <10>;
			vsync-len = <3>;
			vback-porch = <10>;
			//vtotal = <823>;

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

		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				edp2lvds_in: endpoint {
					remote-endpoint = <&mdss_edp0_out>;
				};
			};
		};
	};
};