xref: /linux/Documentation/devicetree/bindings/sound/atmel,at91-ssc.yaml (revision 7a64bdfaf3e641862e8088a19205692b8b229753)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/atmel,at91-ssc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Atmel Serial Synchronous Serial (SSC)
8
9maintainers:
10  - Andrei Simion <andrei.simion@microchip.com>
11
12description:
13  The Atmel Synchronous Serial Controller (SSC) provides a versatile
14  synchronous communication link for audio and telecom applications,
15  supporting protocols like I2S, Short Frame Sync, and Long Frame Sync.
16
17properties:
18  compatible:
19    oneOf:
20      - enum:
21          - atmel,at91rm9200-ssc
22          - atmel,at91sam9g45-ssc
23      - items:
24          - enum:
25              - microchip,sam9x7-ssc
26          - const: atmel,at91sam9g45-ssc
27
28  reg:
29    maxItems: 1
30
31  interrupts:
32    maxItems: 1
33
34  clocks:
35    maxItems: 1
36
37  clock-names:
38    items:
39      - const: pclk
40
41  dmas:
42    items:
43      - description: TX DMA Channel
44      - description: RX DMA Channel
45
46  dma-names:
47    items:
48      - const: tx
49      - const: rx
50
51  atmel,clk-from-rk-pin:
52    description:
53      Specify the clock source for the SSC (Synchronous Serial Controller)
54      when operating in slave mode. By default, the clock is sourced from
55      the TK pin.
56    type: boolean
57
58  "#sound-dai-cells":
59    const: 0
60
61required:
62  - compatible
63  - reg
64  - interrupts
65  - clocks
66  - clock-names
67
68allOf:
69  - $ref: dai-common.yaml#
70  - if:
71      properties:
72        compatible:
73          contains:
74            enum:
75              - atmel,at91sam9g45-ssc
76    then:
77      required:
78        - dmas
79        - dma-names
80
81unevaluatedProperties: false
82
83examples:
84  - |
85    #include <dt-bindings/clock/at91.h>
86    #include <dt-bindings/dma/at91.h>
87    #include <dt-bindings/interrupt-controller/irq.h>
88
89    ssc@100000 {
90       compatible = "atmel,at91sam9g45-ssc";
91       reg = <0x100000 0x4000>;
92       interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
93       dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
94                     AT91_XDMAC_DT_PERID(38))>,
95              <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
96                     AT91_XDMAC_DT_PERID(39))>;
97       dma-names = "tx", "rx";
98       clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
99       clock-names = "pclk";
100       #sound-dai-cells = <0>;
101    };
102
103    ssc@c00000 {
104      compatible = "atmel,at91rm9200-ssc";
105      reg = <0xc00000 0x4000>;
106      interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
107      clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
108      clock-names = "pclk";
109    };
110