xref: /linux/Documentation/devicetree/bindings/sound/atmel,at91-ssc.yaml (revision 7a64bdfaf3e641862e8088a19205692b8b229753)
16603c513SAndrei Simion# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26603c513SAndrei Simion%YAML 1.2
36603c513SAndrei Simion---
46603c513SAndrei Simion$id: http://devicetree.org/schemas/sound/atmel,at91-ssc.yaml#
56603c513SAndrei Simion$schema: http://devicetree.org/meta-schemas/core.yaml#
66603c513SAndrei Simion
76603c513SAndrei Simiontitle: Atmel Serial Synchronous Serial (SSC)
86603c513SAndrei Simion
96603c513SAndrei Simionmaintainers:
106603c513SAndrei Simion  - Andrei Simion <andrei.simion@microchip.com>
116603c513SAndrei Simion
126603c513SAndrei Simiondescription:
136603c513SAndrei Simion  The Atmel Synchronous Serial Controller (SSC) provides a versatile
146603c513SAndrei Simion  synchronous communication link for audio and telecom applications,
156603c513SAndrei Simion  supporting protocols like I2S, Short Frame Sync, and Long Frame Sync.
166603c513SAndrei Simion
176603c513SAndrei Simionproperties:
186603c513SAndrei Simion  compatible:
19*da98e8b9SVarshini Rajendran    oneOf:
20*da98e8b9SVarshini Rajendran      - enum:
216603c513SAndrei Simion          - atmel,at91rm9200-ssc
226603c513SAndrei Simion          - atmel,at91sam9g45-ssc
23*da98e8b9SVarshini Rajendran      - items:
24*da98e8b9SVarshini Rajendran          - enum:
25*da98e8b9SVarshini Rajendran              - microchip,sam9x7-ssc
26*da98e8b9SVarshini Rajendran          - const: atmel,at91sam9g45-ssc
276603c513SAndrei Simion
286603c513SAndrei Simion  reg:
296603c513SAndrei Simion    maxItems: 1
306603c513SAndrei Simion
316603c513SAndrei Simion  interrupts:
326603c513SAndrei Simion    maxItems: 1
336603c513SAndrei Simion
346603c513SAndrei Simion  clocks:
356603c513SAndrei Simion    maxItems: 1
366603c513SAndrei Simion
376603c513SAndrei Simion  clock-names:
386603c513SAndrei Simion    items:
396603c513SAndrei Simion      - const: pclk
406603c513SAndrei Simion
416603c513SAndrei Simion  dmas:
426603c513SAndrei Simion    items:
436603c513SAndrei Simion      - description: TX DMA Channel
446603c513SAndrei Simion      - description: RX DMA Channel
456603c513SAndrei Simion
466603c513SAndrei Simion  dma-names:
476603c513SAndrei Simion    items:
486603c513SAndrei Simion      - const: tx
496603c513SAndrei Simion      - const: rx
506603c513SAndrei Simion
516603c513SAndrei Simion  atmel,clk-from-rk-pin:
526603c513SAndrei Simion    description:
536603c513SAndrei Simion      Specify the clock source for the SSC (Synchronous Serial Controller)
546603c513SAndrei Simion      when operating in slave mode. By default, the clock is sourced from
556603c513SAndrei Simion      the TK pin.
566603c513SAndrei Simion    type: boolean
576603c513SAndrei Simion
586603c513SAndrei Simion  "#sound-dai-cells":
596603c513SAndrei Simion    const: 0
606603c513SAndrei Simion
616603c513SAndrei Simionrequired:
626603c513SAndrei Simion  - compatible
636603c513SAndrei Simion  - reg
646603c513SAndrei Simion  - interrupts
656603c513SAndrei Simion  - clocks
666603c513SAndrei Simion  - clock-names
676603c513SAndrei Simion
686603c513SAndrei SimionallOf:
696603c513SAndrei Simion  - $ref: dai-common.yaml#
706603c513SAndrei Simion  - if:
716603c513SAndrei Simion      properties:
726603c513SAndrei Simion        compatible:
736603c513SAndrei Simion          contains:
746603c513SAndrei Simion            enum:
756603c513SAndrei Simion              - atmel,at91sam9g45-ssc
766603c513SAndrei Simion    then:
776603c513SAndrei Simion      required:
786603c513SAndrei Simion        - dmas
796603c513SAndrei Simion        - dma-names
806603c513SAndrei Simion
816603c513SAndrei SimionunevaluatedProperties: false
826603c513SAndrei Simion
836603c513SAndrei Simionexamples:
846603c513SAndrei Simion  - |
856603c513SAndrei Simion    #include <dt-bindings/clock/at91.h>
866603c513SAndrei Simion    #include <dt-bindings/dma/at91.h>
876603c513SAndrei Simion    #include <dt-bindings/interrupt-controller/irq.h>
886603c513SAndrei Simion
896603c513SAndrei Simion    ssc@100000 {
906603c513SAndrei Simion       compatible = "atmel,at91sam9g45-ssc";
916603c513SAndrei Simion       reg = <0x100000 0x4000>;
926603c513SAndrei Simion       interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
936603c513SAndrei Simion       dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
946603c513SAndrei Simion                     AT91_XDMAC_DT_PERID(38))>,
956603c513SAndrei Simion              <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
966603c513SAndrei Simion                     AT91_XDMAC_DT_PERID(39))>;
976603c513SAndrei Simion       dma-names = "tx", "rx";
986603c513SAndrei Simion       clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
996603c513SAndrei Simion       clock-names = "pclk";
1006603c513SAndrei Simion       #sound-dai-cells = <0>;
1016603c513SAndrei Simion    };
1026603c513SAndrei Simion
1036603c513SAndrei Simion    ssc@c00000 {
1046603c513SAndrei Simion      compatible = "atmel,at91rm9200-ssc";
1056603c513SAndrei Simion      reg = <0xc00000 0x4000>;
1066603c513SAndrei Simion      interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
1076603c513SAndrei Simion      clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
1086603c513SAndrei Simion      clock-names = "pclk";
1096603c513SAndrei Simion    };
110