summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/spi/snps,dw-apb-ssi.yaml
blob: c62cbe79f00dd4fac1432c4c14fe6f1f47a98386 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface

maintainers:
  - Mark Brown <broonie@kernel.org>

allOf:
  - $ref: "spi-controller.yaml#"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - mscc,ocelot-spi
              - mscc,jaguar2-spi
    then:
      properties:
        reg:
          minItems: 2

properties:
  compatible:
    oneOf:
      - description: Generic DW SPI Controller
        enum:
          - snps,dw-apb-ssi
          - snps,dwc-ssi-1.01a
      - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller
        items:
          - enum:
              - mscc,ocelot-spi
              - mscc,jaguar2-spi
          - const: snps,dw-apb-ssi
      - description: Amazon Alpine SPI Controller
        const: amazon,alpine-dw-apb-ssi
      - description: Renesas RZ/N1 SPI Controller
        items:
          - const: renesas,rzn1-spi
          - const: snps,dw-apb-ssi
      - description: Intel Keem Bay SPI Controller
        const: intel,keembay-ssi

  reg:
    minItems: 1
    items:
      - description: DW APB SSI controller memory mapped registers
      - description: SPI MST region map

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: SPI Controller reference clock source
      - description: APB interface clock source

  clock-names:
    minItems: 1
    items:
      - const: ssi_clk
      - const: pclk

  resets:
    maxItems: 1

  reset-names:
    const: spi

  reg-io-width:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: I/O register width (in bytes) implemented by this device
    default: 4
    enum: [ 2, 4 ]

  num-cs:
    default: 4
    minimum: 1
    maximum: 4

  dmas:
    items:
      - description: TX DMA Channel
      - description: RX DMA Channel

  dma-names:
    items:
      - const: tx
      - const: rx

patternProperties:
  "^.*@[0-9a-f]+$":
    type: object
    properties:
      reg:
        minimum: 0
        maximum: 3

      spi-rx-bus-width:
        const: 1

      spi-tx-bus-width:
        const: 1

unevaluatedProperties: false

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - interrupts
  - clocks

examples:
  - |
    spi@fff00000 {
      compatible = "snps,dw-apb-ssi";
      reg = <0xfff00000 0x1000>;
      #address-cells = <1>;
      #size-cells = <0>;
      interrupts = <0 154 4>;
      clocks = <&spi_m_clk>;
      num-cs = <2>;
      cs-gpios = <&gpio0 13 0>,
                 <&gpio0 14 0>;
    };
...