u-boot/drivers
Stephan Gerhold 3f6e4ec7c3 power: pmic: Add driver for ST-Ericsson AB8500 via PRCMU
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>
2021-07-14 16:48:14 -04:00
..
adc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
ata various minor sandbox improvements 2021-07-07 13:34:42 -04:00
axi dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
bios_emulator treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
block dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
bootcount dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
cache dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
clk clk: uniphier: Add PCIe clock entry 2021-07-14 16:48:05 -04:00
core remove struct uclass_driver::ops 2021-07-06 10:38:03 -06:00
cpu dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
crypto dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
ddr ppc: Remove T4160RDB board 2021-07-07 19:52:24 -04:00
demo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
dfu dfu: add error callback 2021-06-18 10:09:41 +02:00
dma dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
fastboot fastboot: Fix possible buffer overrun 2021-04-12 17:44:55 -04:00
firmware dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
fpga arm: socfpga: Move Stratix10 and Agilex to use TARGET_SOCFPGA_SOC64 2021-03-08 10:59:10 +08:00
gpio gpio: Add driver for Nomadik GPIO 2021-07-14 16:47:56 -04:00
hwspinlock dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
i2c arm: Remove spear600 boards and the rest of SPEAr support 2021-07-07 22:22:42 -04:00
input dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
led dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
mailbox dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
memory memory: stm32-fmc2: migrate trace to dev and log macro 2021-01-13 09:52:58 +01:00
misc misc: i2c_eeprom: Add atmel,24c01 to the list 2021-07-14 16:47:58 -04:00
mmc mmc: sunxi: Use mmc_of_parse() 2021-07-10 01:22:09 +01:00
mtd arm: Remove spear600 boards and the rest of SPEAr support 2021-07-07 22:22:42 -04:00
mux dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
net ppc: Remove T4160RDB board 2021-07-07 19:52:24 -04:00
nvme dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
pch dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
pci pci: uniphier: Add UniPhier PCIe controller driver 2021-07-14 16:48:08 -04:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: socionext: Add UniPhier PCIe PHY driver 2021-07-14 16:48:07 -04:00
pinctrl various minor sandbox improvements 2021-07-07 13:34:42 -04:00
power power: pmic: Add driver for ST-Ericsson AB8500 via PRCMU 2021-07-14 16:48:14 -04:00
pwm dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
qe ppc: Remove TARGET_T1040QDS references 2021-04-10 08:04:42 -04:00
ram dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
remoteproc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
reset reset: uniphier: Add PCIe reset entry 2021-07-14 16:48:06 -04:00
rng dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
rtc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
scsi dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
serial serial: a37xx: Switch to XTAL clock when booting Linux kernel 2021-07-08 16:40:52 +02:00
smem dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
soc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
sound dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
spi various minor sandbox improvements 2021-07-07 13:34:42 -04:00
spmi dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
sysinfo dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
sysreset sysreset: provide type of reset in do_reset cmd 2021-04-20 07:31:12 -04:00
tee dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
thermal dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
timer timer: nomadik-mtu: Use dev_read_addr_ptr() 2021-07-14 16:47:57 -04:00
tpm tpm: Correct warning on 32-bit build 2021-03-13 13:14:52 -05:00
ufs dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
usb arm: Remove spear600 boards and the rest of SPEAr support 2021-07-07 22:22:42 -04:00
video dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
virtio dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
w1 various minor sandbox improvements 2021-07-07 13:34:42 -04:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
xen dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
Kconfig phy: socionext: Add UniPhier PCIe PHY driver 2021-07-14 16:48:07 -04:00
Makefile phy: socionext: Add UniPhier PCIe PHY driver 2021-07-14 16:48:07 -04:00