12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 22eb4d8dcSEmmanuel Vadot%YAML 1.2 32eb4d8dcSEmmanuel Vadot--- 42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/mchp,i2s-mcc.yaml# 52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 62eb4d8dcSEmmanuel Vadot 72eb4d8dcSEmmanuel Vadottitle: Microchip I2S Multi-Channel Controller 82eb4d8dcSEmmanuel Vadot 92eb4d8dcSEmmanuel Vadotmaintainers: 102eb4d8dcSEmmanuel Vadot - Codrin Ciubotariu <codrin.ciubotariu@microchip.com> 112eb4d8dcSEmmanuel Vadot 122eb4d8dcSEmmanuel Vadotdescription: 132eb4d8dcSEmmanuel Vadot The I2SMCC complies with the Inter-IC Sound (I2S) bus specification and 142eb4d8dcSEmmanuel Vadot supports a Time Division Multiplexed (TDM) interface with external 152eb4d8dcSEmmanuel Vadot multi-channel audio codecs. It consists of a receiver, a transmitter and a 162eb4d8dcSEmmanuel Vadot common clock generator that can be enabled separately to provide Adapter, 172eb4d8dcSEmmanuel Vadot Client or Controller modes with receiver and/or transmitter active. 182eb4d8dcSEmmanuel Vadot On later I2SMCC versions (starting with Microchip's SAMA7G5) I2S 192eb4d8dcSEmmanuel Vadot multi-channel is supported by using multiple data pins, output and 202eb4d8dcSEmmanuel Vadot input, without TDM. 212eb4d8dcSEmmanuel Vadot 222eb4d8dcSEmmanuel Vadotproperties: 232eb4d8dcSEmmanuel Vadot "#sound-dai-cells": 242eb4d8dcSEmmanuel Vadot const: 0 252eb4d8dcSEmmanuel Vadot 262eb4d8dcSEmmanuel Vadot compatible: 272eb4d8dcSEmmanuel Vadot enum: 282eb4d8dcSEmmanuel Vadot - microchip,sam9x60-i2smcc 292eb4d8dcSEmmanuel Vadot - microchip,sama7g5-i2smcc 302eb4d8dcSEmmanuel Vadot 312eb4d8dcSEmmanuel Vadot reg: 322eb4d8dcSEmmanuel Vadot maxItems: 1 332eb4d8dcSEmmanuel Vadot 342eb4d8dcSEmmanuel Vadot interrupts: 352eb4d8dcSEmmanuel Vadot maxItems: 1 362eb4d8dcSEmmanuel Vadot 372eb4d8dcSEmmanuel Vadot clocks: 382eb4d8dcSEmmanuel Vadot items: 392eb4d8dcSEmmanuel Vadot - description: Peripheral Bus Clock 402eb4d8dcSEmmanuel Vadot - description: Generic Clock (Optional). Should be set mostly when Master 412eb4d8dcSEmmanuel Vadot Mode is required. 422eb4d8dcSEmmanuel Vadot minItems: 1 432eb4d8dcSEmmanuel Vadot 442eb4d8dcSEmmanuel Vadot clock-names: 452eb4d8dcSEmmanuel Vadot items: 462eb4d8dcSEmmanuel Vadot - const: pclk 472eb4d8dcSEmmanuel Vadot - const: gclk 482eb4d8dcSEmmanuel Vadot minItems: 1 492eb4d8dcSEmmanuel Vadot 502eb4d8dcSEmmanuel Vadot dmas: 512eb4d8dcSEmmanuel Vadot items: 522eb4d8dcSEmmanuel Vadot - description: TX DMA Channel 532eb4d8dcSEmmanuel Vadot - description: RX DMA Channel 542eb4d8dcSEmmanuel Vadot 552eb4d8dcSEmmanuel Vadot dma-names: 562eb4d8dcSEmmanuel Vadot items: 572eb4d8dcSEmmanuel Vadot - const: tx 582eb4d8dcSEmmanuel Vadot - const: rx 592eb4d8dcSEmmanuel Vadot 602eb4d8dcSEmmanuel Vadot microchip,tdm-data-pair: 612eb4d8dcSEmmanuel Vadot description: 622eb4d8dcSEmmanuel Vadot Represents the DIN/DOUT pair pins that are used to receive/send 632eb4d8dcSEmmanuel Vadot TDM data. It is optional and it is only needed if the controller 642eb4d8dcSEmmanuel Vadot uses the TDM mode. 652eb4d8dcSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 662eb4d8dcSEmmanuel Vadot enum: [0, 1, 2, 3] 672eb4d8dcSEmmanuel Vadot default: 0 682eb4d8dcSEmmanuel Vadot 69*8bab661aSEmmanuel VadotallOf: 70*8bab661aSEmmanuel Vadot - $ref: dai-common.yaml# 71*8bab661aSEmmanuel Vadot - if: 722eb4d8dcSEmmanuel Vadot properties: 732eb4d8dcSEmmanuel Vadot compatible: 742eb4d8dcSEmmanuel Vadot const: microchip,sam9x60-i2smcc 752eb4d8dcSEmmanuel Vadot then: 762eb4d8dcSEmmanuel Vadot properties: 772eb4d8dcSEmmanuel Vadot microchip,tdm-data-pair: false 782eb4d8dcSEmmanuel Vadot 792eb4d8dcSEmmanuel Vadotrequired: 802eb4d8dcSEmmanuel Vadot - "#sound-dai-cells" 812eb4d8dcSEmmanuel Vadot - compatible 822eb4d8dcSEmmanuel Vadot - reg 832eb4d8dcSEmmanuel Vadot - interrupts 842eb4d8dcSEmmanuel Vadot - clocks 852eb4d8dcSEmmanuel Vadot - clock-names 862eb4d8dcSEmmanuel Vadot - dmas 872eb4d8dcSEmmanuel Vadot - dma-names 882eb4d8dcSEmmanuel Vadot 89*8bab661aSEmmanuel VadotunevaluatedProperties: false 902eb4d8dcSEmmanuel Vadot 912eb4d8dcSEmmanuel Vadotexamples: 922eb4d8dcSEmmanuel Vadot - | 932eb4d8dcSEmmanuel Vadot #include <dt-bindings/dma/at91.h> 942eb4d8dcSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 952eb4d8dcSEmmanuel Vadot 962eb4d8dcSEmmanuel Vadot i2s@f001c000 { 972eb4d8dcSEmmanuel Vadot #sound-dai-cells = <0>; 982eb4d8dcSEmmanuel Vadot compatible = "microchip,sam9x60-i2smcc"; 992eb4d8dcSEmmanuel Vadot reg = <0xf001c000 0x100>; 1002eb4d8dcSEmmanuel Vadot interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>; 1012eb4d8dcSEmmanuel Vadot dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 1022eb4d8dcSEmmanuel Vadot AT91_XDMAC_DT_PERID(36))>, 1032eb4d8dcSEmmanuel Vadot <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 1042eb4d8dcSEmmanuel Vadot AT91_XDMAC_DT_PERID(37))>; 1052eb4d8dcSEmmanuel Vadot dma-names = "tx", "rx"; 1062eb4d8dcSEmmanuel Vadot clocks = <&i2s_clk>, <&i2s_gclk>; 1072eb4d8dcSEmmanuel Vadot clock-names = "pclk", "gclk"; 1082eb4d8dcSEmmanuel Vadot pinctrl-names = "default"; 1092eb4d8dcSEmmanuel Vadot pinctrl-0 = <&pinctrl_i2s_default>; 1102eb4d8dcSEmmanuel Vadot }; 111