rt5677            556 sound/soc/codecs/rt5677.c static int rt5677_dsp_mode_i2c_write_addr(struct rt5677_priv *rt5677,
rt5677            559 sound/soc/codecs/rt5677.c 	struct snd_soc_component *component = rt5677->component;
rt5677            562 sound/soc/codecs/rt5677.c 	mutex_lock(&rt5677->dsp_cmd_lock);
rt5677            564 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_ADDR_MSB,
rt5677            571 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_ADDR_LSB,
rt5677            578 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_DATA_MSB,
rt5677            585 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_DATA_LSB,
rt5677            592 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_OP_CODE,
rt5677            600 sound/soc/codecs/rt5677.c 	mutex_unlock(&rt5677->dsp_cmd_lock);
rt5677            615 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677, unsigned int addr, unsigned int *value)
rt5677            617 sound/soc/codecs/rt5677.c 	struct snd_soc_component *component = rt5677->component;
rt5677            621 sound/soc/codecs/rt5677.c 	mutex_lock(&rt5677->dsp_cmd_lock);
rt5677            623 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_ADDR_MSB,
rt5677            630 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_ADDR_LSB,
rt5677            637 sound/soc/codecs/rt5677.c 	ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_OP_CODE,
rt5677            644 sound/soc/codecs/rt5677.c 	regmap_read(rt5677->regmap_physical, RT5677_DSP_I2C_DATA_MSB, &msb);
rt5677            645 sound/soc/codecs/rt5677.c 	regmap_read(rt5677->regmap_physical, RT5677_DSP_I2C_DATA_LSB, &lsb);
rt5677            649 sound/soc/codecs/rt5677.c 	mutex_unlock(&rt5677->dsp_cmd_lock);
rt5677            663 sound/soc/codecs/rt5677.c static int rt5677_dsp_mode_i2c_write(struct rt5677_priv *rt5677,
rt5677            666 sound/soc/codecs/rt5677.c 	return rt5677_dsp_mode_i2c_write_addr(rt5677, 0x18020000 + reg * 2,
rt5677            680 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677, unsigned int reg, unsigned int *value)
rt5677            682 sound/soc/codecs/rt5677.c 	int ret = rt5677_dsp_mode_i2c_read_addr(rt5677, 0x18020000 + reg * 2,
rt5677            692 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            695 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_DSP1,
rt5677            697 sound/soc/codecs/rt5677.c 		rt5677->is_dsp_mode = true;
rt5677            699 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_DSP1,
rt5677            701 sound/soc/codecs/rt5677.c 		rt5677->is_dsp_mode = false;
rt5677            707 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            717 sound/soc/codecs/rt5677.c 		regcache_cache_only(rt5677->regmap, false);
rt5677            718 sound/soc/codecs/rt5677.c 		regcache_cache_bypass(rt5677->regmap, true);
rt5677            720 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x1, 0x1);
rt5677            721 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap,
rt5677            723 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG1,
rt5677            725 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677            727 sound/soc/codecs/rt5677.c 		switch (rt5677->type) {
rt5677            729 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677            731 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK2,
rt5677            738 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK2,
rt5677            745 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_PWR_DSP2, 0x07ff);
rt5677            746 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_PWR_DSP1, 0x07fd);
rt5677            749 sound/soc/codecs/rt5677.c 		ret = request_firmware(&rt5677->fw1, RT5677_FIRMWARE1,
rt5677            752 sound/soc/codecs/rt5677.c 			rt5677_spi_write_firmware(0x50000000, rt5677->fw1);
rt5677            753 sound/soc/codecs/rt5677.c 			release_firmware(rt5677->fw1);
rt5677            756 sound/soc/codecs/rt5677.c 		ret = request_firmware(&rt5677->fw2, RT5677_FIRMWARE2,
rt5677            759 sound/soc/codecs/rt5677.c 			rt5677_spi_write_firmware(0x60000000, rt5677->fw2);
rt5677            760 sound/soc/codecs/rt5677.c 			release_firmware(rt5677->fw2);
rt5677            763 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_DSP1, 0x1, 0x0);
rt5677            765 sound/soc/codecs/rt5677.c 		regcache_cache_bypass(rt5677->regmap, false);
rt5677            766 sound/soc/codecs/rt5677.c 		regcache_cache_only(rt5677->regmap, true);
rt5677            770 sound/soc/codecs/rt5677.c 		regcache_cache_only(rt5677->regmap, false);
rt5677            771 sound/soc/codecs/rt5677.c 		regcache_cache_bypass(rt5677->regmap, true);
rt5677            773 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_DSP1, 0x1, 0x1);
rt5677            775 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_PWR_DSP1, 0x0001);
rt5677            777 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec);
rt5677            779 sound/soc/codecs/rt5677.c 		regcache_cache_bypass(rt5677->regmap, false);
rt5677            780 sound/soc/codecs/rt5677.c 		regcache_mark_dirty(rt5677->regmap);
rt5677            781 sound/soc/codecs/rt5677.c 		regcache_sync(rt5677->regmap);
rt5677            807 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            809 sound/soc/codecs/rt5677.c 	ucontrol->value.integer.value[0] = rt5677->dsp_vad_en;
rt5677            818 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            820 sound/soc/codecs/rt5677.c 	rt5677->dsp_vad_en = !!ucontrol->value.integer.value[0];
rt5677            823 sound/soc/codecs/rt5677.c 		rt5677_set_dsp_vad(component, rt5677->dsp_vad_en);
rt5677            918 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            921 sound/soc/codecs/rt5677.c 	rate = rt5677->sysclk / rl6231_get_pre_div(rt5677->regmap,
rt5677            927 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_DMIC_CTRL1,
rt5677            936 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677            939 sound/soc/codecs/rt5677.c 	regmap_read(rt5677->regmap, RT5677_GLB_CLK1, &val);
rt5677            951 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           1018 sound/soc/codecs/rt5677.c 	regmap_read(rt5677->regmap, reg, &val);
rt5677           1034 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           1036 sound/soc/codecs/rt5677.c 	if (rt5677->sysclk > rt5677->lrck[RT5677_AIF1] * 384)
rt5677           1059 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           1107 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_3, asrc3_mask,
rt5677           1136 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_4, asrc4_mask,
rt5677           1165 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_5, asrc5_mask,
rt5677           1182 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_6, asrc6_mask,
rt5677           1199 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_7, asrc7_mask,
rt5677           1228 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_ASRC_8, asrc8_mask,
rt5677           1239 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           1244 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_5, &asrc_setting);
rt5677           1250 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_5, &asrc_setting);
rt5677           1256 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_5, &asrc_setting);
rt5677           1262 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_5, &asrc_setting);
rt5677           1268 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_6, &asrc_setting);
rt5677           1274 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_ASRC_6, &asrc_setting);
rt5677           2400 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2404 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2409 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2424 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2428 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2433 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2448 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2452 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x2);
rt5677           2456 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x0);
rt5677           2470 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2474 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x2);
rt5677           2478 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x0);
rt5677           2492 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2496 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2503 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           2519 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2524 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_TDM1_CTRL2, &value);
rt5677           2526 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_TDM1_CTRL1,
rt5677           2542 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2547 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap, RT5677_TDM2_CTRL2, &value);
rt5677           2549 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_TDM2_CTRL1,
rt5677           2565 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           2570 sound/soc/codecs/rt5677.c 			!rt5677->is_vref_slow) {
rt5677           2572 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG1,
rt5677           2575 sound/soc/codecs/rt5677.c 			rt5677->is_vref_slow = true;
rt5677           4106 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4110 sound/soc/codecs/rt5677.c 	rt5677->lrck[dai->id] = params_rate(params);
rt5677           4111 sound/soc/codecs/rt5677.c 	pre_div = rl6231_get_clk_info(rt5677->sysclk, rt5677->lrck[dai->id]);
rt5677           4114 sound/soc/codecs/rt5677.c 			rt5677->sysclk, rt5677->lrck[dai->id]);
rt5677           4123 sound/soc/codecs/rt5677.c 	rt5677->bclk[dai->id] = rt5677->lrck[dai->id] * (32 << bclk_ms);
rt5677           4126 sound/soc/codecs/rt5677.c 		rt5677->bclk[dai->id], rt5677->lrck[dai->id]);
rt5677           4150 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S1_SDP,
rt5677           4152 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_CLK_TREE_CTRL1,
rt5677           4158 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S2_SDP,
rt5677           4160 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_CLK_TREE_CTRL1,
rt5677           4167 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S3_SDP,
rt5677           4169 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_CLK_TREE_CTRL1,
rt5677           4176 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S4_SDP,
rt5677           4178 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_CLK_TREE_CTRL1,
rt5677           4191 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4196 sound/soc/codecs/rt5677.c 		rt5677->master[dai->id] = 1;
rt5677           4200 sound/soc/codecs/rt5677.c 		rt5677->master[dai->id] = 0;
rt5677           4234 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S1_SDP,
rt5677           4239 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S2_SDP,
rt5677           4244 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S3_SDP,
rt5677           4249 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_I2S4_SDP,
rt5677           4265 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4268 sound/soc/codecs/rt5677.c 	if (freq == rt5677->sysclk && clk_id == rt5677->sysclk_src)
rt5677           4285 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4287 sound/soc/codecs/rt5677.c 	rt5677->sysclk = freq;
rt5677           4288 sound/soc/codecs/rt5677.c 	rt5677->sysclk_src = clk_id;
rt5677           4318 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4322 sound/soc/codecs/rt5677.c 	if (source == rt5677->pll_src && freq_in == rt5677->pll_in &&
rt5677           4323 sound/soc/codecs/rt5677.c 	    freq_out == rt5677->pll_out)
rt5677           4329 sound/soc/codecs/rt5677.c 		rt5677->pll_in = 0;
rt5677           4330 sound/soc/codecs/rt5677.c 		rt5677->pll_out = 0;
rt5677           4331 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4338 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4347 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4351 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4355 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4359 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_GLB_CLK1,
rt5677           4381 sound/soc/codecs/rt5677.c 	regmap_write(rt5677->regmap, RT5677_PLL1_CTRL1,
rt5677           4383 sound/soc/codecs/rt5677.c 	regmap_write(rt5677->regmap, RT5677_PLL1_CTRL2,
rt5677           4387 sound/soc/codecs/rt5677.c 	rt5677->pll_in = freq_in;
rt5677           4388 sound/soc/codecs/rt5677.c 	rt5677->pll_out = freq_out;
rt5677           4389 sound/soc/codecs/rt5677.c 	rt5677->pll_src = source;
rt5677           4398 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4439 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_TDM1_CTRL1, 0x1f00,
rt5677           4441 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x8000,
rt5677           4445 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_TDM2_CTRL1, 0x1f00,
rt5677           4447 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x80,
rt5677           4460 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4470 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG1,
rt5677           4474 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap,
rt5677           4477 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG1,
rt5677           4483 sound/soc/codecs/rt5677.c 			rt5677->is_vref_slow = false;
rt5677           4484 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           4486 sound/soc/codecs/rt5677.c 			regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC,
rt5677           4495 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x1, 0x0);
rt5677           4496 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_PWR_DIG1, 0x0000);
rt5677           4497 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap, RT5677_PWR_ANLG1,
rt5677           4500 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_PWR_ANLG2,
rt5677           4502 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap,
rt5677           4505 sound/soc/codecs/rt5677.c 		if (rt5677->dsp_vad_en)
rt5677           4519 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = gpiochip_get_data(chip);
rt5677           4523 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2,
rt5677           4528 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3,
rt5677           4540 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = gpiochip_get_data(chip);
rt5677           4544 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2,
rt5677           4550 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3,
rt5677           4564 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = gpiochip_get_data(chip);
rt5677           4567 sound/soc/codecs/rt5677.c 	ret = regmap_read(rt5677->regmap, RT5677_GPIO_ST, &value);
rt5677           4576 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = gpiochip_get_data(chip);
rt5677           4580 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2,
rt5677           4585 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3,
rt5677           4601 sound/soc/codecs/rt5677.c static void rt5677_gpio_config(struct rt5677_priv *rt5677, unsigned offset,
rt5677           4609 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap,
rt5677           4617 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap,
rt5677           4630 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = gpiochip_get_data(chip);
rt5677           4633 sound/soc/codecs/rt5677.c 	if ((rt5677->pdata.jd1_gpio == 1 && offset == RT5677_GPIO1) ||
rt5677           4634 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd1_gpio == 2 &&
rt5677           4636 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd1_gpio == 3 &&
rt5677           4639 sound/soc/codecs/rt5677.c 	} else if ((rt5677->pdata.jd2_gpio == 1 && offset == RT5677_GPIO4) ||
rt5677           4640 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd2_gpio == 2 &&
rt5677           4642 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd2_gpio == 3 &&
rt5677           4645 sound/soc/codecs/rt5677.c 	} else if ((rt5677->pdata.jd3_gpio == 1 &&
rt5677           4647 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd3_gpio == 2 &&
rt5677           4649 sound/soc/codecs/rt5677.c 		(rt5677->pdata.jd3_gpio == 3 &&
rt5677           4656 sound/soc/codecs/rt5677.c 	return irq_create_mapping(rt5677->domain, irq);
rt5677           4672 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
rt5677           4675 sound/soc/codecs/rt5677.c 	rt5677->gpio_chip = rt5677_template_chip;
rt5677           4676 sound/soc/codecs/rt5677.c 	rt5677->gpio_chip.ngpio = RT5677_GPIO_NUM;
rt5677           4677 sound/soc/codecs/rt5677.c 	rt5677->gpio_chip.parent = &i2c->dev;
rt5677           4678 sound/soc/codecs/rt5677.c 	rt5677->gpio_chip.base = -1;
rt5677           4680 sound/soc/codecs/rt5677.c 	ret = gpiochip_add_data(&rt5677->gpio_chip, rt5677);
rt5677           4687 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
rt5677           4689 sound/soc/codecs/rt5677.c 	gpiochip_remove(&rt5677->gpio_chip);
rt5677           4692 sound/soc/codecs/rt5677.c static void rt5677_gpio_config(struct rt5677_priv *rt5677, unsigned offset,
rt5677           4709 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4712 sound/soc/codecs/rt5677.c 	rt5677->component = component;
rt5677           4714 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.dmic2_clk_pin == RT5677_DMIC_CLK2) {
rt5677           4726 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC,
rt5677           4728 sound/soc/codecs/rt5677.c 	regmap_write(rt5677->regmap, RT5677_PWR_DSP2,
rt5677           4732 sound/soc/codecs/rt5677.c 		rt5677_gpio_config(rt5677, i, rt5677->pdata.gpio_config[i]);
rt5677           4734 sound/soc/codecs/rt5677.c 	mutex_init(&rt5677->dsp_cmd_lock);
rt5677           4735 sound/soc/codecs/rt5677.c 	mutex_init(&rt5677->dsp_pri_lock);
rt5677           4742 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4744 sound/soc/codecs/rt5677.c 	regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec);
rt5677           4745 sound/soc/codecs/rt5677.c 	gpiod_set_value_cansleep(rt5677->pow_ldo2, 0);
rt5677           4746 sound/soc/codecs/rt5677.c 	gpiod_set_value_cansleep(rt5677->reset_pin, 1);
rt5677           4752 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4754 sound/soc/codecs/rt5677.c 	if (!rt5677->dsp_vad_en) {
rt5677           4755 sound/soc/codecs/rt5677.c 		regcache_cache_only(rt5677->regmap, true);
rt5677           4756 sound/soc/codecs/rt5677.c 		regcache_mark_dirty(rt5677->regmap);
rt5677           4758 sound/soc/codecs/rt5677.c 		gpiod_set_value_cansleep(rt5677->pow_ldo2, 0);
rt5677           4759 sound/soc/codecs/rt5677.c 		gpiod_set_value_cansleep(rt5677->reset_pin, 1);
rt5677           4767 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = snd_soc_component_get_drvdata(component);
rt5677           4769 sound/soc/codecs/rt5677.c 	if (!rt5677->dsp_vad_en) {
rt5677           4770 sound/soc/codecs/rt5677.c 		rt5677->pll_src = 0;
rt5677           4771 sound/soc/codecs/rt5677.c 		rt5677->pll_in = 0;
rt5677           4772 sound/soc/codecs/rt5677.c 		rt5677->pll_out = 0;
rt5677           4773 sound/soc/codecs/rt5677.c 		gpiod_set_value_cansleep(rt5677->pow_ldo2, 1);
rt5677           4774 sound/soc/codecs/rt5677.c 		gpiod_set_value_cansleep(rt5677->reset_pin, 0);
rt5677           4775 sound/soc/codecs/rt5677.c 		if (rt5677->pow_ldo2 || rt5677->reset_pin)
rt5677           4778 sound/soc/codecs/rt5677.c 		regcache_cache_only(rt5677->regmap, false);
rt5677           4779 sound/soc/codecs/rt5677.c 		regcache_sync(rt5677->regmap);
rt5677           4792 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = i2c_get_clientdata(client);
rt5677           4794 sound/soc/codecs/rt5677.c 	if (rt5677->is_dsp_mode) {
rt5677           4796 sound/soc/codecs/rt5677.c 			mutex_lock(&rt5677->dsp_pri_lock);
rt5677           4797 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_write(rt5677, RT5677_PRIV_INDEX,
rt5677           4799 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_read(rt5677, RT5677_PRIV_DATA, val);
rt5677           4800 sound/soc/codecs/rt5677.c 			mutex_unlock(&rt5677->dsp_pri_lock);
rt5677           4802 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_read(rt5677, reg, val);
rt5677           4805 sound/soc/codecs/rt5677.c 		regmap_read(rt5677->regmap_physical, reg, val);
rt5677           4814 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = i2c_get_clientdata(client);
rt5677           4816 sound/soc/codecs/rt5677.c 	if (rt5677->is_dsp_mode) {
rt5677           4818 sound/soc/codecs/rt5677.c 			mutex_lock(&rt5677->dsp_pri_lock);
rt5677           4819 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_write(rt5677, RT5677_PRIV_INDEX,
rt5677           4821 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_write(rt5677, RT5677_PRIV_DATA,
rt5677           4823 sound/soc/codecs/rt5677.c 			mutex_unlock(&rt5677->dsp_pri_lock);
rt5677           4825 sound/soc/codecs/rt5677.c 			rt5677_dsp_mode_i2c_write(rt5677, reg, val);
rt5677           4828 sound/soc/codecs/rt5677.c 		regmap_write(rt5677->regmap_physical, reg, val);
rt5677           5007 sound/soc/codecs/rt5677.c static void rt5677_read_device_properties(struct rt5677_priv *rt5677,
rt5677           5012 sound/soc/codecs/rt5677.c 	rt5677->pdata.in1_diff =
rt5677           5016 sound/soc/codecs/rt5677.c 	rt5677->pdata.in2_diff =
rt5677           5020 sound/soc/codecs/rt5677.c 	rt5677->pdata.lout1_diff =
rt5677           5024 sound/soc/codecs/rt5677.c 	rt5677->pdata.lout2_diff =
rt5677           5028 sound/soc/codecs/rt5677.c 	rt5677->pdata.lout3_diff =
rt5677           5033 sound/soc/codecs/rt5677.c 				      rt5677->pdata.gpio_config,
rt5677           5038 sound/soc/codecs/rt5677.c 		rt5677->pdata.dmic2_clk_pin = val;
rt5677           5042 sound/soc/codecs/rt5677.c 		rt5677->pdata.jd1_gpio = val;
rt5677           5046 sound/soc/codecs/rt5677.c 		rt5677->pdata.jd2_gpio = val;
rt5677           5050 sound/soc/codecs/rt5677.c 		rt5677->pdata.jd3_gpio = val;
rt5677           5079 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = data;
rt5677           5083 sound/soc/codecs/rt5677.c 	mutex_lock(&rt5677->irq_lock);
rt5677           5101 sound/soc/codecs/rt5677.c 		ret = regmap_read(rt5677->regmap, RT5677_IRQ_CTRL1, &reg_irq);
rt5677           5103 sound/soc/codecs/rt5677.c 			dev_err(rt5677->dev, "failed reading IRQ status: %d\n",
rt5677           5112 sound/soc/codecs/rt5677.c 				virq = irq_find_mapping(rt5677->domain, i);
rt5677           5125 sound/soc/codecs/rt5677.c 		ret = regmap_write(rt5677->regmap, RT5677_IRQ_CTRL1, reg_irq);
rt5677           5127 sound/soc/codecs/rt5677.c 			dev_err(rt5677->dev, "failed updating IRQ status: %d\n",
rt5677           5133 sound/soc/codecs/rt5677.c 	mutex_unlock(&rt5677->irq_lock);
rt5677           5142 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = irq_data_get_irq_chip_data(data);
rt5677           5144 sound/soc/codecs/rt5677.c 	mutex_lock(&rt5677->irq_lock);
rt5677           5149 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = irq_data_get_irq_chip_data(data);
rt5677           5152 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_IRQ_CTRL1,
rt5677           5154 sound/soc/codecs/rt5677.c 			RT5677_EN_IRQ_GPIO_JD3, rt5677->irq_en);
rt5677           5155 sound/soc/codecs/rt5677.c 	mutex_unlock(&rt5677->irq_lock);
rt5677           5160 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = irq_data_get_irq_chip_data(data);
rt5677           5162 sound/soc/codecs/rt5677.c 	rt5677->irq_en |= rt5677_irq_descs[data->hwirq].enable_mask;
rt5677           5167 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = irq_data_get_irq_chip_data(data);
rt5677           5169 sound/soc/codecs/rt5677.c 	rt5677->irq_en &= ~rt5677_irq_descs[data->hwirq].enable_mask;
rt5677           5183 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = h->host_data;
rt5677           5185 sound/soc/codecs/rt5677.c 	irq_set_chip_data(virq, rt5677);
rt5677           5201 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
rt5677           5204 sound/soc/codecs/rt5677.c 	if (!rt5677->pdata.jd1_gpio &&
rt5677           5205 sound/soc/codecs/rt5677.c 		!rt5677->pdata.jd2_gpio &&
rt5677           5206 sound/soc/codecs/rt5677.c 		!rt5677->pdata.jd3_gpio)
rt5677           5214 sound/soc/codecs/rt5677.c 	mutex_init(&rt5677->irq_lock);
rt5677           5221 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC,
rt5677           5225 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_GEN_CTRL1, 0xff, 0xff);
rt5677           5228 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.jd1_gpio) {
rt5677           5230 sound/soc/codecs/rt5677.c 		jd_val	|= rt5677->pdata.jd1_gpio << RT5677_SEL_GPIO_JD1_SFT;
rt5677           5232 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.jd2_gpio) {
rt5677           5234 sound/soc/codecs/rt5677.c 		jd_val	|= rt5677->pdata.jd2_gpio << RT5677_SEL_GPIO_JD2_SFT;
rt5677           5236 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.jd3_gpio) {
rt5677           5238 sound/soc/codecs/rt5677.c 		jd_val	|= rt5677->pdata.jd3_gpio << RT5677_SEL_GPIO_JD3_SFT;
rt5677           5240 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_JD_CTRL1, jd_mask, jd_val);
rt5677           5243 sound/soc/codecs/rt5677.c 	regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL1,
rt5677           5247 sound/soc/codecs/rt5677.c 	rt5677->domain = irq_domain_add_linear(i2c->dev.of_node,
rt5677           5248 sound/soc/codecs/rt5677.c 			RT5677_IRQ_NUM, &rt5677_domain_ops, rt5677);
rt5677           5249 sound/soc/codecs/rt5677.c 	if (!rt5677->domain) {
rt5677           5256 sound/soc/codecs/rt5677.c 			"rt5677", rt5677);
rt5677           5265 sound/soc/codecs/rt5677.c 	struct rt5677_priv *rt5677;
rt5677           5269 sound/soc/codecs/rt5677.c 	rt5677 = devm_kzalloc(&i2c->dev, sizeof(struct rt5677_priv),
rt5677           5271 sound/soc/codecs/rt5677.c 	if (rt5677 == NULL)
rt5677           5274 sound/soc/codecs/rt5677.c 	rt5677->dev = &i2c->dev;
rt5677           5275 sound/soc/codecs/rt5677.c 	i2c_set_clientdata(i2c, rt5677);
rt5677           5282 sound/soc/codecs/rt5677.c 			rt5677->type = (enum rt5677_type)match_id->data;
rt5677           5288 sound/soc/codecs/rt5677.c 			rt5677->type = (enum rt5677_type)acpi_id->driver_data;
rt5677           5293 sound/soc/codecs/rt5677.c 	rt5677_read_device_properties(rt5677, &i2c->dev);
rt5677           5299 sound/soc/codecs/rt5677.c 	rt5677->pow_ldo2 = devm_gpiod_get_optional(&i2c->dev,
rt5677           5301 sound/soc/codecs/rt5677.c 	if (IS_ERR(rt5677->pow_ldo2)) {
rt5677           5302 sound/soc/codecs/rt5677.c 		ret = PTR_ERR(rt5677->pow_ldo2);
rt5677           5306 sound/soc/codecs/rt5677.c 	rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev,
rt5677           5308 sound/soc/codecs/rt5677.c 	if (IS_ERR(rt5677->reset_pin)) {
rt5677           5309 sound/soc/codecs/rt5677.c 		ret = PTR_ERR(rt5677->reset_pin);
rt5677           5314 sound/soc/codecs/rt5677.c 	if (rt5677->pow_ldo2 || rt5677->reset_pin) {
rt5677           5322 sound/soc/codecs/rt5677.c 	rt5677->regmap_physical = devm_regmap_init_i2c(i2c,
rt5677           5324 sound/soc/codecs/rt5677.c 	if (IS_ERR(rt5677->regmap_physical)) {
rt5677           5325 sound/soc/codecs/rt5677.c 		ret = PTR_ERR(rt5677->regmap_physical);
rt5677           5331 sound/soc/codecs/rt5677.c 	rt5677->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, &rt5677_regmap);
rt5677           5332 sound/soc/codecs/rt5677.c 	if (IS_ERR(rt5677->regmap)) {
rt5677           5333 sound/soc/codecs/rt5677.c 		ret = PTR_ERR(rt5677->regmap);
rt5677           5339 sound/soc/codecs/rt5677.c 	regmap_read(rt5677->regmap, RT5677_VENDOR_ID2, &val);
rt5677           5346 sound/soc/codecs/rt5677.c 	regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec);
rt5677           5348 sound/soc/codecs/rt5677.c 	ret = regmap_register_patch(rt5677->regmap, init_list,
rt5677           5353 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.in1_diff)
rt5677           5354 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_IN1,
rt5677           5357 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.in2_diff)
rt5677           5358 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_IN1,
rt5677           5361 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.lout1_diff)
rt5677           5362 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_LOUT1,
rt5677           5365 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.lout2_diff)
rt5677           5366 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_LOUT1,
rt5677           5369 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.lout3_diff)
rt5677           5370 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_LOUT1,
rt5677           5373 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.dmic2_clk_pin == RT5677_DMIC_CLK2) {
rt5677           5374 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GEN_CTRL2,
rt5677           5377 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2,
rt5677           5382 sound/soc/codecs/rt5677.c 	if (rt5677->pdata.micbias1_vdd_3v3)
rt5677           5383 sound/soc/codecs/rt5677.c 		regmap_update_bits(rt5677->regmap, RT5677_MICBIAS,