mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 11:00:15 +00:00
27a93dd4a9
This driver handles most voltage regulators found in X-Powers AXP PMICs. It is based on, and intended to replace, the regulator driver in TF-A. AXP PMIC regulators can be divided into 6 categories: - Switches without voltage control => fully supported. - Single linear range => fully supported. - Two linear ranges, "step" and "2 * step" => fully supported. - Two linear ranges, "step" and "5 * step" => only the first range is supported. No boards are known to use the second range. - Non-linear voltage values => fully supported. - LDOs shared with GPIO pins => not supported. Signed-off-by: Samuel Holland <samuel@sholland.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
419 lines
16 KiB
Text
419 lines
16 KiB
Text
config DM_REGULATOR
|
|
bool "Enable Driver Model for REGULATOR drivers (UCLASS_REGULATOR)"
|
|
depends on DM
|
|
---help---
|
|
This config enables the driver model regulator support.
|
|
UCLASS_REGULATOR - designed to provide a common API for basic regulator's
|
|
functions, like get/set Voltage or Current value, enable state, etc...
|
|
Note:
|
|
When enabling this, please read the description, found in the files:
|
|
- 'include/power/pmic.h'
|
|
- 'include/power/regulator.h'
|
|
- 'drivers/power/pmic/pmic-uclass.c'
|
|
- 'drivers/power/pmic/regulator-uclass.c'
|
|
It's important to call the device_bind() with the proper node offset,
|
|
when binding the regulator devices. The pmic_bind_childs() can be used
|
|
for this purpose if PMIC I/O driver is implemented or dm_scan_fdt_dev()
|
|
otherwise. Detailed information can be found in the header file.
|
|
|
|
config SPL_DM_REGULATOR
|
|
bool "Enable regulators for SPL"
|
|
depends on DM_REGULATOR && SPL_POWER
|
|
---help---
|
|
Regulators are seldom needed in SPL. Even if they are accessed, some
|
|
code space can be saved by accessing the PMIC registers directly.
|
|
Enable this option if you need regulators in SPL and can cope with
|
|
the extra code size.
|
|
|
|
config REGULATOR_ACT8846
|
|
bool "Enable driver for ACT8846 regulator"
|
|
depends on DM_REGULATOR && PMIC_ACT8846
|
|
---help---
|
|
Enable support for the regulator functions of the ACT8846 PMIC. The
|
|
driver implements get/set api for the various BUCKS and LDOS supported
|
|
by the PMIC device. This driver is controlled by a device tree node
|
|
which includes voltage limits.
|
|
|
|
config REGULATOR_AS3722
|
|
bool "Enable driver for AS7322 regulator"
|
|
depends on DM_REGULATOR && PMIC_AS3722
|
|
help
|
|
Enable support for the regulator functions of the AS3722. The
|
|
driver implements enable/disable for step-down bucks and LDOs,
|
|
but does not yet support change voltages. Currently this must be
|
|
done using direct register writes to the PMIC.
|
|
|
|
config REGULATOR_AXP
|
|
bool "Enable driver for X-Powers AXP PMIC regulators"
|
|
depends on DM_REGULATOR && PMIC_AXP
|
|
help
|
|
Enable support for the regulators (DCDCs, LDOs) in the
|
|
X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
|
|
|
|
config SPL_REGULATOR_AXP
|
|
bool "Enable driver for X-Powers AXP PMIC regulators in SPL"
|
|
depends on SPL_DM_REGULATOR && SPL_PMIC_AXP
|
|
help
|
|
Enable support in SPL for the regulators (DCDCs, LDOs) in the
|
|
X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
|
|
|
|
config DM_REGULATOR_BD71837
|
|
bool "Enable Driver Model for ROHM BD71837/BD71847 regulators"
|
|
depends on DM_REGULATOR && DM_PMIC_BD71837
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for regulators on ROHM BD71837 and BD71847 PMICs.
|
|
BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced version
|
|
containing 6 bucks and 6 LDOs. The driver implements get/set api for
|
|
value and enable.
|
|
|
|
config SPL_DM_REGULATOR_BD71837
|
|
bool "Enable Driver Model for ROHM BD71837/BD71847 regulators in SPL"
|
|
depends on DM_REGULATOR_BD71837 && SPL
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for regulators on ROHM BD71837 and BD71847 in SPL.
|
|
|
|
config DM_REGULATOR_PCA9450
|
|
bool "Enable Driver Model for NXP PCA9450 regulators"
|
|
depends on DM_REGULATOR && DM_PMIC_PCA9450
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for regulators on NXP PCA9450 PMICs. PCA9450 contains 6 bucks
|
|
and 5 LDOS. The driver implements get/set api for value and enable.
|
|
|
|
config SPL_DM_REGULATOR_PCA9450
|
|
bool "Enable Driver Model for NXP PCA9450 regulators in SPL"
|
|
depends on DM_REGULATOR_PCA9450 && SPL
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for regulators on ROHM PCA9450 in SPL.
|
|
|
|
config DM_REGULATOR_DA9063
|
|
bool "Enable Driver Model for REGULATOR DA9063"
|
|
depends on DM_REGULATOR && DM_PMIC_DA9063
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for REGULATOR DA9063.
|
|
The driver implements get/set api for value, enable and mode for all
|
|
regulators. It also implements the get/set api for current for the
|
|
buck regulators.
|
|
|
|
config SPL_DM_REGULATOR_DA9063
|
|
bool "Enable Driver Model for REGULATOR DA9063 in SPL"
|
|
depends on DM_REGULATOR && DM_PMIC_DA9063 && SPL
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for REGULATOR DA9063.
|
|
The driver implements get/set api for value, enable and mode for all
|
|
regulators. It also implements the get/set api for current for the
|
|
buck regulators.
|
|
|
|
config DM_REGULATOR_PFUZE100
|
|
bool "Enable Driver Model for REGULATOR PFUZE100"
|
|
depends on DM_REGULATOR && DM_PMIC_PFUZE100
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for REGULATOR PFUZE100. The driver implements get/set api for:
|
|
value, enable and mode.
|
|
|
|
config REGULATOR_PWM
|
|
bool "Enable driver for PWM regulators"
|
|
depends on DM_REGULATOR
|
|
---help---
|
|
Enable support for the PWM regulator functions which voltage are
|
|
controlled by PWM duty ratio. Some of Rockchip board using this kind
|
|
of regulator. The driver implements get/set api for the various BUCKS.
|
|
This driver is controlled by a device tree node
|
|
which includes voltage limits.
|
|
|
|
config SPL_REGULATOR_PWM
|
|
bool "Enable Driver for PWM regulators in SPL"
|
|
depends on REGULATOR_PWM && SPL
|
|
help
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for PWM regulators in SPL.
|
|
|
|
config DM_REGULATOR_MAX77686
|
|
bool "Enable Driver Model for REGULATOR MAX77686"
|
|
depends on DM_REGULATOR && DM_PMIC_MAX77686
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for REGULATOR MAX77686. The driver implements get/set api for:
|
|
value, enable and mode.
|
|
|
|
config DM_REGULATOR_NPCM8XX
|
|
bool "Enable Driver Model for NPCM8xx voltage supply"
|
|
depends on DM_REGULATOR && ARCH_NPCM8XX
|
|
help
|
|
Enable support for configuring voltage supply on NPCM8XX SoC. The
|
|
voltage supplies support two voltage levels and the driver implements
|
|
get/set api for setting the value.
|
|
|
|
config DM_REGULATOR_FAN53555
|
|
bool "Enable Driver Model for REGULATOR FAN53555"
|
|
depends on DM_PMIC_FAN53555
|
|
help
|
|
This config enables implementation of driver-model regulator
|
|
uclass features for the FAN53555 regulator. The FAN53555 is
|
|
a (family of) single-output regulators that supports
|
|
transitioning between two different output voltages based on
|
|
an voltage selection pin.
|
|
|
|
The driver implements a get/set api for the voltage of the
|
|
'normal mode' voltage only. Switching to 'suspend mode'
|
|
(i.e. the alternate voltage), disabling output via software,
|
|
or switching the mode is not supported by this driver (at
|
|
this time).
|
|
|
|
config DM_REGULATOR_COMMON
|
|
bool
|
|
depends on DM_REGULATOR
|
|
|
|
config SPL_DM_REGULATOR_COMMON
|
|
bool
|
|
depends on DM_REGULATOR
|
|
|
|
config DM_REGULATOR_FIXED
|
|
bool "Enable Driver Model for REGULATOR Fixed value"
|
|
depends on DM_REGULATOR
|
|
select DM_REGULATOR_COMMON
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for fixed value regulators. The driver implements get/set api
|
|
for enable and get only for voltage value.
|
|
|
|
config SPL_DM_REGULATOR_FIXED
|
|
bool "Enable Driver Model for REGULATOR Fixed value in SPL"
|
|
depends on DM_REGULATOR_FIXED && SPL
|
|
select SPL_DM_REGULATOR_COMMON
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for fixed value regulators in SPL.
|
|
|
|
config DM_REGULATOR_GPIO
|
|
bool "Enable Driver Model for GPIO REGULATOR"
|
|
depends on DM_REGULATOR && DM_GPIO
|
|
select DM_REGULATOR_COMMON
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for gpio regulators. The driver implements get/set for
|
|
voltage value.
|
|
|
|
config SPL_DM_REGULATOR_GPIO
|
|
bool "Enable Driver Model for GPIO REGULATOR in SPL"
|
|
depends on DM_REGULATOR_GPIO && SPL_GPIO
|
|
select SPL_DM_REGULATOR_COMMON
|
|
---help---
|
|
This config enables implementation of driver-model regulator uclass
|
|
features for gpio regulators in SPL.
|
|
|
|
config REGULATOR_RK8XX
|
|
bool "Enable driver for RK8XX regulators"
|
|
depends on DM_REGULATOR && PMIC_RK8XX
|
|
---help---
|
|
Enable support for the regulator functions of the RK8XX PMIC. The
|
|
driver implements get/set api for the various BUCKS and LDOs supported
|
|
by the PMIC device. This driver is controlled by a device tree node
|
|
which includes voltage limits.
|
|
|
|
config DM_REGULATOR_S2MPS11
|
|
bool "Enable driver for S2MPS11 regulator"
|
|
depends on DM_REGULATOR && PMIC_S2MPS11
|
|
---help---
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR S2MPS11.
|
|
The driver implements get/set api for: value and enable.
|
|
|
|
config REGULATOR_S5M8767
|
|
bool "Enable support for S5M8767 regulator"
|
|
depends on DM_REGULATOR && PMIC_S5M8767
|
|
---help---
|
|
This enables the regulator features of the S5M8767, allowing voltages
|
|
to be set, etc. The driver is not fully complete but supports most
|
|
common requirements, including all LDOs and BUCKs. This allows many
|
|
supplies to be set automatically using the device tree values.
|
|
|
|
config DM_REGULATOR_SANDBOX
|
|
bool "Enable Driver Model for Sandbox PMIC regulator"
|
|
depends on DM_REGULATOR && DM_PMIC_SANDBOX
|
|
---help---
|
|
Enable the regulator driver for emulated Sandbox PMIC.
|
|
The emulated PMIC device depends on two drivers:
|
|
- sandbox PMIC I/O driver - implements dm pmic operations
|
|
- sandbox PMIC regulator driver - implements dm regulator operations
|
|
- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
|
|
|
|
The regulator driver provides uclass operations for sandbox PMIC's
|
|
regulators. The driver implements get/set api for: voltage, current,
|
|
operation mode and enable state.
|
|
The driver supports LDO and BUCK regulators.
|
|
|
|
The Sandbox PMIC info:
|
|
* I/O interface:
|
|
- I2C chip address: 0x40
|
|
- first register address: 0x0
|
|
- register count: 0x10
|
|
* Adjustable outputs:
|
|
- 2x LDO
|
|
- 2x BUCK
|
|
- Each, with a different operating conditions (header).
|
|
* Reset values:
|
|
- set by i2c emul driver's probe() (defaults in header)
|
|
|
|
A detailed information can be found in header: '<power/sandbox_pmic.h>'
|
|
Binding info: 'doc/device-tree-bindings/pmic/max77686.txt'
|
|
|
|
config REGULATOR_TPS65090
|
|
bool "Enable driver for TPS65090 PMIC regulators"
|
|
depends on PMIC_TPS65090
|
|
---help---
|
|
The TPS65090 provides several FETs (Field-effect Transistors,
|
|
effectively switches) which are supported by this driver as
|
|
regulators, one for each FET. The standard regulator interface is
|
|
supported, but it is only possible to turn the regulators on or off.
|
|
There is no voltage/current control.
|
|
|
|
config DM_REGULATOR_PALMAS
|
|
bool "Enable driver for PALMAS PMIC regulators"
|
|
depends on PMIC_PALMAS
|
|
---help---
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR PALMAS and the family of PALMAS PMICs.
|
|
The driver implements get/set api for: value and enable.
|
|
|
|
config DM_REGULATOR_PBIAS
|
|
bool "Enable driver for PBIAS regulator"
|
|
depends on DM_REGULATOR
|
|
select REGMAP
|
|
select SYSCON
|
|
---help---
|
|
This enables implementation of driver-model regulator uclass
|
|
features for pseudo-regulator PBIAS found in the OMAP SOCs.
|
|
This pseudo-regulator is used to provide a BIAS voltage to MMC1
|
|
signal pads and must be configured properly during a voltage switch.
|
|
Voltage switching is required by some operating modes of SDcards and
|
|
eMMC.
|
|
|
|
config DM_REGULATOR_LP873X
|
|
bool "Enable driver for LP873X PMIC regulators"
|
|
depends on PMIC_LP873X
|
|
---help---
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR LP873X and the family of LP873X PMICs.
|
|
The driver implements get/set api for: value and enable.
|
|
|
|
config DM_REGULATOR_LP87565
|
|
bool "Enable driver for LP87565 PMIC regulators"
|
|
depends on PMIC_LP87565
|
|
---help---
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR LP87565 and the family of LP87565 PMICs.
|
|
LP87565 series of PMICs have 4 single phase BUCKs that can also
|
|
be configured in multi phase modes. The driver implements
|
|
get/set api for value and enable.
|
|
|
|
config DM_REGULATOR_STM32_VREFBUF
|
|
bool "Enable driver for STMicroelectronics STM32 VREFBUF"
|
|
depends on DM_REGULATOR && (STM32H7 || ARCH_STM32MP)
|
|
help
|
|
This driver supports STMicroelectronics STM32 VREFBUF (voltage
|
|
reference buffer) which can be used as voltage reference for
|
|
internal ADCs, DACs and also for external components through
|
|
dedicated Vref+ pin.
|
|
|
|
config DM_REGULATOR_TPS65910
|
|
bool "Enable driver for TPS65910 PMIC regulators"
|
|
depends on DM_PMIC_TPS65910
|
|
---help---
|
|
The TPS65910 PMIC provides 4 SMPSs and 8 LDOs. This driver supports all
|
|
regulator types of the TPS65910 (BUCK, BOOST and LDO). It implements
|
|
the get/set api for value and enable.
|
|
|
|
config DM_REGULATOR_TPS62360
|
|
bool "Enable driver for TPS6236x Power Regulator"
|
|
depends on DM_REGULATOR
|
|
help
|
|
The TPS6236X DC/DC step down converter provides a single output
|
|
power line peaking at 3A current. This driver supports all four
|
|
variants of the chip (TPS62360, TPS62361, TPS62362, TPS62363). It
|
|
implements the get/set api for value only, as the power line is
|
|
always on.
|
|
|
|
config DM_REGULATOR_STPMIC1
|
|
bool "Enable driver for STPMIC1 regulators"
|
|
depends on DM_REGULATOR && PMIC_STPMIC1
|
|
---help---
|
|
Enable support for the regulator functions of the STPMIC1 PMIC. The
|
|
driver implements get/set api for the various BUCKS and LDOs supported
|
|
by the PMIC device. This driver is controlled by a device tree node
|
|
which includes voltage limits.
|
|
|
|
config DM_REGULATOR_ANATOP
|
|
bool "Enable driver for ANATOP regulators"
|
|
depends on DM_REGULATOR
|
|
select REGMAP
|
|
select SYSCON
|
|
help
|
|
Enable support for the Freescale i.MX on-chip ANATOP LDO
|
|
regulators. It is recommended that this option be enabled on
|
|
i.MX6 platform.
|
|
|
|
config SPL_DM_REGULATOR_STPMIC1
|
|
bool "Enable driver for STPMIC1 regulators in SPL"
|
|
depends on SPL_DM_REGULATOR && PMIC_STPMIC1
|
|
help
|
|
Enable support for the regulator functions of the STPMIC1 PMIC in SPL.
|
|
|
|
config SPL_DM_REGULATOR_PALMAS
|
|
bool "Enable driver for PALMAS PMIC regulators"
|
|
depends on SPL_PMIC_PALMAS
|
|
help
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR PALMAS and the family of PALMAS PMICs.
|
|
The driver implements get/set api for: value and enable in SPL.
|
|
|
|
config SPL_DM_REGULATOR_LP87565
|
|
bool "Enable driver for LP87565 PMIC regulators"
|
|
depends on SPL_PMIC_LP87565
|
|
help
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR LP87565 and the family of LP87565 PMICs.
|
|
LP87565 series of PMICs have 4 single phase BUCKs that can also
|
|
be configured in multi phase modes. The driver implements
|
|
get/set api for value and enable in SPL.
|
|
|
|
config SPL_DM_REGULATOR_LP873X
|
|
bool "Enable driver for LP873X PMIC regulators"
|
|
depends on SPL_PMIC_LP873X
|
|
help
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR LP873X and the family of LP873X PMICs.
|
|
The driver implements get/set api for: value and enable in SPL.
|
|
|
|
config DM_REGULATOR_TPS65941
|
|
bool "Enable driver for TPS65941 PMIC regulators"
|
|
depends on PMIC_TPS65941
|
|
help
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR TPS65941 and the family of TPS65941 PMICs.
|
|
TPS65941 series of PMICs have 5 single phase BUCKs that can also
|
|
be configured in multi phase modes & 4 LDOs. The driver implements
|
|
get/set api for value and enable.
|
|
|
|
config DM_REGULATOR_SCMI
|
|
bool "Enable driver for SCMI voltage domain regulators"
|
|
depends on DM_REGULATOR
|
|
select SCMI_AGENT
|
|
help
|
|
Enable this option if you want to support regulators exposed through
|
|
the SCMI voltage domain protocol by a SCMI server.
|
|
|
|
config DM_REGULATOR_TPS65219
|
|
bool "Enable driver for TPS65219 PMIC regulators"
|
|
depends on PMIC_TPS65219
|
|
help
|
|
This enables implementation of driver-model regulator uclass
|
|
features for REGULATOR TPS65219 and the family of TPS65219 PMICs.
|
|
TPS65219 series of PMICs have 3 single phase BUCKs & 4 LDOs.
|
|
The driver implements get/set api for value and enable.
|