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