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