1STMicroelectronics sti ASoC cards 2 3The sti ASoC Sound Card can be used, for all sti SoCs using internal sti-sas 4codec or external codecs. 5 6sti sound drivers allows to expose sti SoC audio interface through the 7generic ASoC simple card. For details about sound card declaration please refer to 8Documentation/devicetree/bindings/sound/simple-card.txt. 9 101) sti-uniperiph-dai: audio dai device. 11--------------------------------------- 12 13Required properties: 14 - compatible: "st,stih407-uni-player-hdmi", "st,stih407-uni-player-pcm-out", 15 "st,stih407-uni-player-dac", "st,stih407-uni-player-spdif", 16 "st,stih407-uni-reader-pcm_in", "st,stih407-uni-reader-hdmi", 17 18 - st,syscfg: phandle to boot-device system configuration registers 19 20 - clock-names: name of the clocks listed in clocks property in the same order 21 22 - reg: CPU DAI IP Base address and size entries, listed in same 23 order than the CPU_DAI properties. 24 25 - reg-names: names of the mapped memory regions listed in regs property in 26 the same order. 27 28 - interrupts: CPU_DAI interrupt line, listed in the same order than the 29 CPU_DAI properties. 30 31 - dma: CPU_DAI DMA controller phandle and DMA request line, listed in the same 32 order than the CPU_DAI properties. 33 34 - dma-names: identifier string for each DMA request line in the dmas property. 35 "tx" for "st,sti-uni-player" compatibility 36 "rx" for "st,sti-uni-reader" compatibility 37 38Required properties ("st,sti-uni-player" compatibility only): 39 - clocks: CPU_DAI IP clock source, listed in the same order than the 40 CPU_DAI properties. 41 42Optional properties: 43 - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for 44 external codecs connection. 45 46 - pinctrl-names: should contain only one value - "default". 47 48 - st,tdm-mode: to declare to set TDM mode for unireader and uniplayer IPs. 49 Only compartible with IPs in charge of the external I2S/TDM bus. 50 Should be declared depending on associated codec. 51 52Example: 53 54 sti_uni_player1: sti-uni-player@0x8D81000 { 55 compatible = "st,stih407-uni-player-hdmi"; 56 status = "okay"; 57 #sound-dai-cells = <0>; 58 st,syscfg = <&syscfg_core>; 59 clocks = <&clk_s_d0_flexgen CLK_PCM_1>; 60 reg = <0x8D81000 0x158>; 61 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>; 62 dmas = <&fdma0 3 0 1>; 63 dma-names = "tx"; 64 st,tdm-mode = <1>; 65 }; 66 67 sti_uni_player2: sti-uni-player@0x8D82000 { 68 compatible = "st,stih407-uni-player-pcm-out"; 69 status = "okay"; 70 #sound-dai-cells = <0>; 71 st,syscfg = <&syscfg_core>; 72 clocks = <&clk_s_d0_flexgen CLK_PCM_2>; 73 reg = <0x8D82000 0x158>; 74 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>; 75 dmas = <&fdma0 4 0 1>; 76 dma-names = "tx"; 77 }; 78 79 sti_uni_player3: sti-uni-player@0x8D85000 { 80 compatible = "st,stih407-uni-player-spdif"; 81 status = "okay"; 82 #sound-dai-cells = <0>; 83 st,syscfg = <&syscfg_core>; 84 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>; 85 reg = <0x8D85000 0x158>; 86 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>; 87 dmas = <&fdma0 7 0 1>; 88 dma-names = "tx"; 89 }; 90 91 sti_uni_reader1: sti-uni-reader@0x8D84000 { 92 compatible = "st,stih407-uni-reader-hdmi"; 93 status = "disabled"; 94 #sound-dai-cells = <0>; 95 st,syscfg = <&syscfg_core>; 96 reg = <0x8D84000 0x158>; 97 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>; 98 dmas = <&fdma0 6 0 1>; 99 dma-names = "rx"; 100 }; 101 1022) sti-sas-codec: internal audio codec IPs driver 103------------------------------------------------- 104 105Required properties: 106 - compatible: "st,sti<chip>-sas-codec" . 107 Should be chip "st,stih416-sas-codec" or "st,stih407-sas-codec" 108 109 - st,syscfg: phandle to boot-device system configuration registers. 110 111 - pinctrl-0: SPDIF PIO description. 112 113 - pinctrl-names: should contain only one value - "default". 114 115Example: 116 sti_sas_codec: sti-sas-codec { 117 compatible = "st,stih407-sas-codec"; 118 #sound-dai-cells = <1>; 119 st,reg_audio = <&syscfg_core>; 120 pinctrl-names = "default"; 121 pinctrl-0 = <&pinctrl_spdif_out >; 122 }; 123 124Example of audio card declaration: 125 sound { 126 compatible = "simple-audio-card"; 127 simple-audio-card,name = "sti audio card"; 128 status = "okay"; 129 130 simple-audio-card,dai-link@0 { 131 /* DAC */ 132 format = "i2s"; 133 dai-tdm-slot-width = <32>; 134 cpu { 135 sound-dai = <&sti_uni_player2>; 136 }; 137 138 codec { 139 sound-dai = <&sti_sasg_codec 1>; 140 }; 141 }; 142 simple-audio-card,dai-link@1 { 143 /* SPDIF */ 144 format = "left_j"; 145 cpu { 146 sound-dai = <&sti_uni_player3>; 147 }; 148 149 codec { 150 sound-dai = <&sti_sasg_codec 0>; 151 }; 152 }; 153 simple-audio-card,dai-link@2 { 154 /* TDM playback */ 155 format = "left_j"; 156 frame-inversion = <1>; 157 cpu { 158 sound-dai = <&sti_uni_player1>; 159 dai-tdm-slot-num = <16>; 160 dai-tdm-slot-width = <16>; 161 dai-tdm-slot-tx-mask = 162 <1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1>; 163 }; 164 165 codec { 166 sound-dai = <&sti_sasg_codec 3>; 167 }; 168 }; 169 }; 170