Lines Matching full:regmap
18 #include <linux/regmap.h>
48 static bool nau8821_is_jack_inserted(struct regmap *regmap);
288 if (!component->regmap)
291 return regmap_raw_read(component->regmap, NAU8821_R21_BIQ0_COF1,
303 if (!component->regmap)
311 ret = regmap_raw_write(component->regmap, NAU8821_R21_BIQ0_COF1,
479 regmap_read(nau8821->regmap, NAU8821_R03_CLK_DIVIDER,
498 regmap_update_bits(nau8821->regmap, NAU8821_R13_DMIC_CTRL,
557 regmap_update_bits(nau8821->regmap, NAU8821_R80_CHARGE_PUMP,
561 regmap_update_bits(nau8821->regmap, NAU8821_R80_CHARGE_PUMP,
581 regmap_update_bits(nau8821->regmap, NAU8821_R66_BIAS_ADJ,
585 regmap_update_bits(nau8821->regmap, NAU8821_R66_BIAS_ADJ,
609 if (nau8821_is_jack_inserted(nau8821->regmap)) {
630 regmap_update_bits(nau8821->regmap, NAU8821_R77_FEPGA,
633 regmap_update_bits(nau8821->regmap, NAU8821_R76_BOOST,
637 regmap_update_bits(nau8821->regmap, NAU8821_R77_FEPGA,
639 regmap_update_bits(nau8821->regmap, NAU8821_R76_BOOST,
807 regmap_read(nau8821->regmap, NAU8821_R2C_DAC_CTRL1, &osr);
813 regmap_read(nau8821->regmap, NAU8821_R2B_ADC_RATE, &osr);
858 regmap_update_bits(nau8821->regmap, NAU8821_R03_CLK_DIVIDER,
862 regmap_update_bits(nau8821->regmap, NAU8821_R03_CLK_DIVIDER,
867 regmap_read(nau8821->regmap, NAU8821_R1D_I2S_PCM_CTRL2, &ctrl_val);
880 regmap_update_bits(nau8821->regmap, NAU8821_R1D_I2S_PCM_CTRL2,
902 regmap_update_bits(nau8821->regmap, NAU8821_R1C_I2S_PCM_CTRL1,
955 regmap_update_bits(nau8821->regmap, NAU8821_R1C_I2S_PCM_CTRL1,
958 regmap_update_bits(nau8821->regmap, NAU8821_R1D_I2S_PCM_CTRL2,
974 return regmap_update_bits(nau8821->regmap,
1010 static bool nau8821_is_jack_inserted(struct regmap *regmap)
1015 regmap_read(regmap, NAU8821_R0D_JACK_DET_CTRL, &jkdet);
1017 regmap_read(regmap, NAU8821_R82_GENERAL_STATUS, &status);
1025 static void nau8821_irq_status_clear(struct regmap *regmap, int active_irq)
1030 regmap_write(regmap, NAU8821_R11_INT_CLR_KEY_STATUS, active_irq);
1037 regmap_read(regmap, NAU8821_R10_IRQ_STATUS, &active_irq);
1041 regmap_write(regmap,
1049 struct regmap *regmap = nau8821->regmap;
1052 regmap_update_bits(regmap, NAU8821_R74_MIC_BIAS,
1055 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1061 regmap_update_bits(regmap, NAU8821_R12_INTERRUPT_DIS_CTRL,
1064 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1069 nau8821_irq_status_clear(regmap, 0);
1072 regmap_update_bits(regmap, NAU8821_R12_INTERRUPT_DIS_CTRL,
1074 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1078 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1086 regmap_update_bits(regmap, NAU8821_R2B_ADC_RATE,
1089 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1094 regmap_update_bits(regmap,
1108 struct regmap *regmap = nau8821->regmap;
1111 regmap_read(regmap, NAU8821_R58_I2C_DEVICE_ID, &jack_status_reg);
1118 regmap_update_bits(regmap, NAU8821_R74_MIC_BIAS,
1123 regmap_update_bits(regmap, NAU8821_R2B_ADC_RATE,
1126 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1129 regmap_update_bits(regmap,
1151 struct regmap *regmap = nau8821->regmap;
1154 regmap_update_bits(regmap, NAU8821_R12_INTERRUPT_DIS_CTRL,
1156 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1160 nau8821_irq_status_clear(regmap, NAU8821_JACK_INSERT_DETECTED);
1171 regmap_update_bits(regmap, NAU8821_R1D_I2S_PCM_CTRL2,
1173 regmap_update_bits(regmap, NAU8821_R1D_I2S_PCM_CTRL2,
1178 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1182 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1184 regmap_update_bits(regmap, NAU8821_R12_INTERRUPT_DIS_CTRL,
1191 struct regmap *regmap = nau8821->regmap;
1194 if (regmap_read(regmap, NAU8821_R10_IRQ_STATUS, &active_irq)) {
1204 regmap_update_bits(regmap, NAU8821_R71_ANALOG_ADC_1,
1211 nau8821_irq_status_clear(regmap, NAU8821_KEY_SHORT_PRESS_IRQ);
1214 nau8821_irq_status_clear(regmap, NAU8821_KEY_RELEASE_IRQ);
1218 regmap_update_bits(regmap, NAU8821_R71_ANALOG_ADC_1,
1220 if (nau8821_is_jack_inserted(regmap)) {
1234 nau8821_irq_status_clear(regmap, active_irq);
1337 struct regmap *regmap = nau8821->regmap;
1339 regmap_update_bits(regmap, NAU8821_R03_CLK_DIVIDER,
1343 regmap_update_bits(regmap, NAU8821_R04_FLL1,
1347 regmap_write(regmap, NAU8821_R0A_FLL7,
1349 regmap_write(regmap, NAU8821_R0B_FLL8, fll_param->fll_frac & 0xffff);
1351 regmap_update_bits(regmap, NAU8821_R06_FLL3,
1354 regmap_update_bits(regmap, NAU8821_R07_FLL4,
1359 regmap_update_bits(regmap, NAU8821_R08_FLL5,
1362 regmap_update_bits(regmap,
1366 regmap_update_bits(regmap, NAU8821_R08_FLL5,
1371 regmap_update_bits(regmap, NAU8821_R09_FLL6,
1376 regmap_update_bits(regmap, NAU8821_R08_FLL5,
1379 regmap_update_bits(regmap, NAU8821_R09_FLL6,
1419 regmap_update_bits(nau8821->regmap, NAU8821_R03_CLK_DIVIDER,
1425 static void nau8821_configure_mclk_as_sysclk(struct regmap *regmap)
1427 regmap_update_bits(regmap, NAU8821_R03_CLK_DIVIDER,
1429 regmap_update_bits(regmap, NAU8821_R09_FLL6,
1432 regmap_update_bits(regmap, NAU8821_R04_FLL1,
1439 struct regmap *regmap = nau8821->regmap;
1444 nau8821_configure_mclk_as_sysclk(regmap);
1447 nau8821_configure_mclk_as_sysclk(regmap);
1449 regmap_update_bits(regmap, NAU8821_R03_CLK_DIVIDER,
1453 if (nau8821_is_jack_inserted(regmap)) {
1454 regmap_update_bits(regmap, NAU8821_R09_FLL6,
1456 regmap_update_bits(regmap, NAU8821_R03_CLK_DIVIDER,
1461 regmap_update_bits(regmap, NAU8821_R03_CLK_DIVIDER,
1463 regmap_update_bits(regmap, NAU8821_R04_FLL1,
1466 regmap_update_bits(regmap, NAU8821_R09_FLL6,
1475 regmap_update_bits(regmap, NAU8821_R06_FLL3,
1486 regmap_update_bits(regmap, NAU8821_R06_FLL3,
1498 regmap_update_bits(regmap, NAU8821_R06_FLL3,
1524 struct regmap *regmap = nau8821->regmap;
1530 nau8821_irq_status_clear(regmap, 0);
1535 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1537 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1540 regmap_update_bits(regmap, NAU8821_R12_INTERRUPT_DIS_CTRL,
1551 struct regmap *regmap = nau8821->regmap;
1568 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1574 regmap_update_bits(regmap, NAU8821_R74_MIC_BIAS,
1580 regmap_write(regmap,
1582 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1604 regcache_cache_only(nau8821->regmap, true);
1605 regcache_mark_dirty(nau8821->regmap);
1614 regcache_cache_only(nau8821->regmap, false);
1615 regcache_sync(nau8821->regmap);
1674 static void nau8821_reset_chip(struct regmap *regmap)
1676 regmap_write(regmap, NAU8821_R00_RESET, 0xffff);
1677 regmap_write(regmap, NAU8821_R00_RESET, 0xffff);
1755 struct regmap *regmap = nau8821->regmap;
1758 regmap_update_bits(regmap, NAU8821_R66_BIAS_ADJ,
1760 regmap_update_bits(regmap, NAU8821_R76_BOOST,
1767 regmap_update_bits(regmap, NAU8821_R66_BIAS_ADJ,
1772 regmap_update_bits(regmap, NAU8821_R1E_LEFT_TIME_SLOT,
1775 regmap_update_bits(regmap, NAU8821_R76_BOOST,
1781 regmap_update_bits(regmap, NAU8821_R4B_CLASSG_CTRL,
1785 regmap_update_bits(regmap, NAU8821_R6A_ANALOG_CONTROL_2,
1791 regmap_update_bits(regmap, NAU8821_R80_CHARGE_PUMP,
1794 regmap_update_bits(regmap, NAU8821_R73_RDAC,
1799 regmap_update_bits(regmap, NAU8821_R74_MIC_BIAS,
1804 regmap_update_bits(regmap, NAU8821_R2B_ADC_RATE,
1806 regmap_update_bits(regmap, NAU8821_R2C_DAC_CTRL1,
1808 regmap_update_bits(regmap, NAU8821_R13_DMIC_CTRL,
1812 regmap_update_bits(regmap, NAU8821_R6B_PGA_MUTE,
1814 regmap_update_bits(regmap, NAU8821_R74_MIC_BIAS,
1821 struct regmap *regmap = nau8821->regmap;
1824 regmap_update_bits(regmap, NAU8821_R1A_GPIO12_CTRL,
1827 regmap_update_bits(regmap, NAU8821_R1A_GPIO12_CTRL,
1830 regmap_update_bits(regmap, NAU8821_R1A_GPIO12_CTRL,
1833 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1837 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1841 regmap_update_bits(regmap, NAU8821_R0D_JACK_DET_CTRL,
1846 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK,
1852 regmap_update_bits(regmap, NAU8821_R0F_INTERRUPT_MASK, 0x3f5, 0x3f5);
1914 nau8821->regmap = devm_regmap_init_i2c(i2c, &nau8821_regmap_config);
1915 if (IS_ERR(nau8821->regmap))
1916 return PTR_ERR(nau8821->regmap);
1931 nau8821_reset_chip(nau8821->regmap);
1932 ret = regmap_read(nau8821->regmap, NAU8821_R58_I2C_DEVICE_ID, &value);