Lines Matching refs:component
53 static int wm8753_hifi_write_dai_fmt(struct snd_soc_component *component,
55 static int wm8753_voice_write_dai_fmt(struct snd_soc_component *component,
227 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in wm8753_get_dai() local
228 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_get_dai()
237 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in wm8753_set_dai() local
238 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_set_dai()
244 if (snd_soc_component_is_active(component)) in wm8753_set_dai()
247 ioctl = snd_soc_component_read32(component, WM8753_IOCTL); in wm8753_set_dai()
255 snd_soc_component_write(component, WM8753_IOCTL, ioctl); in wm8753_set_dai()
258 wm8753_hifi_write_dai_fmt(component, wm8753->hifi_fmt); in wm8753_set_dai()
259 wm8753_voice_write_dai_fmt(component, wm8753->voice_fmt); in wm8753_set_dai()
743 struct snd_soc_component *component = codec_dai->component; in wm8753_set_dai_pll() local
751 reg = snd_soc_component_read32(component, WM8753_CLOCK) & 0xffef; in wm8753_set_dai_pll()
755 reg = snd_soc_component_read32(component, WM8753_CLOCK) & 0xfff7; in wm8753_set_dai_pll()
760 snd_soc_component_write(component, WM8753_PLL1CTL1 + offset, 0x0026); in wm8753_set_dai_pll()
761 snd_soc_component_write(component, WM8753_CLOCK, reg); in wm8753_set_dai_pll()
772 snd_soc_component_write(component, WM8753_PLL1CTL2 + offset, value); in wm8753_set_dai_pll()
776 snd_soc_component_write(component, WM8753_PLL1CTL3 + offset, value); in wm8753_set_dai_pll()
780 snd_soc_component_write(component, WM8753_PLL1CTL4 + offset, value); in wm8753_set_dai_pll()
783 snd_soc_component_write(component, WM8753_PLL1CTL1 + offset, 0x0027 | in wm8753_set_dai_pll()
785 snd_soc_component_write(component, WM8753_CLOCK, reg | enable); in wm8753_set_dai_pll()
864 struct snd_soc_component *component = codec_dai->component; in wm8753_set_dai_sysclk() local
865 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_set_dai_sysclk()
888 static int wm8753_vdac_adc_set_dai_fmt(struct snd_soc_component *component, in wm8753_vdac_adc_set_dai_fmt() argument
891 u16 voice = snd_soc_component_read32(component, WM8753_PCM) & 0x01ec; in wm8753_vdac_adc_set_dai_fmt()
913 snd_soc_component_write(component, WM8753_PCM, voice); in wm8753_vdac_adc_set_dai_fmt()
924 struct snd_soc_component *component = dai->component; in wm8753_pcm_hw_params() local
925 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_pcm_hw_params()
926 u16 voice = snd_soc_component_read32(component, WM8753_PCM) & 0x01f3; in wm8753_pcm_hw_params()
927 u16 srate = snd_soc_component_read32(component, WM8753_SRATE1) & 0x017f; in wm8753_pcm_hw_params()
947 snd_soc_component_write(component, WM8753_SRATE1, srate); in wm8753_pcm_hw_params()
949 snd_soc_component_write(component, WM8753_PCM, voice); in wm8753_pcm_hw_params()
956 static int wm8753_pcm_set_dai_fmt(struct snd_soc_component *component, in wm8753_pcm_set_dai_fmt() argument
961 voice = snd_soc_component_read32(component, WM8753_PCM) & 0x011f; in wm8753_pcm_set_dai_fmt()
962 ioctl = snd_soc_component_read32(component, WM8753_IOCTL) & 0x015d; in wm8753_pcm_set_dai_fmt()
1016 snd_soc_component_write(component, WM8753_PCM, voice); in wm8753_pcm_set_dai_fmt()
1017 snd_soc_component_write(component, WM8753_IOCTL, ioctl); in wm8753_pcm_set_dai_fmt()
1024 struct snd_soc_component *component = codec_dai->component; in wm8753_set_dai_clkdiv() local
1029 reg = snd_soc_component_read32(component, WM8753_CLOCK) & 0x003f; in wm8753_set_dai_clkdiv()
1030 snd_soc_component_write(component, WM8753_CLOCK, reg | div); in wm8753_set_dai_clkdiv()
1033 reg = snd_soc_component_read32(component, WM8753_SRATE2) & 0x01c7; in wm8753_set_dai_clkdiv()
1034 snd_soc_component_write(component, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1037 reg = snd_soc_component_read32(component, WM8753_SRATE2) & 0x003f; in wm8753_set_dai_clkdiv()
1038 snd_soc_component_write(component, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1049 static int wm8753_hdac_set_dai_fmt(struct snd_soc_component *component, in wm8753_hdac_set_dai_fmt() argument
1052 u16 hifi = snd_soc_component_read32(component, WM8753_HIFI) & 0x01e0; in wm8753_hdac_set_dai_fmt()
1074 snd_soc_component_write(component, WM8753_HIFI, hifi); in wm8753_hdac_set_dai_fmt()
1081 static int wm8753_i2s_set_dai_fmt(struct snd_soc_component *component, in wm8753_i2s_set_dai_fmt() argument
1086 hifi = snd_soc_component_read32(component, WM8753_HIFI) & 0x013f; in wm8753_i2s_set_dai_fmt()
1087 ioctl = snd_soc_component_read32(component, WM8753_IOCTL) & 0x00ae; in wm8753_i2s_set_dai_fmt()
1141 snd_soc_component_write(component, WM8753_HIFI, hifi); in wm8753_i2s_set_dai_fmt()
1142 snd_soc_component_write(component, WM8753_IOCTL, ioctl); in wm8753_i2s_set_dai_fmt()
1153 struct snd_soc_component *component = dai->component; in wm8753_i2s_hw_params() local
1154 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_i2s_hw_params()
1155 u16 srate = snd_soc_component_read32(component, WM8753_SRATE1) & 0x01c0; in wm8753_i2s_hw_params()
1156 u16 hifi = snd_soc_component_read32(component, WM8753_HIFI) & 0x01f3; in wm8753_i2s_hw_params()
1165 snd_soc_component_write(component, WM8753_SRATE1, srate | (coeff_div[coeff].sr << 1) | in wm8753_i2s_hw_params()
1183 snd_soc_component_write(component, WM8753_HIFI, hifi); in wm8753_i2s_hw_params()
1187 static int wm8753_mode1v_set_dai_fmt(struct snd_soc_component *component, in wm8753_mode1v_set_dai_fmt() argument
1193 clock = snd_soc_component_read32(component, WM8753_CLOCK) & 0xfffb; in wm8753_mode1v_set_dai_fmt()
1194 snd_soc_component_write(component, WM8753_CLOCK, clock); in wm8753_mode1v_set_dai_fmt()
1196 return wm8753_vdac_adc_set_dai_fmt(component, fmt); in wm8753_mode1v_set_dai_fmt()
1199 static int wm8753_mode1h_set_dai_fmt(struct snd_soc_component *component, in wm8753_mode1h_set_dai_fmt() argument
1202 return wm8753_hdac_set_dai_fmt(component, fmt); in wm8753_mode1h_set_dai_fmt()
1205 static int wm8753_mode2_set_dai_fmt(struct snd_soc_component *component, in wm8753_mode2_set_dai_fmt() argument
1211 clock = snd_soc_component_read32(component, WM8753_CLOCK) & 0xfffb; in wm8753_mode2_set_dai_fmt()
1212 snd_soc_component_write(component, WM8753_CLOCK, clock); in wm8753_mode2_set_dai_fmt()
1214 return wm8753_vdac_adc_set_dai_fmt(component, fmt); in wm8753_mode2_set_dai_fmt()
1217 static int wm8753_mode3_4_set_dai_fmt(struct snd_soc_component *component, in wm8753_mode3_4_set_dai_fmt() argument
1223 clock = snd_soc_component_read32(component, WM8753_CLOCK) & 0xfffb; in wm8753_mode3_4_set_dai_fmt()
1224 snd_soc_component_write(component, WM8753_CLOCK, clock | 0x4); in wm8753_mode3_4_set_dai_fmt()
1226 if (wm8753_hdac_set_dai_fmt(component, fmt) < 0) in wm8753_mode3_4_set_dai_fmt()
1228 return wm8753_vdac_adc_set_dai_fmt(component, fmt); in wm8753_mode3_4_set_dai_fmt()
1231 static int wm8753_hifi_write_dai_fmt(struct snd_soc_component *component, in wm8753_hifi_write_dai_fmt() argument
1234 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_hifi_write_dai_fmt()
1239 ret = wm8753_mode1h_set_dai_fmt(component, fmt); in wm8753_hifi_write_dai_fmt()
1242 ret = wm8753_mode2_set_dai_fmt(component, fmt); in wm8753_hifi_write_dai_fmt()
1246 ret = wm8753_mode3_4_set_dai_fmt(component, fmt); in wm8753_hifi_write_dai_fmt()
1254 return wm8753_i2s_set_dai_fmt(component, fmt); in wm8753_hifi_write_dai_fmt()
1260 struct snd_soc_component *component = codec_dai->component; in wm8753_hifi_set_dai_fmt() local
1261 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_hifi_set_dai_fmt()
1265 return wm8753_hifi_write_dai_fmt(component, fmt); in wm8753_hifi_set_dai_fmt()
1268 static int wm8753_voice_write_dai_fmt(struct snd_soc_component *component, in wm8753_voice_write_dai_fmt() argument
1271 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_voice_write_dai_fmt()
1277 ret = wm8753_mode1v_set_dai_fmt(component, fmt); in wm8753_voice_write_dai_fmt()
1280 ret = wm8753_pcm_set_dai_fmt(component, fmt); in wm8753_voice_write_dai_fmt()
1290 struct snd_soc_component *component = codec_dai->component; in wm8753_voice_set_dai_fmt() local
1291 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_voice_set_dai_fmt()
1295 return wm8753_voice_write_dai_fmt(component, fmt); in wm8753_voice_set_dai_fmt()
1300 struct snd_soc_component *component = dai->component; in wm8753_mute() local
1301 u16 mute_reg = snd_soc_component_read32(component, WM8753_DAC) & 0xfff7; in wm8753_mute()
1302 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_mute()
1307 if (!snd_soc_component_is_active(component)) in wm8753_mute()
1308 snd_soc_component_write(component, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1311 snd_soc_component_write(component, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1313 snd_soc_component_write(component, WM8753_DAC, mute_reg); in wm8753_mute()
1328 static int wm8753_set_bias_level(struct snd_soc_component *component, in wm8753_set_bias_level() argument
1331 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_set_bias_level()
1332 u16 pwr_reg = snd_soc_component_read32(component, WM8753_PWR1) & 0xfe3e; in wm8753_set_bias_level()
1337 snd_soc_component_write(component, WM8753_PWR1, pwr_reg | 0x00c0); in wm8753_set_bias_level()
1344 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) { in wm8753_set_bias_level()
1346 snd_soc_component_write(component, WM8753_PWR1, pwr_reg | 0x01c1); in wm8753_set_bias_level()
1351 snd_soc_component_write(component, WM8753_PWR1, pwr_reg | 0x0141); in wm8753_set_bias_level()
1356 snd_soc_component_write(component, WM8753_PWR1, 0x0001); in wm8753_set_bias_level()
1438 static int wm8753_resume(struct snd_soc_component *component) in wm8753_resume() argument
1440 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_resume()
1447 static int wm8753_probe(struct snd_soc_component *component) in wm8753_probe() argument
1449 struct wm8753_priv *wm8753 = snd_soc_component_get_drvdata(component); in wm8753_probe()
1454 ret = wm8753_reset(component); in wm8753_probe()
1456 dev_err(component->dev, "Failed to issue reset: %d\n", ret); in wm8753_probe()
1463 snd_soc_component_update_bits(component, WM8753_LDAC, 0x0100, 0x0100); in wm8753_probe()
1464 snd_soc_component_update_bits(component, WM8753_RDAC, 0x0100, 0x0100); in wm8753_probe()
1465 snd_soc_component_update_bits(component, WM8753_LADC, 0x0100, 0x0100); in wm8753_probe()
1466 snd_soc_component_update_bits(component, WM8753_RADC, 0x0100, 0x0100); in wm8753_probe()
1467 snd_soc_component_update_bits(component, WM8753_LOUT1V, 0x0100, 0x0100); in wm8753_probe()
1468 snd_soc_component_update_bits(component, WM8753_ROUT1V, 0x0100, 0x0100); in wm8753_probe()
1469 snd_soc_component_update_bits(component, WM8753_LOUT2V, 0x0100, 0x0100); in wm8753_probe()
1470 snd_soc_component_update_bits(component, WM8753_ROUT2V, 0x0100, 0x0100); in wm8753_probe()
1471 snd_soc_component_update_bits(component, WM8753_LINVOL, 0x0100, 0x0100); in wm8753_probe()
1472 snd_soc_component_update_bits(component, WM8753_RINVOL, 0x0100, 0x0100); in wm8753_probe()