xref: /freebsd/sys/contrib/device-tree/Bindings/display/atmel,lcdc.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.yaml#
5*7d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7d0873ebSEmmanuel Vadot
7*7d0873ebSEmmanuel Vadottitle: Microchip's LCDC Framebuffer
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 LCDC works with a framebuffer, which is a section of memory that contains
15*7d0873ebSEmmanuel Vadot  a complete frame of data representing pixel values for the display. The LCDC
16*7d0873ebSEmmanuel Vadot  reads the pixel data from the framebuffer and sends it to the LCD panel to
17*7d0873ebSEmmanuel Vadot  render the image.
18*7d0873ebSEmmanuel Vadot
19*7d0873ebSEmmanuel Vadotproperties:
20*7d0873ebSEmmanuel Vadot  compatible:
21*7d0873ebSEmmanuel Vadot    enum:
22*7d0873ebSEmmanuel Vadot      - atmel,at91sam9261-lcdc
23*7d0873ebSEmmanuel Vadot      - atmel,at91sam9263-lcdc
24*7d0873ebSEmmanuel Vadot      - atmel,at91sam9g10-lcdc
25*7d0873ebSEmmanuel Vadot      - atmel,at91sam9g45-lcdc
26*7d0873ebSEmmanuel Vadot      - atmel,at91sam9g45es-lcdc
27*7d0873ebSEmmanuel Vadot      - atmel,at91sam9rl-lcdc
28*7d0873ebSEmmanuel Vadot
29*7d0873ebSEmmanuel Vadot  reg:
30*7d0873ebSEmmanuel Vadot    maxItems: 1
31*7d0873ebSEmmanuel Vadot
32*7d0873ebSEmmanuel Vadot  interrupts:
33*7d0873ebSEmmanuel Vadot    maxItems: 1
34*7d0873ebSEmmanuel Vadot
35*7d0873ebSEmmanuel Vadot  clocks:
36*7d0873ebSEmmanuel Vadot    maxItems: 2
37*7d0873ebSEmmanuel Vadot
38*7d0873ebSEmmanuel Vadot  clock-names:
39*7d0873ebSEmmanuel Vadot    items:
40*7d0873ebSEmmanuel Vadot      - const: hclk
41*7d0873ebSEmmanuel Vadot      - const: lcdc_clk
42*7d0873ebSEmmanuel Vadot
43*7d0873ebSEmmanuel Vadot  display:
44*7d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
45*7d0873ebSEmmanuel Vadot    description: A phandle pointing to the display node.
46*7d0873ebSEmmanuel Vadot
47*7d0873ebSEmmanuel Vadotrequired:
48*7d0873ebSEmmanuel Vadot  - compatible
49*7d0873ebSEmmanuel Vadot  - reg
50*7d0873ebSEmmanuel Vadot  - interrupts
51*7d0873ebSEmmanuel Vadot  - clocks
52*7d0873ebSEmmanuel Vadot  - clock-names
53*7d0873ebSEmmanuel Vadot  - display
54*7d0873ebSEmmanuel Vadot
55*7d0873ebSEmmanuel VadotadditionalProperties: false
56*7d0873ebSEmmanuel Vadot
57*7d0873ebSEmmanuel Vadotexamples:
58*7d0873ebSEmmanuel Vadot  - |
59*7d0873ebSEmmanuel Vadot    #include <dt-bindings/clock/at91.h>
60*7d0873ebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
61*7d0873ebSEmmanuel Vadot    fb@500000 {
62*7d0873ebSEmmanuel Vadot      compatible = "atmel,at91sam9g45-lcdc";
63*7d0873ebSEmmanuel Vadot      reg = <0x00500000 0x1000>;
64*7d0873ebSEmmanuel Vadot      interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
65*7d0873ebSEmmanuel Vadot      pinctrl-names = "default";
66*7d0873ebSEmmanuel Vadot      pinctrl-0 = <&pinctrl_fb>;
67*7d0873ebSEmmanuel Vadot      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_PERIPHERAL 23>;
68*7d0873ebSEmmanuel Vadot      clock-names = "hclk", "lcdc_clk";
69*7d0873ebSEmmanuel Vadot      display = <&display>;
70*7d0873ebSEmmanuel Vadot    };
71