1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/samsung-i2s.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung SoC I2S controller 8 9maintainers: 10 - Krzysztof Kozlowski <krzk@kernel.org> 11 - Sylwester Nawrocki <s.nawrocki@samsung.com> 12 13properties: 14 compatible: 15 description: | 16 samsung,s3c6410-i2s: for 8/16/24bit stereo I2S. 17 18 samsung,s5pv210-i2s: for 8/16/24bit multichannel (5.1) I2S with 19 secondary FIFO, s/w reset control and internal mux for root clock 20 source. 21 22 samsung,exynos5420-i2s: for 8/16/24bit multichannel (5.1) I2S for 23 playback, stereo channel capture, secondary FIFO using internal 24 or external DMA, s/w reset control, internal mux for root clock 25 source and 7.1 channel TDM support for playback; TDM (Time division 26 multiplexing) is to allow transfer of multiple channel audio data on 27 single data line. 28 29 samsung,exynos7-i2s: with all the available features of Exynos5 I2S. 30 Exynos7 I2S has 7.1 channel TDM support for capture, secondary FIFO 31 with only external DMA and more number of root clock sampling 32 frequencies. 33 34 samsung,exynos7-i2s1: I2S1 on previous samsung platforms supports 35 stereo channels. Exynos7 I2S1 upgraded to 5.1 multichannel with 36 slightly modified bit offsets. 37 enum: 38 - samsung,s3c6410-i2s 39 - samsung,s5pv210-i2s 40 - samsung,exynos5420-i2s 41 - samsung,exynos7-i2s 42 - samsung,exynos7-i2s1 43 44 '#address-cells': 45 const: 1 46 47 '#size-cells': 48 const: 0 49 50 reg: 51 maxItems: 1 52 53 dmas: 54 minItems: 2 55 maxItems: 3 56 57 dma-names: 58 oneOf: 59 - items: 60 - const: tx 61 - const: rx 62 - items: 63 - const: tx 64 - const: rx 65 - const: tx-sec 66 67 assigned-clock-parents: true 68 assigned-clocks: true 69 70 clocks: 71 minItems: 1 72 maxItems: 3 73 74 clock-names: 75 oneOf: 76 - items: 77 - const: iis 78 - items: # for I2S0 79 - const: iis 80 - const: i2s_opclk0 81 - const: i2s_opclk1 82 - items: # for I2S1 and I2S2 83 - const: iis 84 - const: i2s_opclk0 85 description: | 86 "iis" is the I2S bus clock and i2s_opclk0, i2s_opclk1 are sources 87 of the root clock. I2S0 has internal mux to select the source 88 of root clock and I2S1 and I2S2 doesn't have any such mux. 89 90 "#clock-cells": 91 const: 1 92 93 clock-output-names: 94 deprecated: true 95 oneOf: 96 - items: # for I2S0 97 - const: i2s_cdclk0 98 - items: # for I2S1 99 - const: i2s_cdclk1 100 - items: # for I2S2 101 - const: i2s_cdclk2 102 description: Names of the CDCLK I2S output clocks. 103 104 interrupts: 105 maxItems: 1 106 107 samsung,idma-addr: 108 $ref: /schemas/types.yaml#/definitions/uint32 109 description: | 110 Internal DMA register base address of the audio 111 subsystem (used in secondary sound source). 112 113 pinctrl-0: 114 description: Should specify pin control groups used for this controller. 115 116 pinctrl-names: 117 const: default 118 119 power-domains: 120 maxItems: 1 121 122 "#sound-dai-cells": 123 const: 1 124 125required: 126 - compatible 127 - reg 128 - dmas 129 - dma-names 130 - clocks 131 - clock-names 132 133additionalProperties: false 134 135examples: 136 - | 137 #include <dt-bindings/clock/exynos-audss-clk.h> 138 139 i2s0: i2s@3830000 { 140 compatible = "samsung,s5pv210-i2s"; 141 reg = <0x03830000 0x100>; 142 dmas = <&pdma0 10>, 143 <&pdma0 9>, 144 <&pdma0 8>; 145 dma-names = "tx", "rx", "tx-sec"; 146 clocks = <&clock_audss EXYNOS_I2S_BUS>, 147 <&clock_audss EXYNOS_I2S_BUS>, 148 <&clock_audss EXYNOS_SCLK_I2S>; 149 clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; 150 #clock-cells = <1>; 151 samsung,idma-addr = <0x03000000>; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&i2s0_bus>; 154 #sound-dai-cells = <1>; 155 }; 156