116 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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 Controller8 9maintainers:10 - Codrin Ciubotariu <codrin.ciubotariu@microchip.com>11 12description:13 The I2SMCC complies with the Inter-IC Sound (I2S) bus specification and14 supports a Time Division Multiplexed (TDM) interface with external15 multi-channel audio codecs. It consists of a receiver, a transmitter and a16 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) I2S19 multi-channel is supported by using multiple data pins, output and20 input, without TDM.21 22properties:23 "#sound-dai-cells":24 const: 025 26 compatible:27 oneOf:28 - enum:29 - microchip,sam9x60-i2smcc30 - microchip,sama7g5-i2smcc31 - items:32 - enum:33 - microchip,sam9x7-i2smcc34 - const: microchip,sam9x60-i2smcc35 36 reg:37 maxItems: 138 39 interrupts:40 maxItems: 141 42 clocks:43 items:44 - description: Peripheral Bus Clock45 - description: Generic Clock (Optional). Should be set mostly when Master46 Mode is required.47 minItems: 148 49 clock-names:50 items:51 - const: pclk52 - const: gclk53 minItems: 154 55 dmas:56 items:57 - description: TX DMA Channel58 - description: RX DMA Channel59 60 dma-names:61 items:62 - const: tx63 - const: rx64 65 microchip,tdm-data-pair:66 description:67 Represents the DIN/DOUT pair pins that are used to receive/send68 TDM data. It is optional and it is only needed if the controller69 uses the TDM mode.70 $ref: /schemas/types.yaml#/definitions/uint871 enum: [0, 1, 2, 3]72 default: 073 74allOf:75 - $ref: dai-common.yaml#76 - if:77 properties:78 compatible:79 const: microchip,sam9x60-i2smcc80 then:81 properties:82 microchip,tdm-data-pair: false83 84required:85 - "#sound-dai-cells"86 - compatible87 - reg88 - interrupts89 - clocks90 - clock-names91 - dmas92 - dma-names93 94unevaluatedProperties: false95 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