* ARM PrimeCell Color LCD Controller PL110/PL111

See also Documentation/devicetree/bindings/arm/primecell.yaml

Required properties:

- compatible: must be one of:
	"arm,pl110", "arm,primecell"
	"arm,pl111", "arm,primecell"

- reg: base address and size of the control registers block

- interrupt-names: either the single entry "combined" representing a
	combined interrupt output (CLCDINTR), or the four entries
	"mbe", "vcomp", "lnbu", "fuf" representing the individual
	CLCDMBEINTR, CLCDVCOMPINTR, CLCDLNBUINTR, CLCDFUFINTR interrupts

- interrupts: contains an interrupt specifier for each entry in
	interrupt-names

- clock-names: should contain "clcdclk" and "apb_pclk"

- clocks: contains phandle and clock specifier pairs for the entries
	in the clock-names property. See
	Documentation/devicetree/bindings/clock/clock-bindings.txt

Optional properties:

- memory-region: phandle to a node describing memory (see
	Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
	to be used for the framebuffer; if not present, the framebuffer
	may be located anywhere in the memory

- max-memory-bandwidth: maximum bandwidth in bytes per second that the
	cell's memory interface can handle; if not present, the memory
	interface is fast enough to handle all possible video modes

Required sub-nodes:

- port: describes LCD panel signals, following the common binding
	for video transmitter interfaces; see
	Documentation/devicetree/bindings/media/video-interfaces.txt

Deprecated properties:
	The port's endbpoint subnode had this, now deprecated property
	in the past. Drivers should be able to survive without it:

	- arm,pl11x,tft-r0g0b0-pads: an array of three 32-bit values,
		defining the way CLD pads are wired up; first value
		contains index of the "CLD" external pin (pad) used
		as R0 (first bit of the red component), second value
	        index of the pad used as G0, third value index of the
		pad used as B0, see also "LCD panel signal multiplexing
		details" paragraphs in the PL110/PL111 Technical
		Reference Manuals; this implicitly defines available
		color modes, for example:
		- PL111 TFT 4:4:4 panel:
			arm,pl11x,tft-r0g0b0-pads = <4 15 20>;
		- PL110 TFT (1:)5:5:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <1 7 13>;
		- PL111 TFT (1:)5:5:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <3 11 19>;
		- PL111 TFT 5:6:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <3 10 19>;
		- PL110 and PL111 TFT 8:8:8 panel:
			arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
		- PL110 and PL111 TFT 8:8:8 panel, R & B components swapped:
			arm,pl11x,tft-r0g0b0-pads = <16 8 0>;


Example:

	clcd@10020000 {
		compatible = "arm,pl111", "arm,primecell";
		reg = <0x10020000 0x1000>;
		interrupt-names = "combined";
		interrupts = <0 44 4>;
		clocks = <&oscclk1>, <&oscclk2>;
		clock-names = "clcdclk", "apb_pclk";
		max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */

		port {
			clcd_pads: endpoint {
				remote-endpoint = <&clcd_panel>;
			};
		};

	};

	panel {
		compatible = "panel-dpi";

		port {
			clcd_panel: endpoint {
				remote-endpoint = <&clcd_pads>;
			};
		};

		panel-timing {
			clock-frequency = <25175000>;
			hactive = <640>;
			hback-porch = <40>;
			hfront-porch = <24>;
			hsync-len = <96>;
			vactive = <480>;
			vback-porch = <32>;
			vfront-porch = <11>;
			vsync-len = <2>;
		};
	};
