static bool nau8325_writeable_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
- case NAU8325_R00_HARDWARE_RST:
+ case NAU8325_R00_HARDWARE_RST ... NAU8325_R01_SOFTWARE_RST:
case NAU8325_R03_CLK_CTRL ... NAU8325_R06_INT_CLR_STATUS:
case NAU8325_R09_IRQOUT ... NAU8325_R13_DAC_VOLUME:
case NAU8325_R29_DAC_CTRL1 ... NAU8325_R2A_DAC_CTRL2:
regmap_write(regmap, NAU8325_R00_HARDWARE_RST, 0x0000);
}
+static void nau8325_software_reset(struct regmap *regmap)
+{
+ regmap_write(regmap, NAU8325_R01_SOFTWARE_RST, 0x0000);
+ regmap_write(regmap, NAU8325_R01_SOFTWARE_RST, 0x0000);
+}
+
static void nau8325_init_regs(struct nau8325 *nau8325)
{
struct regmap *regmap = nau8325->regmap;
nau8325_print_device_properties(nau8325);
nau8325_reset_chip(nau8325->regmap);
+ nau8325_software_reset(nau8325->regmap);
ret = regmap_read(nau8325->regmap, NAU8325_R02_DEVICE_ID, &value);
if (ret) {
dev_dbg(dev, "Failed to read device id (%d)", ret);