xref: /freebsd/sys/contrib/device-tree/Bindings/sound/atmel,at91-ssc.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
18ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28ccc0d23SEmmanuel Vadot%YAML 1.2
38ccc0d23SEmmanuel Vadot---
48ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/sound/atmel,at91-ssc.yaml#
58ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68ccc0d23SEmmanuel Vadot
78ccc0d23SEmmanuel Vadottitle: Atmel Serial Synchronous Serial (SSC)
88ccc0d23SEmmanuel Vadot
98ccc0d23SEmmanuel Vadotmaintainers:
108ccc0d23SEmmanuel Vadot  - Andrei Simion <andrei.simion@microchip.com>
118ccc0d23SEmmanuel Vadot
128ccc0d23SEmmanuel Vadotdescription:
138ccc0d23SEmmanuel Vadot  The Atmel Synchronous Serial Controller (SSC) provides a versatile
148ccc0d23SEmmanuel Vadot  synchronous communication link for audio and telecom applications,
158ccc0d23SEmmanuel Vadot  supporting protocols like I2S, Short Frame Sync, and Long Frame Sync.
168ccc0d23SEmmanuel Vadot
178ccc0d23SEmmanuel Vadotproperties:
188ccc0d23SEmmanuel Vadot  compatible:
19*833e5d42SEmmanuel Vadot    oneOf:
20*833e5d42SEmmanuel Vadot      - enum:
218ccc0d23SEmmanuel Vadot          - atmel,at91rm9200-ssc
228ccc0d23SEmmanuel Vadot          - atmel,at91sam9g45-ssc
23*833e5d42SEmmanuel Vadot      - items:
24*833e5d42SEmmanuel Vadot          - enum:
25*833e5d42SEmmanuel Vadot              - microchip,sam9x7-ssc
26*833e5d42SEmmanuel Vadot          - const: atmel,at91sam9g45-ssc
278ccc0d23SEmmanuel Vadot
288ccc0d23SEmmanuel Vadot  reg:
298ccc0d23SEmmanuel Vadot    maxItems: 1
308ccc0d23SEmmanuel Vadot
318ccc0d23SEmmanuel Vadot  interrupts:
328ccc0d23SEmmanuel Vadot    maxItems: 1
338ccc0d23SEmmanuel Vadot
348ccc0d23SEmmanuel Vadot  clocks:
358ccc0d23SEmmanuel Vadot    maxItems: 1
368ccc0d23SEmmanuel Vadot
378ccc0d23SEmmanuel Vadot  clock-names:
388ccc0d23SEmmanuel Vadot    items:
398ccc0d23SEmmanuel Vadot      - const: pclk
408ccc0d23SEmmanuel Vadot
418ccc0d23SEmmanuel Vadot  dmas:
428ccc0d23SEmmanuel Vadot    items:
438ccc0d23SEmmanuel Vadot      - description: TX DMA Channel
448ccc0d23SEmmanuel Vadot      - description: RX DMA Channel
458ccc0d23SEmmanuel Vadot
468ccc0d23SEmmanuel Vadot  dma-names:
478ccc0d23SEmmanuel Vadot    items:
488ccc0d23SEmmanuel Vadot      - const: tx
498ccc0d23SEmmanuel Vadot      - const: rx
508ccc0d23SEmmanuel Vadot
518ccc0d23SEmmanuel Vadot  atmel,clk-from-rk-pin:
528ccc0d23SEmmanuel Vadot    description:
538ccc0d23SEmmanuel Vadot      Specify the clock source for the SSC (Synchronous Serial Controller)
548ccc0d23SEmmanuel Vadot      when operating in slave mode. By default, the clock is sourced from
558ccc0d23SEmmanuel Vadot      the TK pin.
568ccc0d23SEmmanuel Vadot    type: boolean
578ccc0d23SEmmanuel Vadot
588ccc0d23SEmmanuel Vadot  "#sound-dai-cells":
598ccc0d23SEmmanuel Vadot    const: 0
608ccc0d23SEmmanuel Vadot
618ccc0d23SEmmanuel Vadotrequired:
628ccc0d23SEmmanuel Vadot  - compatible
638ccc0d23SEmmanuel Vadot  - reg
648ccc0d23SEmmanuel Vadot  - interrupts
658ccc0d23SEmmanuel Vadot  - clocks
668ccc0d23SEmmanuel Vadot  - clock-names
678ccc0d23SEmmanuel Vadot
688ccc0d23SEmmanuel VadotallOf:
698ccc0d23SEmmanuel Vadot  - $ref: dai-common.yaml#
708ccc0d23SEmmanuel Vadot  - if:
718ccc0d23SEmmanuel Vadot      properties:
728ccc0d23SEmmanuel Vadot        compatible:
738ccc0d23SEmmanuel Vadot          contains:
748ccc0d23SEmmanuel Vadot            enum:
758ccc0d23SEmmanuel Vadot              - atmel,at91sam9g45-ssc
768ccc0d23SEmmanuel Vadot    then:
778ccc0d23SEmmanuel Vadot      required:
788ccc0d23SEmmanuel Vadot        - dmas
798ccc0d23SEmmanuel Vadot        - dma-names
808ccc0d23SEmmanuel Vadot
818ccc0d23SEmmanuel VadotunevaluatedProperties: false
828ccc0d23SEmmanuel Vadot
838ccc0d23SEmmanuel Vadotexamples:
848ccc0d23SEmmanuel Vadot  - |
858ccc0d23SEmmanuel Vadot    #include <dt-bindings/clock/at91.h>
868ccc0d23SEmmanuel Vadot    #include <dt-bindings/dma/at91.h>
878ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
888ccc0d23SEmmanuel Vadot
898ccc0d23SEmmanuel Vadot    ssc@100000 {
908ccc0d23SEmmanuel Vadot       compatible = "atmel,at91sam9g45-ssc";
918ccc0d23SEmmanuel Vadot       reg = <0x100000 0x4000>;
928ccc0d23SEmmanuel Vadot       interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
938ccc0d23SEmmanuel Vadot       dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
948ccc0d23SEmmanuel Vadot                     AT91_XDMAC_DT_PERID(38))>,
958ccc0d23SEmmanuel Vadot              <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
968ccc0d23SEmmanuel Vadot                     AT91_XDMAC_DT_PERID(39))>;
978ccc0d23SEmmanuel Vadot       dma-names = "tx", "rx";
988ccc0d23SEmmanuel Vadot       clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
998ccc0d23SEmmanuel Vadot       clock-names = "pclk";
1008ccc0d23SEmmanuel Vadot       #sound-dai-cells = <0>;
1018ccc0d23SEmmanuel Vadot    };
1028ccc0d23SEmmanuel Vadot
1038ccc0d23SEmmanuel Vadot    ssc@c00000 {
1048ccc0d23SEmmanuel Vadot      compatible = "atmel,at91rm9200-ssc";
1058ccc0d23SEmmanuel Vadot      reg = <0xc00000 0x4000>;
1068ccc0d23SEmmanuel Vadot      interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
1078ccc0d23SEmmanuel Vadot      clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
1088ccc0d23SEmmanuel Vadot      clock-names = "pclk";
1098ccc0d23SEmmanuel Vadot    };
110