Lines Matching refs:rt5682
3 // rt5682.c -- RT5682 ALSA SoC audio component driver
30 #include <sound/rt5682.h>
33 #include "rt5682.h"
40 .dai_clk_names[RT5682_DAI_WCLK_IDX] = "rt5682-dai-wclk",
41 .dai_clk_names[RT5682_DAI_BCLK_IDX] = "rt5682-dai-bclk",
59 struct rt5682_priv *rt5682 = container_of(work, struct rt5682_priv,
62 if (snd_soc_component_read(rt5682->component, RT5682_AJD1_CTRL)
65 rt5682->jack_type = rt5682_headset_detect(rt5682->component, 0);
67 snd_soc_jack_report(rt5682->hs_jack, rt5682->jack_type,
72 schedule_delayed_work(&rt5682->jd_check_work, 500);
78 struct rt5682_priv *rt5682 = data;
81 &rt5682->jack_detect_work, msecs_to_jiffies(250));
88 .name = "rt5682-aif1",
107 .name = "rt5682-aif2",
122 struct rt5682_priv *rt5682 = data;
124 regulator_bulk_disable(ARRAY_SIZE(rt5682->supplies), rt5682->supplies);
131 struct rt5682_priv *rt5682;
135 rt5682 = devm_kzalloc(&i2c->dev, sizeof(struct rt5682_priv),
137 if (!rt5682)
140 i2c_set_clientdata(i2c, rt5682);
142 rt5682->pdata = i2s_default_platform_data;
145 rt5682->pdata = *pdata;
147 rt5682_parse_dt(rt5682, &i2c->dev);
149 rt5682->regmap = devm_regmap_init_i2c(i2c, &rt5682_regmap);
150 if (IS_ERR(rt5682->regmap)) {
151 ret = PTR_ERR(rt5682->regmap);
157 for (i = 0; i < ARRAY_SIZE(rt5682->supplies); i++)
158 rt5682->supplies[i].supply = rt5682_supply_names[i];
160 ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(rt5682->supplies),
161 rt5682->supplies);
168 rt5682);
172 ret = regulator_bulk_enable(ARRAY_SIZE(rt5682->supplies),
173 rt5682->supplies);
179 if (gpio_is_valid(rt5682->pdata.ldo1_en)) {
180 if (devm_gpio_request_one(&i2c->dev, rt5682->pdata.ldo1_en,
181 GPIOF_OUT_INIT_HIGH, "rt5682"))
188 regmap_write(rt5682->regmap, RT5682_I2C_MODE, 0x1);
191 regmap_read(rt5682->regmap, RT5682_DEVICE_ID, &val);
194 "Device with ID register %x is not rt5682\n", val);
198 mutex_init(&rt5682->calibrate_mutex);
199 rt5682_calibrate(rt5682);
201 rt5682_apply_patch_list(rt5682, &i2c->dev);
203 regmap_write(rt5682->regmap, RT5682_DEPOP_1, 0x0000);
206 if (rt5682->pdata.dmic1_data_pin != RT5682_DMIC1_NULL) {
207 switch (rt5682->pdata.dmic1_data_pin) {
209 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
211 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
216 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
218 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
227 switch (rt5682->pdata.dmic1_clk_pin) {
229 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
234 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
244 regmap_update_bits(rt5682->regmap, RT5682_PWR_ANLG_1,
247 regmap_write(rt5682->regmap, RT5682_MICBIAS_2, 0x0080);
248 regmap_update_bits(rt5682->regmap, RT5682_GPIO_CTRL_1,
251 regmap_write(rt5682->regmap, RT5682_TEST_MODE_CTRL_1, 0x0000);
252 regmap_update_bits(rt5682->regmap, RT5682_BIAS_CUR_CTRL_8,
254 regmap_update_bits(rt5682->regmap, RT5682_CHARGE_PUMP_1,
256 regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
258 regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
261 INIT_DELAYED_WORK(&rt5682->jack_detect_work,
263 INIT_DELAYED_WORK(&rt5682->jd_check_work,
269 | IRQF_ONESHOT, "rt5682", rt5682);
281 struct rt5682_priv *rt5682 = i2c_get_clientdata(client);
284 cancel_delayed_work_sync(&rt5682->jack_detect_work);
285 cancel_delayed_work_sync(&rt5682->jd_check_work);
287 rt5682_reset(rt5682);
310 {"rt5682", 0},
317 .name = "rt5682",