| * Atmel I2S controller |
| |
| Required properties: |
| - compatible: Should be "atmel,sama5d2-i2s". |
| - reg: Should be the physical base address of the controller and the |
| length of memory mapped region. |
| - interrupts: Should contain the interrupt for the controller. |
| - dmas: Should be one per channel name listed in the dma-names property, |
| as described in atmel-dma.txt and dma.txt files. |
| - dma-names: Two dmas have to be defined, "tx" and "rx". |
| This IP also supports one shared channel for both rx and tx; |
| if this mode is used, one "rx-tx" name must be used. |
| - clocks: Must contain an entry for each entry in clock-names. |
| Please refer to clock-bindings.txt. |
| - clock-names: Should be one of each entry matching the clocks phandles list: |
| - "pclk" (peripheral clock) Required. |
| - "gclk" (generated clock) Optional (1). |
| - "aclk" (Audio PLL clock) Optional (1). |
| - "muxclk" (I2S mux clock) Optional (1). |
| |
| Optional properties: |
| - pinctrl-0: Should specify pin control groups used for this controller. |
| - princtrl-names: Should contain only one value - "default". |
| |
| |
| (1) : Only the peripheral clock is required. The generated clock, the Audio |
| PLL clock adn the I2S mux clock are optional and should only be set |
| together, when Master Mode is required. |
| |
| Example: |
| |
| i2s@f8050000 { |
| compatible = "atmel,sama5d2-i2s"; |
| reg = <0xf8050000 0x300>; |
| interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>; |
| dmas = <&dma0 |
| (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | |
| AT91_XDMAC_DT_PERID(31))>, |
| <&dma0 |
| (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | |
| AT91_XDMAC_DT_PERID(32))>; |
| dma-names = "tx", "rx"; |
| clocks = <&i2s0_clk>, <&i2s0_gclk>, <&audio_pll_pmc>, <&i2s0muxck>; |
| clock-names = "pclk", "gclk", "aclk", "muxclk"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_i2s0_default>; |
| }; |