diff options
-rw-r--r-- | drivers/mfd/si476x-prop.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/mfd/si476x-prop.c b/drivers/mfd/si476x-prop.c index cfeffa6e15d9..3ff2cae9cbab 100644 --- a/drivers/mfd/si476x-prop.c +++ b/drivers/mfd/si476x-prop.c | |||
@@ -217,15 +217,36 @@ static int si476x_core_regmap_read(void *context, unsigned int reg, | |||
217 | return 0; | 217 | return 0; |
218 | } | 218 | } |
219 | 219 | ||
220 | static bool si476x_core_regmap_volatile_register(struct device *dev, unsigned int reg) | ||
221 | { | ||
222 | switch (reg) { | ||
223 | case SI476X_PROP_DIGITAL_IO_OUTPUT_SAMPLE_RATE: | ||
224 | case SI476X_PROP_DIGITAL_IO_OUTPUT_FORMAT: | ||
225 | return false; | ||
226 | default: | ||
227 | return true; | ||
228 | } | ||
229 | |||
230 | return true; | ||
231 | } | ||
232 | |||
233 | /* These two register is used by the codec, so add reg_default here */ | ||
234 | static struct reg_default si476x_core_reg[] = { | ||
235 | { 0x202, 0xBB80 }, | ||
236 | { 0x203, 0x1700 }, | ||
237 | }; | ||
220 | 238 | ||
221 | static const struct regmap_config si476x_regmap_config = { | 239 | static const struct regmap_config si476x_regmap_config = { |
222 | .reg_bits = 16, | 240 | .reg_bits = 16, |
223 | .val_bits = 16, | 241 | .val_bits = 16, |
224 | 242 | ||
225 | .max_register = 0x4003, | 243 | .max_register = 0x4003, |
244 | .reg_defaults = si476x_core_reg, | ||
245 | .num_reg_defaults = ARRAY_SIZE(si476x_core_reg), | ||
226 | 246 | ||
227 | .writeable_reg = si476x_core_regmap_writable_register, | 247 | .writeable_reg = si476x_core_regmap_writable_register, |
228 | .readable_reg = si476x_core_regmap_readable_register, | 248 | .readable_reg = si476x_core_regmap_readable_register, |
249 | .volatile_reg = si476x_core_regmap_volatile_register, | ||
229 | 250 | ||
230 | .reg_read = si476x_core_regmap_read, | 251 | .reg_read = si476x_core_regmap_read, |
231 | .reg_write = si476x_core_regmap_write, | 252 | .reg_write = si476x_core_regmap_write, |