mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-24 12:03:39 +00:00
3227c85fe7
This bus controller is used to communicate with an X-Powers AXP PMIC. Currently, various drivers access PMIC registers through a platform- specific non-DM "pmic_bus" interface, which depends on the legacy I2C framework. In order to convert those drivers to use DM_PMIC, this bus needs a DM_I2C driver. Refactor the rsb functions to take the base address as a parameter, and implement both the existing interface (which is still needed in SPL) and the DM_I2C interface on top of them. The register for switching between I2C/P2WI/RSB mode is the same across all PMIC variants, so move that to the common header. There are only a couple of pairs of hardware/runtime addresses used across all PMIC variants. So far the code expected only the "primary" pair, but some PMICs like the AXP305 and AXP805 use the secondary pair, so add support for that to the DM driver as well. 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>
56 lines
2.2 KiB
Makefile
56 lines
2.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# (C) Copyright 2000-2007
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
obj-$(CONFIG_$(SPL_)DM_I2C) += i2c-uclass.o
|
|
ifdef CONFIG_ACPIGEN
|
|
obj-$(CONFIG_$(SPL_)DM_I2C) += acpi_i2c.o
|
|
endif
|
|
obj-$(CONFIG_$(SPL_)DM_I2C_GPIO) += i2c-gpio.o
|
|
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_TUNNEL) += cros_ec_tunnel.o
|
|
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_LDO) += cros_ec_ldo.o
|
|
|
|
obj-$(CONFIG_I2C_MV) += mv_i2c.o
|
|
obj-$(CONFIG_$(SPL_)SYS_I2C_LEGACY) += i2c_core.o
|
|
obj-$(CONFIG_SYS_I2C_ASPEED) += ast_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_AT91) += at91_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_CADENCE) += i2c-cdns.o
|
|
obj-$(CONFIG_SYS_I2C_CA) += i2c-cortina.o
|
|
obj-$(CONFIG_SYS_I2C_DAVINCI) += davinci_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_DW) += designware_i2c.o
|
|
ifdef CONFIG_PCI
|
|
obj-$(CONFIG_SYS_I2C_DW) += designware_i2c_pci.o
|
|
endif
|
|
obj-$(CONFIG_SYS_I2C_FSL) += fsl_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_IHS) += ihs_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_INTEL) += intel_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_IMX_LPI2C) += imx_lpi2c.o
|
|
obj-$(CONFIG_SYS_I2C_IPROC) += iproc_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_KONA) += kona_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_LPC32XX) += lpc32xx_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_MESON) += meson_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_MVTWSI) += mvtwsi.o
|
|
obj-$(CONFIG_SYS_I2C_MXC) += mxc_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_NEXELL) += nx_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_OCORES) += ocores_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_OCTEON) += octeon_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_OMAP24XX) += omap24xx_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_RCAR_I2C) += rcar_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_RCAR_IIC) += rcar_iic.o
|
|
obj-$(CONFIG_SYS_I2C_ROCKCHIP) += rk_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_S3C24X0) += s3c24x0_i2c.o exynos_hs_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_SANDBOX) += sandbox_i2c.o i2c-emul-uclass.o
|
|
obj-$(CONFIG_SYS_I2C_SH) += sh_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_SOFT) += soft_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_STM32F7) += stm32f7_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_SUN6I_P2WI) += sun6i_p2wi.o
|
|
obj-$(CONFIG_SYS_I2C_SUN8I_RSB) += sun8i_rsb.o
|
|
obj-$(CONFIG_SYS_I2C_SYNQUACER) += synquacer_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_TEGRA) += tegra_i2c.o
|
|
obj-$(CONFIG_SYS_I2C_UNIPHIER) += i2c-uniphier.o
|
|
obj-$(CONFIG_SYS_I2C_UNIPHIER_F) += i2c-uniphier-f.o
|
|
obj-$(CONFIG_SYS_I2C_VERSATILE) += i2c-versatile.o
|
|
obj-$(CONFIG_SYS_I2C_XILINX_XIIC) += xilinx_xiic.o
|
|
obj-$(CONFIG_TEGRA186_BPMP_I2C) += tegra186_bpmp_i2c.o
|
|
|
|
obj-$(CONFIG_$(SPL_)I2C_MUX) += muxes/
|