Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / spi / amlogic,meson-gx-spicc.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 # Copyright 2019 BayLibre, SAS
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/spi/amlogic,meson-gx-spicc.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Amlogic Meson SPI Communication Controller
9
10 maintainers:
11   - Neil Armstrong <neil.armstrong@linaro.org>
12
13 description: |
14   The Meson SPICC is a generic SPI controller for general purpose Full-Duplex
15   communications with dedicated 16 words RX/TX PIO FIFOs.
16
17 properties:
18   compatible:
19     enum:
20       - amlogic,meson-gx-spicc # SPICC controller on Amlogic GX and compatible SoCs
21       - amlogic,meson-axg-spicc # SPICC controller on Amlogic AXG and compatible SoCs
22       - amlogic,meson-g12a-spicc # SPICC controller on Amlogic G12A and compatible SoCs
23
24   interrupts:
25     maxItems: 1
26
27   reg:
28     maxItems: 1
29
30   resets:
31     maxItems: 1
32
33   clocks:
34     minItems: 1
35     items:
36       - description: controller register bus clock
37       - description: baud rate generator and delay control clock
38
39   clock-names:
40     minItems: 1
41     maxItems: 2
42
43 allOf:
44   - $ref: spi-controller.yaml#
45   - if:
46       properties:
47         compatible:
48           contains:
49             enum:
50               - amlogic,meson-g12a-spicc
51
52     then:
53       properties:
54         clocks:
55           minItems: 2
56
57         clock-names:
58           items:
59             - const: core
60             - const: pclk
61
62     else:
63       properties:
64         clocks:
65           maxItems: 1
66
67         clock-names:
68           items:
69             - const: core
70
71   - if:
72       properties:
73         compatible:
74           contains:
75             enum:
76               - amlogic,meson-gx-spicc
77
78     then:
79       properties:
80         pinctrl-0: true
81         pinctrl-1: true
82         pinctrl-2: true
83
84         pinctrl-names:
85           minItems: 1
86           items:
87             - const: default
88             - const: idle-high
89             - const: idle-low
90
91 required:
92   - compatible
93   - reg
94   - interrupts
95   - clocks
96   - clock-names
97
98 unevaluatedProperties: false
99
100 examples:
101   - |
102     spi@c1108d80 {
103         compatible = "amlogic,meson-gx-spicc";
104         reg = <0xc1108d80 0x80>;
105         interrupts = <112>;
106         clocks = <&clk81>;
107         clock-names = "core";
108         #address-cells = <1>;
109         #size-cells = <0>;
110
111         display@0 {
112             compatible = "lg,lg4573";
113             spi-max-frequency = <1000000>;
114             reg = <0>;
115         };
116     };