xref: /linux/Documentation/devicetree/bindings/mfd/atmel,hlcdc.yaml (revision be1ca3ee8f97067fee87fda73ea5959d5ab75bbf)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/atmel,hlcdc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Atmel's HLCD Controller
8
9maintainers:
10  - Nicolas Ferre <nicolas.ferre@microchip.com>
11  - Alexandre Belloni <alexandre.belloni@bootlin.com>
12  - Claudiu Beznea <claudiu.beznea@tuxon.dev>
13
14description:
15  The Atmel HLCDC (HLCD Controller) IP available on Atmel SoCs exposes two
16  subdevices, a PWM chip and a Display Controller.
17
18properties:
19  compatible:
20    enum:
21      - atmel,at91sam9n12-hlcdc
22      - atmel,at91sam9x5-hlcdc
23      - atmel,sama5d2-hlcdc
24      - atmel,sama5d3-hlcdc
25      - atmel,sama5d4-hlcdc
26      - microchip,sam9x60-hlcdc
27      - microchip,sam9x75-xlcdc
28      - microchip,sama7d65-xlcdc
29
30  reg:
31    maxItems: 1
32
33  interrupts:
34    maxItems: 1
35
36  clocks:
37    minItems: 3
38
39  clock-names:
40    items:
41      - const: periph_clk
42      - const: sys_clk
43      - const: slow_clk
44      - const: lvds_pll_clk
45    minItems: 3
46
47  display-controller:
48    $ref: /schemas/display/atmel/atmel,hlcdc-display-controller.yaml
49
50  pwm:
51    $ref: /schemas/pwm/atmel,hlcdc-pwm.yaml
52
53required:
54  - compatible
55  - reg
56  - clocks
57  - clock-names
58  - interrupts
59
60additionalProperties: false
61
62examples:
63  - |
64    #include <dt-bindings/clock/at91.h>
65    #include <dt-bindings/dma/at91.h>
66    #include <dt-bindings/interrupt-controller/arm-gic.h>
67
68    lcd_controller: lcd-controller@f0030000 {
69      compatible = "atmel,sama5d3-hlcdc";
70      reg = <0xf0030000 0x2000>;
71      clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
72      clock-names = "periph_clk", "sys_clk", "slow_clk";
73      interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
74
75      display-controller {
76        compatible = "atmel,hlcdc-display-controller";
77        pinctrl-names = "default";
78        pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
79        #address-cells = <1>;
80        #size-cells = <0>;
81
82        port@0 {
83          #address-cells = <1>;
84          #size-cells = <0>;
85          reg = <0>;
86
87          hlcdc_panel_output: endpoint@0 {
88            reg = <0>;
89            remote-endpoint = <&panel_input>;
90          };
91        };
92      };
93
94      pwm {
95        compatible = "atmel,hlcdc-pwm";
96        pinctrl-names = "default";
97        pinctrl-0 = <&pinctrl_lcd_pwm>;
98        #pwm-cells = <3>;
99      };
100    };
101