xref: /freebsd/sys/contrib/device-tree/Bindings/sound/atmel,sama5d2-i2s.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1*b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*b97ee269SEmmanuel Vadot# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
3*b97ee269SEmmanuel Vadot%YAML 1.2
4*b97ee269SEmmanuel Vadot---
5*b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/sound/atmel,sama5d2-i2s.yaml#
6*b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7*b97ee269SEmmanuel Vadot
8*b97ee269SEmmanuel Vadottitle: Atmel I2S controller
9*b97ee269SEmmanuel Vadot
10*b97ee269SEmmanuel Vadotmaintainers:
11*b97ee269SEmmanuel Vadot  - Nicolas Ferre <nicolas.ferre@microchip.com>
12*b97ee269SEmmanuel Vadot  - Alexandre Belloni <alexandre.belloni@bootlin.com>
13*b97ee269SEmmanuel Vadot  - Claudiu Beznea <claudiu.beznea@microchip.com>
14*b97ee269SEmmanuel Vadot
15*b97ee269SEmmanuel Vadotdescription:
16*b97ee269SEmmanuel Vadot  Atmel I2S (Inter-IC Sound Controller) bus is the standard
17*b97ee269SEmmanuel Vadot  interface for connecting audio devices, such as audio codecs.
18*b97ee269SEmmanuel Vadot
19*b97ee269SEmmanuel Vadotproperties:
20*b97ee269SEmmanuel Vadot  compatible:
21*b97ee269SEmmanuel Vadot    const: atmel,sama5d2-i2s
22*b97ee269SEmmanuel Vadot
23*b97ee269SEmmanuel Vadot  reg:
24*b97ee269SEmmanuel Vadot    maxItems: 1
25*b97ee269SEmmanuel Vadot
26*b97ee269SEmmanuel Vadot  interrupts:
27*b97ee269SEmmanuel Vadot    maxItems: 1
28*b97ee269SEmmanuel Vadot
29*b97ee269SEmmanuel Vadot  clocks:
30*b97ee269SEmmanuel Vadot    items:
31*b97ee269SEmmanuel Vadot      - description: Peripheral clock
32*b97ee269SEmmanuel Vadot      - description: Generated clock (Optional)
33*b97ee269SEmmanuel Vadot      - description: I2S mux clock (Optional). Set
34*b97ee269SEmmanuel Vadot          with gclk when Master Mode is required.
35*b97ee269SEmmanuel Vadot    minItems: 1
36*b97ee269SEmmanuel Vadot
37*b97ee269SEmmanuel Vadot  clock-names:
38*b97ee269SEmmanuel Vadot    items:
39*b97ee269SEmmanuel Vadot      - const: pclk
40*b97ee269SEmmanuel Vadot      - const: gclk
41*b97ee269SEmmanuel Vadot      - const: muxclk
42*b97ee269SEmmanuel Vadot    minItems: 1
43*b97ee269SEmmanuel Vadot
44*b97ee269SEmmanuel Vadot  dmas:
45*b97ee269SEmmanuel Vadot    items:
46*b97ee269SEmmanuel Vadot      - description: TX DMA Channel
47*b97ee269SEmmanuel Vadot      - description: RX DMA Channel
48*b97ee269SEmmanuel Vadot
49*b97ee269SEmmanuel Vadot  dma-names:
50*b97ee269SEmmanuel Vadot    items:
51*b97ee269SEmmanuel Vadot      - const: tx
52*b97ee269SEmmanuel Vadot      - const: rx
53*b97ee269SEmmanuel Vadot
54*b97ee269SEmmanuel Vadotrequired:
55*b97ee269SEmmanuel Vadot  - compatible
56*b97ee269SEmmanuel Vadot  - reg
57*b97ee269SEmmanuel Vadot  - interrupts
58*b97ee269SEmmanuel Vadot  - dmas
59*b97ee269SEmmanuel Vadot  - dma-names
60*b97ee269SEmmanuel Vadot  - clocks
61*b97ee269SEmmanuel Vadot  - clock-names
62*b97ee269SEmmanuel Vadot
63*b97ee269SEmmanuel VadotadditionalProperties: false
64*b97ee269SEmmanuel Vadot
65*b97ee269SEmmanuel Vadotexamples:
66*b97ee269SEmmanuel Vadot  - |
67*b97ee269SEmmanuel Vadot    #include <dt-bindings/dma/at91.h>
68*b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
69*b97ee269SEmmanuel Vadot
70*b97ee269SEmmanuel Vadot    i2s@f8050000 {
71*b97ee269SEmmanuel Vadot        compatible = "atmel,sama5d2-i2s";
72*b97ee269SEmmanuel Vadot        reg = <0xf8050000 0x300>;
73*b97ee269SEmmanuel Vadot        interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
74*b97ee269SEmmanuel Vadot        dmas = <&dma0
75*b97ee269SEmmanuel Vadot                (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
76*b97ee269SEmmanuel Vadot                AT91_XDMAC_DT_PERID(31))>,
77*b97ee269SEmmanuel Vadot               <&dma0
78*b97ee269SEmmanuel Vadot                (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
79*b97ee269SEmmanuel Vadot                AT91_XDMAC_DT_PERID(32))>;
80*b97ee269SEmmanuel Vadot        dma-names = "tx", "rx";
81*b97ee269SEmmanuel Vadot        clocks = <&i2s0_clk>, <&i2s0_gclk>, <&i2s0muxck>;
82*b97ee269SEmmanuel Vadot        clock-names = "pclk", "gclk", "muxclk";
83*b97ee269SEmmanuel Vadot        pinctrl-names = "default";
84*b97ee269SEmmanuel Vadot        pinctrl-0 = <&pinctrl_i2s0_default>;
85*b97ee269SEmmanuel Vadot    };
86