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