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 enum: 28 - enum: !! 28 - microchip,sam9x60-i2smcc 29 - microchip,sam9x60-i2smcc !! 29 - microchip,sama7g5-i2smcc 30 - microchip,sama7g5-i2smcc << 31 - items: << 32 - enum: << 33 - microchip,sam9x7-i2smcc << 34 - const: microchip,sam9x60-i2smcc << 35 30 36 reg: 31 reg: 37 maxItems: 1 32 maxItems: 1 38 33 39 interrupts: 34 interrupts: 40 maxItems: 1 35 maxItems: 1 41 36 42 clocks: 37 clocks: 43 items: 38 items: 44 - description: Peripheral Bus Clock 39 - description: Peripheral Bus Clock 45 - description: Generic Clock (Optional). 40 - description: Generic Clock (Optional). Should be set mostly when Master 46 Mode is required. 41 Mode is required. 47 minItems: 1 42 minItems: 1 48 43 49 clock-names: 44 clock-names: 50 items: 45 items: 51 - const: pclk 46 - const: pclk 52 - const: gclk 47 - const: gclk 53 minItems: 1 48 minItems: 1 54 49 55 dmas: 50 dmas: 56 items: 51 items: 57 - description: TX DMA Channel 52 - description: TX DMA Channel 58 - description: RX DMA Channel 53 - description: RX DMA Channel 59 54 60 dma-names: 55 dma-names: 61 items: 56 items: 62 - const: tx 57 - const: tx 63 - const: rx 58 - const: rx 64 59 65 microchip,tdm-data-pair: 60 microchip,tdm-data-pair: 66 description: 61 description: 67 Represents the DIN/DOUT pair pins that a 62 Represents the DIN/DOUT pair pins that are used to receive/send 68 TDM data. It is optional and it is only 63 TDM data. It is optional and it is only needed if the controller 69 uses the TDM mode. 64 uses the TDM mode. 70 $ref: /schemas/types.yaml#/definitions/uin 65 $ref: /schemas/types.yaml#/definitions/uint8 71 enum: [0, 1, 2, 3] 66 enum: [0, 1, 2, 3] 72 default: 0 67 default: 0 73 68 74 allOf: 69 allOf: 75 - $ref: dai-common.yaml# 70 - $ref: dai-common.yaml# 76 - if: 71 - if: 77 properties: 72 properties: 78 compatible: 73 compatible: 79 const: microchip,sam9x60-i2smcc 74 const: microchip,sam9x60-i2smcc 80 then: 75 then: 81 properties: 76 properties: 82 microchip,tdm-data-pair: false 77 microchip,tdm-data-pair: false 83 78 84 required: 79 required: 85 - "#sound-dai-cells" 80 - "#sound-dai-cells" 86 - compatible 81 - compatible 87 - reg 82 - reg 88 - interrupts 83 - interrupts 89 - clocks 84 - clocks 90 - clock-names 85 - clock-names 91 - dmas 86 - dmas 92 - dma-names 87 - dma-names 93 88 94 unevaluatedProperties: false 89 unevaluatedProperties: false 95 90 96 examples: 91 examples: 97 - | 92 - | 98 #include <dt-bindings/dma/at91.h> 93 #include <dt-bindings/dma/at91.h> 99 #include <dt-bindings/interrupt-controller 94 #include <dt-bindings/interrupt-controller/arm-gic.h> 100 95 101 i2s@f001c000 { 96 i2s@f001c000 { 102 #sound-dai-cells = <0>; 97 #sound-dai-cells = <0>; 103 compatible = "microchip,sam9x60-i2smcc 98 compatible = "microchip,sam9x60-i2smcc"; 104 reg = <0xf001c000 0x100>; 99 reg = <0xf001c000 0x100>; 105 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7 100 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>; 106 dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) 101 dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 107 AT91_XDMAC_DT_PERID(36) 102 AT91_XDMAC_DT_PERID(36))>, 108 <&dma0 (AT91_XDMAC_DT_MEM_IF(0) 103 <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 109 AT91_XDMAC_DT_PERID(37) 104 AT91_XDMAC_DT_PERID(37))>; 110 dma-names = "tx", "rx"; 105 dma-names = "tx", "rx"; 111 clocks = <&i2s_clk>, <&i2s_gclk>; 106 clocks = <&i2s_clk>, <&i2s_gclk>; 112 clock-names = "pclk", "gclk"; 107 clock-names = "pclk", "gclk"; 113 pinctrl-names = "default"; 108 pinctrl-names = "default"; 114 pinctrl-0 = <&pinctrl_i2s_default>; 109 pinctrl-0 = <&pinctrl_i2s_default>; 115 }; 110 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.