mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-06 05:04:26 +00:00
3f6e4ec7c3
All devices based on ST-Ericsson Ux500 use a PMIC similar to AB8500 (Analog Baseband). There is AB8500, AB8505, AB9540 and AB8540 although in practice only AB8500 and AB8505 are relevant since the platforms with AB9540 and AB8540 were cancelled and never used in production. In general, the AB8500 PMIC uses I2C as control interface, where the different register banks are represented as separate I2C devices. However, in practice AB8500 is always connected to a special I2C bus on the DB8500 SoC that is controlled by the power/reset/clock management unit (PRCMU) firmware. Add a simple driver that allows reading/writing registers of the AB8500 PMIC. The driver directly accesses registers from the PRCMU parent device (represented by syscon in U-Boot). Abstracting it further (e.g. with the i2c uclass) would not provide any advantage because the PRCMU I2C bus is always just connected to AB8500 and vice-versa. The ab8500.h header is mostly taken as-is from Linux (with some minor adjustments) to allow using similar code in both Linux and U-Boot. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
344 lines
11 KiB
Text
344 lines
11 KiB
Text
config DM_PMIC
|
|
bool "Enable Driver Model for PMIC drivers (UCLASS_PMIC)"
|
|
depends on DM
|
|
---help---
|
|
This config enables the driver-model PMIC support.
|
|
UCLASS_PMIC - designed to provide an I/O interface for PMIC devices.
|
|
For the multi-function PMIC devices, this can be used as parent I/O
|
|
device for each IC's interface. Then, each children uses its parent
|
|
for read/write. For detailed description, please refer to the files:
|
|
- 'drivers/power/pmic/pmic-uclass.c'
|
|
- 'include/power/pmic.h'
|
|
|
|
config PMIC_CHILDREN
|
|
bool "Allow child devices for PMICs"
|
|
depends on DM_PMIC
|
|
default y
|
|
---help---
|
|
This allows PMICs to support child devices (such as regulators) in
|
|
SPL. This adds quite a bit of code so if you are not using this
|
|
feature you can turn it off. Most likely you should turn it on for
|
|
U-Boot proper.
|
|
|
|
config SPL_PMIC_CHILDREN
|
|
bool "Allow child devices for PMICs in SPL"
|
|
depends on DM_PMIC
|
|
default y
|
|
---help---
|
|
This allows PMICs to support child devices (such as regulators) in
|
|
SPL. This adds quite a bit of code so if you are not using this
|
|
feature you can turn it off. In this case you may need a 'back door'
|
|
to call your regulator code (e.g. see rk8xx.c for direct functions
|
|
for use in SPL).
|
|
|
|
config PMIC_AB8500
|
|
bool "Enable driver for ST-Ericsson AB8500 PMIC via PRCMU"
|
|
depends on DM_PMIC
|
|
select REGMAP
|
|
select SYSCON
|
|
help
|
|
Enable support for the ST-Ericsson AB8500 (Analog Baseband) PMIC.
|
|
It connects with the ST-Ericsson DB8500 SoC via an I2C bus managed by
|
|
the power/reset/clock management unit (PRCMU) firmware.
|
|
|
|
config PMIC_ACT8846
|
|
bool "Enable support for the active-semi 8846 PMIC"
|
|
depends on DM_PMIC && DM_I2C
|
|
---help---
|
|
This PMIC includes 4 DC/DC step-down buck regulators and 8 low-dropout
|
|
regulators (LDOs). It also provides some GPIO, reset and battery
|
|
functions. It uses an I2C interface and is designed for use with
|
|
tablets and smartphones.
|
|
|
|
config DM_PMIC_DA9063
|
|
bool "Enable Driver Model for the Dialog DA9063 PMIC"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC DA9063. The driver implements read/write operations.
|
|
|
|
config SPL_DM_PMIC_DA9063
|
|
bool "Enable Driver Model for the Dialog DA9063 PMIC in SPL"
|
|
depends on DM_PMIC && SPL
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC DA9063. The driver implements read/write operations.
|
|
|
|
config PMIC_AS3722
|
|
bool "Enable support for the Austria Micro Systems (AMS) AS7322 PMIC"
|
|
help
|
|
The AS3722 includes 7 DC/DC buck convertors, 11 low-noise LDOs, a
|
|
real-time clock, GPIOs, ADC and a few other features. It uses an I2C
|
|
interface and is designs to cover most of the power managementment
|
|
required for a tablets or laptop.
|
|
|
|
config DM_PMIC_BD71837
|
|
bool "Enable Driver Model for PMIC BD71837"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC BD71837. The driver implements read/write operations.
|
|
|
|
config SPL_DM_PMIC_BD71837
|
|
bool "Enable Driver Model for PMIC BD71837 in SPL stage"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass
|
|
features for PMIC BD71837. The driver implements read/write
|
|
operations.
|
|
|
|
config DM_PMIC_FAN53555
|
|
bool "Enable support for OnSemi FAN53555"
|
|
depends on DM_PMIC && DM_REGULATOR && DM_I2C
|
|
select DM_REGULATOR_FAN53555
|
|
help
|
|
This config enables implementation of driver-model PMIC
|
|
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 read/write operations for use with the FAN53555
|
|
regulator driver and binds the regulator driver to its node.
|
|
|
|
config DM_PMIC_MP5416
|
|
bool "Enable Driver Model for PMIC MP5416"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC MP5416. The driver implements read/write operations.
|
|
|
|
config SPL_DM_PMIC_MP5416
|
|
bool "Enable Driver Model for PMIC MP5416 in SPL stage"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass
|
|
features for PMIC MP5416. The driver implements read/write
|
|
operations.
|
|
|
|
config DM_PMIC_PCA9450
|
|
bool "Enable Driver Model for PMIC PCA9450"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC PCA9450. The driver implements read/write operations.
|
|
|
|
config SPL_DM_PMIC_PCA9450
|
|
bool "Enable Driver Model for PMIC PCA9450"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC PCA9450 in SPL. The driver implements read/write operations.
|
|
|
|
config DM_PMIC_PFUZE100
|
|
bool "Enable Driver Model for PMIC PFUZE100"
|
|
depends on DM_PMIC
|
|
---help---
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC PFUZE100. The driver implements read/write operations.
|
|
|
|
config SPL_DM_PMIC_PFUZE100
|
|
bool "Enable Driver Model for PMIC PFUZE100 in SPL"
|
|
depends on DM_PMIC
|
|
---help---
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC PFUZE100 in SPL. The driver implements read/write operations.
|
|
|
|
config DM_PMIC_MAX77686
|
|
bool "Enable Driver Model for PMIC MAX77686"
|
|
depends on DM_PMIC
|
|
---help---
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC MAX77686. The driver implements read/write operations.
|
|
|
|
config DM_PMIC_MAX8998
|
|
bool "Enable Driver Model for PMIC MAX8998"
|
|
depends on DM_PMIC
|
|
---help---
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC MAX8998. The driver implements read/write operations.
|
|
|
|
config DM_PMIC_MC34708
|
|
bool "Enable Driver Model for PMIC MC34708"
|
|
depends on DM_PMIC
|
|
help
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC MC34708. The driver implements read/write operations.
|
|
|
|
config PMIC_MAX8997
|
|
bool "Enable Driver Model for PMIC MAX8997"
|
|
depends on DM_PMIC
|
|
---help---
|
|
This config enables implementation of driver-model pmic uclass features
|
|
for PMIC MAX8997. The driver implements read/write operations.
|
|
This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
|
|
- 21x LDOs
|
|
- 12x GPIOs
|
|
- Haptic Motor driver
|
|
- RTC with two alarms
|
|
- Fueal Gauge and One backup battery charger
|
|
- MUIC
|
|
- Others
|
|
|
|
config PMIC_PM8916
|
|
bool "Enable Driver Model for Qualcomm PM8916 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The PM8916 is a PMIC connected to one (or several) processors
|
|
with SPMI bus. It has 2 slaves with several peripherals:
|
|
- 18x LDO
|
|
- 4x GPIO
|
|
- Power and Reset buttons
|
|
- Watchdog
|
|
- RTC
|
|
- Vibrator drivers
|
|
- Others
|
|
|
|
Driver binding info: doc/device-tree-bindings/pmic/pm8916.txt
|
|
|
|
config PMIC_RK8XX
|
|
bool "Enable support for Rockchip PMIC RK8XX"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
|
|
an RTC and two low Rds (resistance (drain to source)) switches. It is
|
|
accessed via an I2C interface. The device is used with Rockchip SoCs.
|
|
This driver implements register read/write operations.
|
|
|
|
config PMIC_S2MPS11
|
|
bool "Enable Driver Model for PMIC Samsung S2MPS11"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The Samsung S2MPS11 PMIC provides:
|
|
- 38 adjustable LDO regulators
|
|
- 9 High-Efficiency Buck Converters
|
|
- 1 BuckBoost Converter
|
|
- RTC with two alarms
|
|
- Backup battery charger
|
|
- I2C Configuration Interface
|
|
This driver provides access to I/O interface only.
|
|
Binding info: doc/device-tree-bindings/pmic/s2mps11.txt
|
|
|
|
config DM_PMIC_SANDBOX
|
|
bool "Enable Driver Model for emulated Sandbox PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
Enable the driver for Sandbox PMIC emulation. The emulated PMIC device
|
|
depends on two drivers:
|
|
- sandbox PMIC I/O driver - implements dm pmic operations
|
|
- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
|
|
|
|
A detailed information can be found in header: '<power/sandbox_pmic.h>'
|
|
|
|
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)
|
|
|
|
Driver binding info: doc/device-tree-bindings/pmic/sandbox.txt
|
|
|
|
config PMIC_S5M8767
|
|
bool "Enable Driver Model for the Samsung S5M8767 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The S5M8767 PMIC provides a large array of LDOs and BUCKs for use
|
|
as a SoC power controller. It also provides 32KHz clock outputs. This
|
|
driver provides basic register access and sets up the attached
|
|
regulators if regulator support is enabled.
|
|
|
|
config PMIC_RN5T567
|
|
bool "Enable driver for Ricoh RN5T567 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
|
|
regulators Real-Time Clock and 4 GPIOs. This driver provides
|
|
register access only.
|
|
|
|
config PMIC_TPS65090
|
|
bool "Enable driver for Texas Instruments TPS65090 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The TPS65090 is a PMIC containing several LDOs, DC to DC convertors,
|
|
FETs and a battery charger. This driver provides register access
|
|
only, and you can enable the regulator/charger drivers separately if
|
|
required.
|
|
|
|
config PMIC_PALMAS
|
|
bool "Enable driver for Texas Instruments PALMAS PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The PALMAS is a PMIC containing several LDOs, SMPS.
|
|
This driver binds the pmic children.
|
|
|
|
config PMIC_LP873X
|
|
bool "Enable driver for Texas Instruments LP873X PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
|
|
This driver binds the pmic children.
|
|
|
|
config PMIC_LP87565
|
|
bool "Enable driver for Texas Instruments LP87565 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The LP87565 is a PMIC containing a bunch of SMPS.
|
|
This driver binds the pmic children.
|
|
|
|
config POWER_MC34VR500
|
|
bool "Enable driver for Freescale MC34VR500 PMIC"
|
|
---help---
|
|
The MC34VR500 is used in conjunction with the FSL T1 and LS1 series
|
|
SoC. It provides 4 buck DC-DC convertors and 5 LDOs, and it is accessed
|
|
via an I2C interface.
|
|
|
|
config DM_PMIC_TPS65910
|
|
bool "Enable driver for Texas Instruments TPS65910 PMIC"
|
|
depends on DM_PMIC
|
|
---help---
|
|
The TPS65910 is a PMIC containing 3 buck DC-DC converters, one boost
|
|
DC-DC converter, 8 LDOs and a RTC. This driver binds the SMPS and LDO
|
|
pmic children.
|
|
|
|
config PMIC_STPMIC1
|
|
bool "Enable support for STMicroelectronics STPMIC1 PMIC"
|
|
depends on DM_PMIC && DM_I2C
|
|
select SYSRESET_CMD_POWEROFF if CMD_POWEROFF && !ARM_PSCI_FW
|
|
---help---
|
|
The STPMIC1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF and 2 power switches.
|
|
It is accessed via an I2C interface. The device is used with STM32MP1
|
|
SoCs. This driver implements register read/write operations.
|
|
|
|
config SPL_PMIC_PALMAS
|
|
bool "Enable driver for Texas Instruments PALMAS PMIC"
|
|
depends on DM_PMIC
|
|
help
|
|
The PALMAS is a PMIC containing several LDOs, SMPS.
|
|
This driver binds the pmic children in SPL.
|
|
|
|
config SPL_PMIC_LP873X
|
|
bool "Enable driver for Texas Instruments LP873X PMIC"
|
|
depends on DM_PMIC
|
|
help
|
|
The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
|
|
This driver binds the pmic children in SPL.
|
|
|
|
config SPL_PMIC_LP87565
|
|
bool "Enable driver for Texas Instruments LP87565 PMIC"
|
|
depends on DM_PMIC
|
|
help
|
|
The LP87565 is a PMIC containing a bunch of SMPS.
|
|
This driver binds the pmic children in SPL.
|
|
|
|
config PMIC_TPS65941
|
|
bool "Enable driver for Texas Instruments TPS65941 PMIC"
|
|
depends on DM_PMIC
|
|
help
|
|
The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
|
|
This driver binds the pmic children.
|