1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/microchip,sama7g5-i2smcc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Microchip I2S Multi-Channel Controller 8 9maintainers: 10 - Codrin Ciubotariu <codrin.ciubotariu@microchip.com> 11 12description: 13 The I2SMCC complies with the Inter-IC Sound (I2S) bus specification and 14 supports a Time Division Multiplexed (TDM) interface with external 15 multi-channel audio codecs. It consists of a receiver, a transmitter and a 16 common clock generator that can be enabled separately to provide Adapter, 17 Client or Controller modes with receiver and/or transmitter active. 18 On later I2SMCC versions (starting with Microchip's SAMA7G5) I2S 19 multi-channel is supported by using multiple data pins, output and 20 input, without TDM. 21 22properties: 23 "#sound-dai-cells": 24 const: 0 25 26 compatible: 27 oneOf: 28 - enum: 29 - microchip,sam9x60-i2smcc 30 - microchip,sama7g5-i2smcc 31 - items: 32 - enum: 33 - microchip,sam9x7-i2smcc 34 - const: microchip,sam9x60-i2smcc 35 36 reg: 37 maxItems: 1 38 39 interrupts: 40 maxItems: 1 41 42 clocks: 43 items: 44 - description: Peripheral Bus Clock 45 - description: Generic Clock (Optional). Should be set mostly when Master 46 Mode is required. 47 minItems: 1 48 49 clock-names: 50 items: 51 - const: pclk 52 - const: gclk 53 minItems: 1 54 55 dmas: 56 items: 57 - description: TX DMA Channel 58 - description: RX DMA Channel 59 60 dma-names: 61 items: 62 - const: tx 63 - const: rx 64 65 microchip,tdm-data-pair: 66 description: 67 Represents the DIN/DOUT pair pins that are used to receive/send 68 TDM data. It is optional and it is only needed if the controller 69 uses the TDM mode. 70 $ref: /schemas/types.yaml#/definitions/uint8 71 enum: [0, 1, 2, 3] 72 default: 0 73 74allOf: 75 - $ref: dai-common.yaml# 76 - if: 77 properties: 78 compatible: 79 const: microchip,sam9x60-i2smcc 80 then: 81 properties: 82 microchip,tdm-data-pair: false 83 84required: 85 - "#sound-dai-cells" 86 - compatible 87 - reg 88 - interrupts 89 - clocks 90 - clock-names 91 - dmas 92 - dma-names 93 94unevaluatedProperties: false 95 96examples: 97 - | 98 #include <dt-bindings/dma/at91.h> 99 #include <dt-bindings/interrupt-controller/arm-gic.h> 100 101 i2s@f001c000 { 102 #sound-dai-cells = <0>; 103 compatible = "microchip,sam9x60-i2smcc"; 104 reg = <0xf001c000 0x100>; 105 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>; 106 dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 107 AT91_XDMAC_DT_PERID(36))>, 108 <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 109 AT91_XDMAC_DT_PERID(37))>; 110 dma-names = "tx", "rx"; 111 clocks = <&i2s_clk>, <&i2s_gclk>; 112 clock-names = "pclk", "gclk"; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&pinctrl_i2s_default>; 115 }; 116