Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: nau8825: Add ADCOUT IO drive strength control

Add a property to control the driving of ADCOUT.

Signed-off-by: David Lin <CTLIN0@nuvoton.com>
Link: https://lore.kernel.org/r/20220913120641.792502-1-CTLIN0@nuvoton.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

David Lin and committed by
Mark Brown
ed857072 515626a3

+9
+6
sound/soc/codecs/nau8825.c
··· 1976 1976 /* Disable short Frame Sync detection logic */ 1977 1977 regmap_update_bits(regmap, NAU8825_REG_LEFT_TIME_SLOT, 1978 1978 NAU8825_DIS_FS_SHORT_DET, NAU8825_DIS_FS_SHORT_DET); 1979 + /* ADCDAT IO drive strength control */ 1980 + regmap_update_bits(regmap, NAU8825_REG_CHARGE_PUMP, 1981 + NAU8825_ADCOUT_DS_MASK, 1982 + nau8825->adcout_ds << NAU8825_ADCOUT_DS_SFT); 1979 1983 } 1980 1984 1981 1985 static const struct regmap_config nau8825_regmap_config = { ··· 2518 2514 nau8825->jack_eject_debounce); 2519 2515 dev_dbg(dev, "crosstalk-enable: %d\n", 2520 2516 nau8825->xtalk_enable); 2517 + dev_dbg(dev, "adcout-drive-strong: %d\n", nau8825->adcout_ds); 2521 2518 } 2522 2519 2523 2520 static int nau8825_read_device_properties(struct device *dev, ··· 2585 2580 nau8825->jack_eject_debounce = 0; 2586 2581 nau8825->xtalk_enable = device_property_read_bool(dev, 2587 2582 "nuvoton,crosstalk-enable"); 2583 + nau8825->adcout_ds = device_property_read_bool(dev, "nuvoton,adcout-drive-strong"); 2588 2584 2589 2585 nau8825->mclk = devm_clk_get(dev, "mclk"); 2590 2586 if (PTR_ERR(nau8825->mclk) == -EPROBE_DEFER) {
+3
sound/soc/codecs/nau8825.h
··· 418 418 #define NAU8825_POWERUP_HP_DRV_L (1 << 0) 419 419 420 420 /* CHARGE_PUMP (0x80) */ 421 + #define NAU8825_ADCOUT_DS_SFT 12 422 + #define NAU8825_ADCOUT_DS_MASK (1 << NAU8825_ADCOUT_DS_SFT) 421 423 #define NAU8825_JAMNODCLOW (1 << 10) 422 424 #define NAU8825_POWER_DOWN_DACR (1 << 9) 423 425 #define NAU8825_POWER_DOWN_DACL (1 << 8) ··· 479 477 int imp_rms[NAU8825_XTALK_IMM]; 480 478 int xtalk_enable; 481 479 bool xtalk_baktab_initialized; /* True if initialized. */ 480 + bool adcout_ds; 482 481 }; 483 482 484 483 int nau8825_enable_jack_detect(struct snd_soc_component *component,