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
8title: Amlogic Meson SPI Communication Controller
9
10maintainers:
11  - Neil Armstrong <neil.armstrong@linaro.org>
12
13description: |
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
17properties:
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
43allOf:
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
91required:
92  - compatible
93  - reg
94  - interrupts
95  - clocks
96  - clock-names
97
98unevaluatedProperties: false
99
100examples:
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    };
117