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