xref: /linux/Documentation/devicetree/bindings/display/atmel,lcdc-display.yaml (revision 06f054b1fee83415fe35204845708988fc16ef22)
1*57b7d5d3SDharma Balasubiramani# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*57b7d5d3SDharma Balasubiramani%YAML 1.2
3*57b7d5d3SDharma Balasubiramani---
4*57b7d5d3SDharma Balasubiramani$id: http://devicetree.org/schemas/display/atmel,lcdc-display.yaml#
5*57b7d5d3SDharma Balasubiramani$schema: http://devicetree.org/meta-schemas/core.yaml#
6*57b7d5d3SDharma Balasubiramani
7*57b7d5d3SDharma Balasubiramanititle: Microchip's LCDC Display
8*57b7d5d3SDharma Balasubiramani
9*57b7d5d3SDharma Balasubiramanimaintainers:
10*57b7d5d3SDharma Balasubiramani  - Nicolas Ferre <nicolas.ferre@microchip.com>
11*57b7d5d3SDharma Balasubiramani  - Dharma Balasubiramani <dharma.b@microchip.com>
12*57b7d5d3SDharma Balasubiramani
13*57b7d5d3SDharma Balasubiramanidescription:
14*57b7d5d3SDharma Balasubiramani  The LCD Controller (LCDC) consists of logic for transferring LCD image data
15*57b7d5d3SDharma Balasubiramani  from an external display buffer to a TFT LCD panel. The LCDC has one display
16*57b7d5d3SDharma Balasubiramani  input buffer per layer that fetches pixels through the single bus host
17*57b7d5d3SDharma Balasubiramani  interface and a look-up table to allow palletized display configurations. The
18*57b7d5d3SDharma Balasubiramani  LCDC is programmable on a per layer basis, and supports different LCD
19*57b7d5d3SDharma Balasubiramani  resolutions, window sizes, image formats and pixel depths.
20*57b7d5d3SDharma Balasubiramani
21*57b7d5d3SDharma Balasubiramani# We need a select here since this schema is applicable only for nodes with the
22*57b7d5d3SDharma Balasubiramani# following properties
23*57b7d5d3SDharma Balasubiramani
24*57b7d5d3SDharma Balasubiramaniselect:
25*57b7d5d3SDharma Balasubiramani  anyOf:
26*57b7d5d3SDharma Balasubiramani    - required: [ 'atmel,dmacon' ]
27*57b7d5d3SDharma Balasubiramani    - required: [ 'atmel,lcdcon2' ]
28*57b7d5d3SDharma Balasubiramani    - required: [ 'atmel,guard-time' ]
29*57b7d5d3SDharma Balasubiramani
30*57b7d5d3SDharma Balasubiramaniproperties:
31*57b7d5d3SDharma Balasubiramani  atmel,dmacon:
32*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/uint32
33*57b7d5d3SDharma Balasubiramani    description: dma controller configuration
34*57b7d5d3SDharma Balasubiramani
35*57b7d5d3SDharma Balasubiramani  atmel,lcdcon2:
36*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/uint32
37*57b7d5d3SDharma Balasubiramani    description: lcd controller configuration
38*57b7d5d3SDharma Balasubiramani
39*57b7d5d3SDharma Balasubiramani  atmel,guard-time:
40*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/uint32
41*57b7d5d3SDharma Balasubiramani    description: lcd guard time (Delay in frame periods)
42*57b7d5d3SDharma Balasubiramani    maximum: 127
43*57b7d5d3SDharma Balasubiramani
44*57b7d5d3SDharma Balasubiramani  bits-per-pixel:
45*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/uint32
46*57b7d5d3SDharma Balasubiramani    description: lcd panel bit-depth.
47*57b7d5d3SDharma Balasubiramani    enum: [1, 2, 4, 8, 16, 24, 32]
48*57b7d5d3SDharma Balasubiramani
49*57b7d5d3SDharma Balasubiramani  atmel,lcdcon-backlight:
50*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/flag
51*57b7d5d3SDharma Balasubiramani    description: enable backlight
52*57b7d5d3SDharma Balasubiramani
53*57b7d5d3SDharma Balasubiramani  atmel,lcdcon-backlight-inverted:
54*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/flag
55*57b7d5d3SDharma Balasubiramani    description: invert backlight PWM polarity
56*57b7d5d3SDharma Balasubiramani
57*57b7d5d3SDharma Balasubiramani  atmel,lcd-wiring-mode:
58*57b7d5d3SDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/string
59*57b7d5d3SDharma Balasubiramani    description: lcd wiring mode "RGB" or "BRG"
60*57b7d5d3SDharma Balasubiramani    enum:
61*57b7d5d3SDharma Balasubiramani      - RGB
62*57b7d5d3SDharma Balasubiramani      - BRG
63*57b7d5d3SDharma Balasubiramani
64*57b7d5d3SDharma Balasubiramani  atmel,power-control-gpio:
65*57b7d5d3SDharma Balasubiramani    description: gpio to power on or off the LCD (as many as needed)
66*57b7d5d3SDharma Balasubiramani    maxItems: 1
67*57b7d5d3SDharma Balasubiramani
68*57b7d5d3SDharma Balasubiramani  display-timings:
69*57b7d5d3SDharma Balasubiramani    $ref: panel/display-timings.yaml#
70*57b7d5d3SDharma Balasubiramani
71*57b7d5d3SDharma Balasubiramanirequired:
72*57b7d5d3SDharma Balasubiramani  - atmel,dmacon
73*57b7d5d3SDharma Balasubiramani  - atmel,lcdcon2
74*57b7d5d3SDharma Balasubiramani  - atmel,guard-time
75*57b7d5d3SDharma Balasubiramani  - bits-per-pixel
76*57b7d5d3SDharma Balasubiramani
77*57b7d5d3SDharma BalasubiramaniadditionalProperties: false
78*57b7d5d3SDharma Balasubiramani
79*57b7d5d3SDharma Balasubiramaniexamples:
80*57b7d5d3SDharma Balasubiramani  - |
81*57b7d5d3SDharma Balasubiramani    display: panel {
82*57b7d5d3SDharma Balasubiramani      bits-per-pixel = <32>;
83*57b7d5d3SDharma Balasubiramani      atmel,lcdcon-backlight;
84*57b7d5d3SDharma Balasubiramani      atmel,dmacon = <0x1>;
85*57b7d5d3SDharma Balasubiramani      atmel,lcdcon2 = <0x80008002>;
86*57b7d5d3SDharma Balasubiramani      atmel,guard-time = <9>;
87*57b7d5d3SDharma Balasubiramani      atmel,lcd-wiring-mode = "RGB";
88*57b7d5d3SDharma Balasubiramani
89*57b7d5d3SDharma Balasubiramani      display-timings {
90*57b7d5d3SDharma Balasubiramani        native-mode = <&timing0>;
91*57b7d5d3SDharma Balasubiramani        timing0: timing0 {
92*57b7d5d3SDharma Balasubiramani          clock-frequency = <9000000>;
93*57b7d5d3SDharma Balasubiramani          hactive = <480>;
94*57b7d5d3SDharma Balasubiramani          vactive = <272>;
95*57b7d5d3SDharma Balasubiramani          hback-porch = <1>;
96*57b7d5d3SDharma Balasubiramani          hfront-porch = <1>;
97*57b7d5d3SDharma Balasubiramani          vback-porch = <40>;
98*57b7d5d3SDharma Balasubiramani          vfront-porch = <1>;
99*57b7d5d3SDharma Balasubiramani          hsync-len = <45>;
100*57b7d5d3SDharma Balasubiramani          vsync-len = <1>;
101*57b7d5d3SDharma Balasubiramani        };
102*57b7d5d3SDharma Balasubiramani      };
103*57b7d5d3SDharma Balasubiramani    };
104