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