| * ARM PrimeCell Color LCD Controller PL110/PL111 |
| |
| See also Documentation/devicetree/bindings/arm/primecell.txt |
| |
| 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; |
| when it is a TFT panel, the port's endpoint must define the |
| following property: |
| |
| - 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>; |
| arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
| }; |
| }; |
| |
| }; |
| |
| 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>; |
| }; |
| }; |