Commit 3a5e6e49 authored by Andre Werner's avatar Andre Werner Committed by Mark Brown

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: default avatarAndre Werner <andre.werner@systec-electronic.com>
Link: https://lore.kernel.org/r/20230818083721.29790-5-andre.werner@systec-electronic.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1c6350f2
This diff is collapsed.
...@@ -99,6 +99,8 @@ enum tps65086_irqs { ...@@ -99,6 +99,8 @@ enum tps65086_irqs {
TPS65086_IRQ_FAULT, TPS65086_IRQ_FAULT,
}; };
struct tps65086_regulator_config;
/** /**
* struct tps65086 - state holder for the tps65086 driver * struct tps65086 - state holder for the tps65086 driver
* *
...@@ -108,6 +110,7 @@ struct tps65086 { ...@@ -108,6 +110,7 @@ struct tps65086 {
struct device *dev; struct device *dev;
struct regmap *regmap; struct regmap *regmap;
unsigned int chip_id; unsigned int chip_id;
const struct tps65086_regulator_config *reg_config;
/* IRQ Data */ /* IRQ Data */
int irq; int irq;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment