Lines Matching defs:rt5682
3 // rt5682.c -- RT5682 ALSA SoC audio component driver
28 #include <sound/rt5682.h>
31 #include "rt5682.h"
38 .dai_clk_names[RT5682_DAI_WCLK_IDX] = "rt5682-dai-wclk",
39 .dai_clk_names[RT5682_DAI_BCLK_IDX] = "rt5682-dai-bclk",
57 struct rt5682_priv *rt5682 = container_of(work, struct rt5682_priv,
60 if (snd_soc_component_read(rt5682->component, RT5682_AJD1_CTRL) & RT5682_JDH_RS_MASK)
63 &rt5682->jack_detect_work, 0);
65 schedule_delayed_work(&rt5682->jd_check_work, 500);
70 struct rt5682_priv *rt5682 = data;
73 &rt5682->jack_detect_work, msecs_to_jiffies(rt5682->irq_work_delay_time));
80 .name = "rt5682-aif1",
99 .name = "rt5682-aif2",
114 struct rt5682_priv *rt5682 = data;
116 regulator_bulk_disable(ARRAY_SIZE(rt5682->supplies), rt5682->supplies);
122 struct rt5682_priv *rt5682;
126 rt5682 = devm_kzalloc(&i2c->dev, sizeof(struct rt5682_priv),
128 if (!rt5682)
131 i2c_set_clientdata(i2c, rt5682);
133 rt5682->i2c_dev = &i2c->dev;
135 rt5682->pdata = i2s_default_platform_data;
138 rt5682->pdata = *pdata;
140 rt5682_parse_dt(rt5682, &i2c->dev);
142 rt5682->regmap = devm_regmap_init_i2c(i2c, &rt5682_regmap);
143 if (IS_ERR(rt5682->regmap)) {
144 ret = PTR_ERR(rt5682->regmap);
150 for (i = 0; i < ARRAY_SIZE(rt5682->supplies); i++)
151 rt5682->supplies[i].supply = rt5682_supply_names[i];
153 ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(rt5682->supplies),
154 rt5682->supplies);
160 ret = regulator_bulk_enable(ARRAY_SIZE(rt5682->supplies),
161 rt5682->supplies);
168 rt5682);
172 ret = rt5682_get_ldo1(rt5682, &i2c->dev);
179 regmap_write(rt5682->regmap, RT5682_I2C_MODE, 0x1);
182 regmap_read(rt5682->regmap, RT5682_DEVICE_ID, &val);
185 "Device with ID register %x is not rt5682\n", val);
189 regmap_read(rt5682->regmap, RT5682_INT_DEVICE_ID, &val);
192 rt5682->ve_ic = true;
195 mutex_init(&rt5682->calibrate_mutex);
196 rt5682_calibrate(rt5682);
198 rt5682_apply_patch_list(rt5682, &i2c->dev);
200 regmap_write(rt5682->regmap, RT5682_DEPOP_1, 0x0000);
203 if (rt5682->pdata.dmic1_data_pin != RT5682_DMIC1_NULL) {
204 switch (rt5682->pdata.dmic1_data_pin) {
206 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
208 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
213 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
215 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
224 switch (rt5682->pdata.dmic1_clk_pin) {
226 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
231 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
233 if (rt5682->pdata.dmic_clk_driving_high)
234 regmap_update_bits(rt5682->regmap,
246 regmap_update_bits(rt5682->regmap, RT5682_PWR_ANLG_1,
249 regmap_write(rt5682->regmap, RT5682_MICBIAS_2, 0x0080);
250 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
253 regmap_write(rt5682->regmap, RT5682_TEST_MODE_CTRL_1, 0x0000);
254 regmap_update_bits(rt5682->regmap, RT5682_BIAS_CUR_CTRL_8,
256 regmap_update_bits(rt5682->regmap, RT5682_CHARGE_PUMP_1,
258 regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
260 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
263 INIT_DELAYED_WORK(&rt5682->jack_detect_work,
265 INIT_DELAYED_WORK(&rt5682->jd_check_work,
271 | IRQF_ONESHOT, "rt5682", rt5682);
273 rt5682->irq = i2c->irq;
280 rt5682->mclk = devm_clk_get_optional(&i2c->dev, "mclk");
281 if (IS_ERR(rt5682->mclk))
282 return PTR_ERR(rt5682->mclk);
285 ret = rt5682_register_dai_clks(rt5682);
290 rt5682->lrck[RT5682_AIF1] = 48000;
300 struct rt5682_priv *rt5682 = i2c_get_clientdata(client);
303 cancel_delayed_work_sync(&rt5682->jack_detect_work);
304 cancel_delayed_work_sync(&rt5682->jd_check_work);
306 rt5682_reset(rt5682);
327 {"rt5682"},
334 .name = "rt5682",