summaryrefslogtreecommitdiffstats
path: root/include/linux/mfd
diff options
context:
space:
mode:
authorAndre Werner <andre.werner@systec-electronic.com>2023-08-18 10:37:24 +0200
committerMark Brown <broonie@kernel.org>2023-08-18 22:06:52 +0100
commit3a5e6e49855661ad39b8fbb1dbd041178af98e00 (patch)
tree1373496febf33f12cbecebf6f2b78901b55fa1c5 /include/linux/mfd
parent1c6350f2d3b07b0d7281317f1d0c24c892597e5b (diff)
downloadlinux-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.h3
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;