xref: /linux/Documentation/devicetree/bindings/spi/spacemit,k1-spi.yaml (revision 9611c0ce215a66770ccbe5c126bf57ba8c31bcad)
1*b610d533SAlex Elder# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*b610d533SAlex Elder%YAML 1.2
3*b610d533SAlex Elder---
4*b610d533SAlex Elder$id: http://devicetree.org/schemas/spi/spacemit,k1-spi.yaml#
5*b610d533SAlex Elder$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b610d533SAlex Elder
7*b610d533SAlex Eldertitle: SpacemiT K1 SoC Serial Peripheral Interface (SPI)
8*b610d533SAlex Elder
9*b610d533SAlex Eldermaintainers:
10*b610d533SAlex Elder  - Alex Elder <elder@kernel.org>
11*b610d533SAlex Elder
12*b610d533SAlex Elderdescription:
13*b610d533SAlex Elder  The SpacemiT K1 SoC implements a SPI controller that has two 32-entry
14*b610d533SAlex Elder  FIFOs, for transmit and receive.  Details are currently available in
15*b610d533SAlex Elder  section 18.2.1 of the K1 User Manual, found in the SpacemiT Keystone
16*b610d533SAlex Elder  K1 Documentation[1].  The controller transfers words using PIO.  DMA
17*b610d533SAlex Elder  transfers are supported as well, if both TX and RX DMA channels are
18*b610d533SAlex Elder  specified,
19*b610d533SAlex Elder
20*b610d533SAlex Elder  [1] https://developer.spacemit.com/documentation
21*b610d533SAlex Elder
22*b610d533SAlex ElderallOf:
23*b610d533SAlex Elder  - $ref: /schemas/spi/spi-controller.yaml#
24*b610d533SAlex Elder
25*b610d533SAlex Elderproperties:
26*b610d533SAlex Elder  compatible:
27*b610d533SAlex Elder    const: spacemit,k1-spi
28*b610d533SAlex Elder
29*b610d533SAlex Elder  reg:
30*b610d533SAlex Elder    maxItems: 1
31*b610d533SAlex Elder
32*b610d533SAlex Elder  clocks:
33*b610d533SAlex Elder    items:
34*b610d533SAlex Elder      - description: Core clock
35*b610d533SAlex Elder      - description: Bus clock
36*b610d533SAlex Elder
37*b610d533SAlex Elder  clock-names:
38*b610d533SAlex Elder    items:
39*b610d533SAlex Elder      - const: core
40*b610d533SAlex Elder      - const: bus
41*b610d533SAlex Elder
42*b610d533SAlex Elder  resets:
43*b610d533SAlex Elder    maxItems: 1
44*b610d533SAlex Elder
45*b610d533SAlex Elder  interrupts:
46*b610d533SAlex Elder    maxItems: 1
47*b610d533SAlex Elder
48*b610d533SAlex Elder  dmas:
49*b610d533SAlex Elder    items:
50*b610d533SAlex Elder      - description: RX DMA channel
51*b610d533SAlex Elder      - description: TX DMA channel
52*b610d533SAlex Elder
53*b610d533SAlex Elder  dma-names:
54*b610d533SAlex Elder    items:
55*b610d533SAlex Elder      - const: rx
56*b610d533SAlex Elder      - const: tx
57*b610d533SAlex Elder
58*b610d533SAlex Elderrequired:
59*b610d533SAlex Elder  - compatible
60*b610d533SAlex Elder  - reg
61*b610d533SAlex Elder  - clocks
62*b610d533SAlex Elder  - clock-names
63*b610d533SAlex Elder  - resets
64*b610d533SAlex Elder  - interrupts
65*b610d533SAlex Elder
66*b610d533SAlex ElderunevaluatedProperties: false
67*b610d533SAlex Elder
68*b610d533SAlex Elderexamples:
69*b610d533SAlex Elder  - |
70*b610d533SAlex Elder
71*b610d533SAlex Elder    #include <dt-bindings/clock/spacemit,k1-syscon.h>
72*b610d533SAlex Elder    spi@d401c000 {
73*b610d533SAlex Elder        compatible = "spacemit,k1-spi";
74*b610d533SAlex Elder        reg = <0xd401c000 0x30>;
75*b610d533SAlex Elder        #address-cells = <1>;
76*b610d533SAlex Elder        #size-cells = <0>;
77*b610d533SAlex Elder        clocks = <&syscon_apbc CLK_SSP3>,
78*b610d533SAlex Elder                 <&syscon_apbc CLK_SSP3_BUS>;
79*b610d533SAlex Elder        clock-names = "core", "bus";
80*b610d533SAlex Elder        resets = <&syscon_apbc RESET_SSP3>;
81*b610d533SAlex Elder        interrupts = <55>;
82*b610d533SAlex Elder        dmas = <&pdma 20>, <&pdma 19>;
83*b610d533SAlex Elder        dma-names = "rx", "tx";
84*b610d533SAlex Elder    };
85