nau8824            31 sound/soc/codecs/nau8824.c static int nau8824_config_sysclk(struct nau8824 *nau8824,
nau8824            33 sound/soc/codecs/nau8824.c static bool nau8824_is_jack_inserted(struct nau8824 *nau8824);
nau8824           198 sound/soc/codecs/nau8824.c static int nau8824_sema_acquire(struct nau8824 *nau8824, long timeout)
nau8824           203 sound/soc/codecs/nau8824.c 		ret = down_timeout(&nau8824->jd_sem, timeout);
nau8824           205 sound/soc/codecs/nau8824.c 			dev_warn(nau8824->dev, "Acquire semaphore timeout\n");
nau8824           207 sound/soc/codecs/nau8824.c 		ret = down_interruptible(&nau8824->jd_sem);
nau8824           209 sound/soc/codecs/nau8824.c 			dev_warn(nau8824->dev, "Acquire semaphore fail\n");
nau8824           215 sound/soc/codecs/nau8824.c static inline void nau8824_sema_release(struct nau8824 *nau8824)
nau8824           217 sound/soc/codecs/nau8824.c 	up(&nau8824->jd_sem);
nau8824           424 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824           429 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap, NAU8824_REG_ENABLE_LO,
nau8824           433 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap, NAU8824_REG_ENABLE_LO,
nau8824           447 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824           451 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824           456 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824           471 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824           477 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824           482 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824           497 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824           498 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824           503 sound/soc/codecs/nau8824.c 		dev_dbg(nau8824->dev, "system clock control : POWER OFF\n");
nau8824           509 sound/soc/codecs/nau8824.c 		if (nau8824_is_jack_inserted(nau8824)) {
nau8824           510 sound/soc/codecs/nau8824.c 			nau8824_config_sysclk(nau8824,
nau8824           513 sound/soc/codecs/nau8824.c 			nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
nau8824           516 sound/soc/codecs/nau8824.c 		dev_dbg(nau8824->dev, "system clock control : POWER ON\n");
nau8824           543 sound/soc/codecs/nau8824.c 				nau8824_config_sysclk(nau8824,
nau8824           556 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824           564 sound/soc/codecs/nau8824.c 		if ((0x1 << (8 - src)) * nau8824->fs <= DMIC_CLK)
nau8824           567 sound/soc/codecs/nau8824.c 	dev_dbg(nau8824->dev, "dmic src %d for mclk %d\n", src, nau8824->fs * 256);
nau8824           568 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
nau8824           804 sound/soc/codecs/nau8824.c static bool nau8824_is_jack_inserted(struct nau8824 *nau8824)
nau8824           806 sound/soc/codecs/nau8824.c 	struct snd_soc_jack *jack = nau8824->jack;
nau8824           809 sound/soc/codecs/nau8824.c 	if (nau8824->irq && jack)
nau8824           831 sound/soc/codecs/nau8824.c static void nau8824_dapm_disable_pin(struct nau8824 *nau8824, const char *pin)
nau8824           833 sound/soc/codecs/nau8824.c 	struct snd_soc_dapm_context *dapm = nau8824->dapm;
nau8824           846 sound/soc/codecs/nau8824.c static void nau8824_dapm_enable_pin(struct nau8824 *nau8824, const char *pin)
nau8824           848 sound/soc/codecs/nau8824.c 	struct snd_soc_dapm_context *dapm = nau8824->dapm;
nau8824           861 sound/soc/codecs/nau8824.c static void nau8824_eject_jack(struct nau8824 *nau8824)
nau8824           863 sound/soc/codecs/nau8824.c 	struct snd_soc_dapm_context *dapm = nau8824->dapm;
nau8824           864 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824           869 sound/soc/codecs/nau8824.c 	nau8824_dapm_disable_pin(nau8824, "SAR");
nau8824           870 sound/soc/codecs/nau8824.c 	nau8824_dapm_disable_pin(nau8824, "MICBIAS");
nau8824           889 sound/soc/codecs/nau8824.c 		nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
nau8824           894 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = container_of(
nau8824           895 sound/soc/codecs/nau8824.c 		work, struct nau8824, jdet_work);
nau8824           896 sound/soc/codecs/nau8824.c 	struct snd_soc_dapm_context *dapm = nau8824->dapm;
nau8824           897 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824           900 sound/soc/codecs/nau8824.c 	nau8824_dapm_enable_pin(nau8824, "MICBIAS");
nau8824           901 sound/soc/codecs/nau8824.c 	nau8824_dapm_enable_pin(nau8824, "SAR");
nau8824           908 sound/soc/codecs/nau8824.c 	dev_dbg(nau8824->dev, "SAR ADC data 0x%02x\n", adc_value);
nau8824           912 sound/soc/codecs/nau8824.c 		nau8824_dapm_disable_pin(nau8824, "SAR");
nau8824           913 sound/soc/codecs/nau8824.c 		nau8824_dapm_disable_pin(nau8824, "MICBIAS");
nau8824           919 sound/soc/codecs/nau8824.c 	snd_soc_jack_report(nau8824->jack, event, event_mask);
nau8824           926 sound/soc/codecs/nau8824.c 	nau8824_sema_release(nau8824);
nau8824           929 sound/soc/codecs/nau8824.c static void nau8824_setup_auto_irq(struct nau8824 *nau8824)
nau8824           931 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824           940 sound/soc/codecs/nau8824.c 	if (nau8824->dapm->bias_level < SND_SOC_BIAS_PREPARE)
nau8824           941 sound/soc/codecs/nau8824.c 		nau8824_config_sysclk(nau8824, NAU8824_CLK_INTERNAL, 0);
nau8824           974 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = (struct nau8824 *)data;
nau8824           975 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824           979 sound/soc/codecs/nau8824.c 		dev_err(nau8824->dev, "failed to read irq status\n");
nau8824           982 sound/soc/codecs/nau8824.c 	dev_dbg(nau8824->dev, "IRQ %x\n", active_irq);
nau8824           985 sound/soc/codecs/nau8824.c 		nau8824_eject_jack(nau8824);
nau8824           991 sound/soc/codecs/nau8824.c 		nau8824_sema_release(nau8824);
nau8824           992 sound/soc/codecs/nau8824.c 		cancel_work_sync(&nau8824->jdet_work);
nau8824          1003 sound/soc/codecs/nau8824.c 		dev_dbg(nau8824->dev, "button %x pressed\n", event);
nau8824          1019 sound/soc/codecs/nau8824.c 		cancel_work_sync(&nau8824->jdet_work);
nau8824          1020 sound/soc/codecs/nau8824.c 		schedule_work(&nau8824->jdet_work);
nau8824          1025 sound/soc/codecs/nau8824.c 		nau8824_setup_auto_irq(nau8824);
nau8824          1034 sound/soc/codecs/nau8824.c 		snd_soc_jack_report(nau8824->jack, event, event_mask);
nau8824          1039 sound/soc/codecs/nau8824.c static int nau8824_clock_check(struct nau8824 *nau8824,
nau8824          1055 sound/soc/codecs/nau8824.c 		dev_err(nau8824->dev, "exceed the maximum frequency of CLK_ADC or CLK_DAC\n");
nau8824          1066 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1069 sound/soc/codecs/nau8824.c 	nau8824_sema_acquire(nau8824, HZ);
nau8824          1077 sound/soc/codecs/nau8824.c 	nau8824->fs = params_rate(params);
nau8824          1079 sound/soc/codecs/nau8824.c 		regmap_read(nau8824->regmap,
nau8824          1082 sound/soc/codecs/nau8824.c 		if (nau8824_clock_check(nau8824, substream->stream,
nau8824          1083 sound/soc/codecs/nau8824.c 			nau8824->fs, osr))
nau8824          1085 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
nau8824          1089 sound/soc/codecs/nau8824.c 		regmap_read(nau8824->regmap,
nau8824          1092 sound/soc/codecs/nau8824.c 		if (nau8824_clock_check(nau8824, substream->stream,
nau8824          1093 sound/soc/codecs/nau8824.c 			nau8824->fs, osr))
nau8824          1095 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
nau8824          1101 sound/soc/codecs/nau8824.c 	regmap_read(nau8824->regmap,
nau8824          1105 sound/soc/codecs/nau8824.c 		bclk_fs = snd_soc_params_to_bclk(params) / nau8824->fs;
nau8824          1116 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824          1139 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_1,
nau8824          1142 sound/soc/codecs/nau8824.c 	nau8824_sema_release(nau8824);
nau8824          1150 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1153 sound/soc/codecs/nau8824.c 	nau8824_sema_acquire(nau8824, HZ);
nau8824          1196 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_1,
nau8824          1199 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_2,
nau8824          1202 sound/soc/codecs/nau8824.c 	nau8824_sema_release(nau8824);
nau8824          1227 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1248 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_TDM_CTRL,
nau8824          1252 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_LEFT_TIME_SLOT,
nau8824          1368 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1375 sound/soc/codecs/nau8824.c 		dev_err(nau8824->dev, "Unsupported input clock %d\n", freq_in);
nau8824          1378 sound/soc/codecs/nau8824.c 	dev_dbg(nau8824->dev, "mclk_src=%x ratio=%x fll_frac=%x fll_int=%x clk_ref_div=%x\n",
nau8824          1382 sound/soc/codecs/nau8824.c 	nau8824_fll_apply(nau8824->regmap, &fll_param);
nau8824          1384 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
nau8824          1390 sound/soc/codecs/nau8824.c static int nau8824_config_sysclk(struct nau8824 *nau8824,
nau8824          1393 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824          1404 sound/soc/codecs/nau8824.c 		nau8824_sema_acquire(nau8824, HZ);
nau8824          1409 sound/soc/codecs/nau8824.c 		nau8824_sema_release(nau8824);
nau8824          1420 sound/soc/codecs/nau8824.c 		nau8824_sema_acquire(nau8824, HZ);
nau8824          1423 sound/soc/codecs/nau8824.c 		nau8824_sema_release(nau8824);
nau8824          1427 sound/soc/codecs/nau8824.c 		nau8824_sema_acquire(nau8824, HZ);
nau8824          1430 sound/soc/codecs/nau8824.c 		nau8824_sema_release(nau8824);
nau8824          1434 sound/soc/codecs/nau8824.c 		nau8824_sema_acquire(nau8824, HZ);
nau8824          1437 sound/soc/codecs/nau8824.c 		nau8824_sema_release(nau8824);
nau8824          1441 sound/soc/codecs/nau8824.c 		dev_err(nau8824->dev, "Invalid clock id (%d)\n", clk_id);
nau8824          1445 sound/soc/codecs/nau8824.c 	dev_dbg(nau8824->dev, "Sysclk is %dHz and clock id is %d\n", freq,
nau8824          1454 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1456 sound/soc/codecs/nau8824.c 	return nau8824_config_sysclk(nau8824, clk_id, freq);
nau8824          1459 sound/soc/codecs/nau8824.c static void nau8824_resume_setup(struct nau8824 *nau8824)
nau8824          1461 sound/soc/codecs/nau8824.c 	nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
nau8824          1462 sound/soc/codecs/nau8824.c 	if (nau8824->irq) {
nau8824          1464 sound/soc/codecs/nau8824.c 		nau8824_int_status_clear_all(nau8824->regmap);
nau8824          1468 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap, NAU8824_REG_ENA_CTRL,
nau8824          1470 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824          1474 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824          1483 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1495 sound/soc/codecs/nau8824.c 			nau8824_resume_setup(nau8824);
nau8824          1500 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824          1502 sound/soc/codecs/nau8824.c 		regmap_update_bits(nau8824->regmap,
nau8824          1513 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1516 sound/soc/codecs/nau8824.c 	nau8824->dapm = dapm;
nau8824          1523 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1525 sound/soc/codecs/nau8824.c 	if (nau8824->irq) {
nau8824          1526 sound/soc/codecs/nau8824.c 		disable_irq(nau8824->irq);
nau8824          1529 sound/soc/codecs/nau8824.c 	regcache_cache_only(nau8824->regmap, true);
nau8824          1530 sound/soc/codecs/nau8824.c 	regcache_mark_dirty(nau8824->regmap);
nau8824          1537 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1539 sound/soc/codecs/nau8824.c 	regcache_cache_only(nau8824->regmap, false);
nau8824          1540 sound/soc/codecs/nau8824.c 	regcache_sync(nau8824->regmap);
nau8824          1541 sound/soc/codecs/nau8824.c 	if (nau8824->irq) {
nau8824          1545 sound/soc/codecs/nau8824.c 		nau8824_sema_acquire(nau8824, 0);
nau8824          1546 sound/soc/codecs/nau8824.c 		enable_irq(nau8824->irq);
nau8824          1628 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
nau8824          1631 sound/soc/codecs/nau8824.c 	nau8824->jack = jack;
nau8824          1633 sound/soc/codecs/nau8824.c 	INIT_WORK(&nau8824->jdet_work, nau8824_jdet_work);
nau8824          1634 sound/soc/codecs/nau8824.c 	ret = devm_request_threaded_irq(nau8824->dev, nau8824->irq, NULL,
nau8824          1636 sound/soc/codecs/nau8824.c 		"nau8824", nau8824);
nau8824          1638 sound/soc/codecs/nau8824.c 		dev_err(nau8824->dev, "Cannot request irq %d (%d)\n",
nau8824          1639 sound/soc/codecs/nau8824.c 			nau8824->irq, ret);
nau8824          1652 sound/soc/codecs/nau8824.c static void nau8824_setup_buttons(struct nau8824 *nau8824)
nau8824          1654 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824          1658 sound/soc/codecs/nau8824.c 		nau8824->sar_voltage << NAU8824_SAR_TRACKING_GAIN_SFT);
nau8824          1661 sound/soc/codecs/nau8824.c 		nau8824->sar_compare_time << NAU8824_SAR_COMPARE_TIME_SFT);
nau8824          1664 sound/soc/codecs/nau8824.c 		nau8824->sar_sampling_time << NAU8824_SAR_SAMPLING_TIME_SFT);
nau8824          1668 sound/soc/codecs/nau8824.c 		(nau8824->sar_threshold_num - 1) << NAU8824_LEVELS_NR_SFT);
nau8824          1671 sound/soc/codecs/nau8824.c 		nau8824->sar_hysteresis << NAU8824_HYSTERESIS_SFT);
nau8824          1674 sound/soc/codecs/nau8824.c 		nau8824->key_debounce << NAU8824_SHORTKEY_DEBOUNCE_SFT);
nau8824          1677 sound/soc/codecs/nau8824.c 		(nau8824->sar_threshold[0] << 8) | nau8824->sar_threshold[1]);
nau8824          1679 sound/soc/codecs/nau8824.c 		(nau8824->sar_threshold[2] << 8) | nau8824->sar_threshold[3]);
nau8824          1681 sound/soc/codecs/nau8824.c 		(nau8824->sar_threshold[4] << 8) | nau8824->sar_threshold[5]);
nau8824          1683 sound/soc/codecs/nau8824.c 		(nau8824->sar_threshold[6] << 8) | nau8824->sar_threshold[7]);
nau8824          1686 sound/soc/codecs/nau8824.c static void nau8824_init_regs(struct nau8824 *nau8824)
nau8824          1688 sound/soc/codecs/nau8824.c 	struct regmap *regmap = nau8824->regmap;
nau8824          1693 sound/soc/codecs/nau8824.c 		(nau8824->vref_impedance << NAU8824_VMID_SEL_SFT));
nau8824          1698 sound/soc/codecs/nau8824.c 		NAU8824_MICBIAS_VOLTAGE_MASK, nau8824->micbias_voltage);
nau8824          1778 sound/soc/codecs/nau8824.c 		nau8824->jkdet_polarity ? 0 : NAU8824_JACK_LOGIC);
nau8824          1781 sound/soc/codecs/nau8824.c 		(nau8824->jack_eject_debounce << NAU8824_JACK_EJECT_DT_SFT));
nau8824          1782 sound/soc/codecs/nau8824.c 	if (nau8824->sar_threshold_num)
nau8824          1783 sound/soc/codecs/nau8824.c 		nau8824_setup_buttons(nau8824);
nau8824          1786 sound/soc/codecs/nau8824.c static int nau8824_setup_irq(struct nau8824 *nau8824)
nau8824          1789 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_ENA_CTRL,
nau8824          1791 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap,
nau8824          1793 sound/soc/codecs/nau8824.c 	regmap_update_bits(nau8824->regmap, NAU8824_REG_INTERRUPT_SETTING_1,
nau8824          1799 sound/soc/codecs/nau8824.c static void nau8824_print_device_properties(struct nau8824 *nau8824)
nau8824          1801 sound/soc/codecs/nau8824.c 	struct device *dev = nau8824->dev;
nau8824          1804 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "jkdet-polarity:       %d\n", nau8824->jkdet_polarity);
nau8824          1805 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "micbias-voltage:      %d\n", nau8824->micbias_voltage);
nau8824          1806 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "vref-impedance:       %d\n", nau8824->vref_impedance);
nau8824          1808 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "sar-threshold-num:    %d\n", nau8824->sar_threshold_num);
nau8824          1809 sound/soc/codecs/nau8824.c 	for (i = 0; i < nau8824->sar_threshold_num; i++)
nau8824          1811 sound/soc/codecs/nau8824.c 				nau8824->sar_threshold[i]);
nau8824          1813 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "sar-hysteresis:       %d\n", nau8824->sar_hysteresis);
nau8824          1814 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "sar-voltage:          %d\n", nau8824->sar_voltage);
nau8824          1815 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "sar-compare-time:     %d\n", nau8824->sar_compare_time);
nau8824          1816 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "sar-sampling-time:    %d\n", nau8824->sar_sampling_time);
nau8824          1817 sound/soc/codecs/nau8824.c 	dev_dbg(dev, "short-key-debounce:   %d\n", nau8824->key_debounce);
nau8824          1819 sound/soc/codecs/nau8824.c 			nau8824->jack_eject_debounce);
nau8824          1823 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824) {
nau8824          1827 sound/soc/codecs/nau8824.c 		&nau8824->jkdet_polarity);
nau8824          1829 sound/soc/codecs/nau8824.c 		nau8824->jkdet_polarity = 1;
nau8824          1831 sound/soc/codecs/nau8824.c 		&nau8824->micbias_voltage);
nau8824          1833 sound/soc/codecs/nau8824.c 		nau8824->micbias_voltage = 6;
nau8824          1835 sound/soc/codecs/nau8824.c 		&nau8824->vref_impedance);
nau8824          1837 sound/soc/codecs/nau8824.c 		nau8824->vref_impedance = 2;
nau8824          1839 sound/soc/codecs/nau8824.c 		&nau8824->sar_threshold_num);
nau8824          1841 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold_num = 4;
nau8824          1843 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold, nau8824->sar_threshold_num);
nau8824          1845 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold[0] = 0x0a;
nau8824          1846 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold[1] = 0x14;
nau8824          1847 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold[2] = 0x26;
nau8824          1848 sound/soc/codecs/nau8824.c 		nau8824->sar_threshold[3] = 0x73;
nau8824          1851 sound/soc/codecs/nau8824.c 		&nau8824->sar_hysteresis);
nau8824          1853 sound/soc/codecs/nau8824.c 		nau8824->sar_hysteresis = 0;
nau8824          1855 sound/soc/codecs/nau8824.c 		&nau8824->sar_voltage);
nau8824          1857 sound/soc/codecs/nau8824.c 		nau8824->sar_voltage = 6;
nau8824          1859 sound/soc/codecs/nau8824.c 		&nau8824->sar_compare_time);
nau8824          1861 sound/soc/codecs/nau8824.c 		nau8824->sar_compare_time = 1;
nau8824          1863 sound/soc/codecs/nau8824.c 		&nau8824->sar_sampling_time);
nau8824          1865 sound/soc/codecs/nau8824.c 		nau8824->sar_sampling_time = 1;
nau8824          1867 sound/soc/codecs/nau8824.c 		&nau8824->key_debounce);
nau8824          1869 sound/soc/codecs/nau8824.c 		nau8824->key_debounce = 0;
nau8824          1871 sound/soc/codecs/nau8824.c 		&nau8824->jack_eject_debounce);
nau8824          1873 sound/soc/codecs/nau8824.c 		nau8824->jack_eject_debounce = 1;
nau8824          1882 sound/soc/codecs/nau8824.c 	struct nau8824 *nau8824 = dev_get_platdata(dev);
nau8824          1885 sound/soc/codecs/nau8824.c 	if (!nau8824) {
nau8824          1886 sound/soc/codecs/nau8824.c 		nau8824 = devm_kzalloc(dev, sizeof(*nau8824), GFP_KERNEL);
nau8824          1887 sound/soc/codecs/nau8824.c 		if (!nau8824)
nau8824          1889 sound/soc/codecs/nau8824.c 		ret = nau8824_read_device_properties(dev, nau8824);
nau8824          1893 sound/soc/codecs/nau8824.c 	i2c_set_clientdata(i2c, nau8824);
nau8824          1895 sound/soc/codecs/nau8824.c 	nau8824->regmap = devm_regmap_init_i2c(i2c, &nau8824_regmap_config);
nau8824          1896 sound/soc/codecs/nau8824.c 	if (IS_ERR(nau8824->regmap))
nau8824          1897 sound/soc/codecs/nau8824.c 		return PTR_ERR(nau8824->regmap);
nau8824          1898 sound/soc/codecs/nau8824.c 	nau8824->dev = dev;
nau8824          1899 sound/soc/codecs/nau8824.c 	nau8824->irq = i2c->irq;
nau8824          1900 sound/soc/codecs/nau8824.c 	sema_init(&nau8824->jd_sem, 1);
nau8824          1902 sound/soc/codecs/nau8824.c 	nau8824_print_device_properties(nau8824);
nau8824          1904 sound/soc/codecs/nau8824.c 	ret = regmap_read(nau8824->regmap, NAU8824_REG_I2C_DEVICE_ID, &value);
nau8824          1910 sound/soc/codecs/nau8824.c 	nau8824_reset_chip(nau8824->regmap);
nau8824          1911 sound/soc/codecs/nau8824.c 	nau8824_init_regs(nau8824);
nau8824          1914 sound/soc/codecs/nau8824.c 		nau8824_setup_irq(nau8824);