Lines Matching refs:wm8350
3 * wm8350.c -- WM8350 ALSA SoC audio driver
17 #include <linux/mfd/wm8350/audio.h>
18 #include <linux/mfd/wm8350/core.h>
28 #include "wm8350.h"
60 struct wm8350 *wm8350;
78 struct wm8350 *wm8350 = wm8350_data->wm8350;
83 reg = wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME);
91 wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME,
100 wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME,
108 reg = wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME);
115 wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME,
124 wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME,
132 wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME, WM8350_OUT1_VU);
143 struct wm8350 *wm8350 = wm8350_data->wm8350;
148 reg = wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME);
155 wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME,
164 wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME,
172 reg = wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME);
179 wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME,
188 wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME,
196 wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME, WM8350_OUT2_VU);
756 struct wm8350 *wm8350 = wm8350_data->wm8350;
761 wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_1,
768 wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_1,
778 wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_2,
781 wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_2,
910 struct wm8350 *wm8350 = wm8350_data->wm8350;
936 wm8350_set_bits(wm8350, WM8350_DAC_MUTE_VOLUME,
939 wm8350_clear_bits(wm8350, WM8350_DAC_MUTE_VOLUME,
988 printk(KERN_ERR "wm8350: fll freq %d out of range\n", output);
1027 struct wm8350 *wm8350 = priv->wm8350;
1036 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4,
1045 dev_dbg(wm8350->dev,
1066 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_OSC_ENA);
1067 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_ENA);
1079 struct wm8350 *wm8350 = priv->wm8350;
1081 wm8350->codec.platform_data;
1087 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
1089 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1095 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1);
1097 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1109 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4,
1113 wm8350_set_bits(wm8350, WM8350_DAC_MUTE,
1117 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
1129 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
1133 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1145 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
1149 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1155 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
1158 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0);
1162 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
1164 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1175 wm8350_set_bits(wm8350, WM8350_DAC_MUTE, WM8350_DAC_MUTE_ENA);
1177 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_3,
1182 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
1186 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
1188 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
1195 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
1203 pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
1205 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
1213 wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
1216 wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0);
1218 wm8350_clear_bits(wm8350, WM8350_LOUT1_VOLUME,
1220 wm8350_clear_bits(wm8350, WM8350_ROUT1_VOLUME,
1222 wm8350_clear_bits(wm8350, WM8350_LOUT2_VOLUME,
1224 wm8350_clear_bits(wm8350, WM8350_ROUT2_VOLUME,
1228 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4,
1242 struct wm8350 *wm8350 = priv->wm8350;
1246 reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS);
1275 struct wm8350 *wm8350 = priv->wm8350;
1281 if (device_may_wakeup(wm8350->dev))
1282 pm_wakeup_event(wm8350->dev, 250);
1293 struct wm8350 *wm8350 = priv->wm8350;
1299 if (device_may_wakeup(wm8350->dev))
1300 pm_wakeup_event(wm8350->dev, 250);
1323 struct wm8350 *wm8350 = priv->wm8350;
1344 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
1345 wm8350_set_bits(wm8350, WM8350_JACK_DETECT, ena);
1347 wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, ena);
1367 struct wm8350 *wm8350 = priv->wm8350;
1375 reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS);
1403 struct wm8350 *wm8350 = priv->wm8350;
1410 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
1411 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_1,
1414 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_1,
1439 .name = "wm8350-hifi",
1459 struct wm8350 *wm8350 = dev_get_platdata(component->dev);
1465 if (wm8350->codec.platform_data == NULL) {
1475 snd_soc_component_init_regmap(component, wm8350->regmap);
1478 priv->wm8350 = wm8350;
1483 ret = devm_regulator_bulk_get(wm8350->dev, ARRAY_SIZE(priv->supplies),
1489 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
1496 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
1506 out1->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME) &
1508 out1->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME) &
1510 out2->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME) &
1512 out2->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME) &
1514 wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME, 0);
1515 wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME, 0);
1516 wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME, 0);
1517 wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME, 0);
1520 wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME,
1522 wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME,
1524 wm8350_set_bits(wm8350, WM8350_ROUT1_VOLUME,
1526 wm8350_set_bits(wm8350, WM8350_ROUT2_VOLUME,
1530 wm8350_clear_bits(wm8350, WM8350_AI_FORMATING, WM8350_AIF_TRI);
1533 wm8350_clear_bits(wm8350, WM8350_ADC_DAC_COMP,
1537 wm8350_clear_bits(wm8350, WM8350_JACK_DETECT,
1540 ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L,
1546 ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R,
1552 ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD,
1557 ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICD,
1565 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv);
1567 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv);
1569 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv);
1577 struct wm8350 *wm8350 = dev_get_platdata(component->dev);
1579 wm8350_clear_bits(wm8350, WM8350_JACK_DETECT,
1581 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
1583 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICD, priv);
1584 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv);
1585 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv);
1586 wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv);
1599 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
1627 .name = "wm8350-codec",
1637 MODULE_ALIAS("platform:wm8350-codec");