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, ®_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,