diff options
author | Andre Werner <andre.werner@systec-electronic.com> | 2023-08-18 10:37:24 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-08-18 22:06:52 +0100 |
commit | 3a5e6e49855661ad39b8fbb1dbd041178af98e00 (patch) | |
tree | 1373496febf33f12cbecebf6f2b78901b55fa1c5 /include/linux/mfd | |
parent | 1c6350f2d3b07b0d7281317f1d0c24c892597e5b (diff) | |
download | linux-stable-3a5e6e49855661ad39b8fbb1dbd041178af98e00.tar.gz linux-stable-3a5e6e49855661ad39b8fbb1dbd041178af98e00.tar.bz2 linux-stable-3a5e6e49855661ad39b8fbb1dbd041178af98e00.zip |
regulator: tps65086: Select dedicated regulator config for chip variant
Some configurations differ between chip variants, e,g. the register
to control the on of state of LDOA1 and SWB2. Thus, it is necessary
to choose the correct configuration for a dedicated device.
If the wrong configuration was used, the LDOA1 output that was
disabled by the bootloader was enabled in Kernel again.
Each chip variant gets its dedicated configuration selected by
the chip ID previously collected from MFD probe function.
The VTT enum value (tps65086_regulators) is shifted because not all
chip variants have a separate SWB2 switch. Sometimes they are merged.
So the configuration possibilities differ, thus the regulator
configuration arrays have a different length.
Signed-off-by: Andre Werner <andre.werner@systec-electronic.com>
Link: https://lore.kernel.org/r/20230818083721.29790-5-andre.werner@systec-electronic.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/linux/mfd')
-rw-r--r-- | include/linux/mfd/tps65086.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/mfd/tps65086.h b/include/linux/mfd/tps65086.h index 87e590de6ca5..9185b5cd8371 100644 --- a/include/linux/mfd/tps65086.h +++ b/include/linux/mfd/tps65086.h @@ -99,6 +99,8 @@ enum tps65086_irqs { TPS65086_IRQ_FAULT, }; +struct tps65086_regulator_config; + /** * struct tps65086 - state holder for the tps65086 driver * @@ -108,6 +110,7 @@ struct tps65086 { struct device *dev; struct regmap *regmap; unsigned int chip_id; + const struct tps65086_regulator_config *reg_config; /* IRQ Data */ int irq; |