mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
dm: i2c: allow disabling driver model in SPL
At present if U-Boot proper uses driver model for I2C, then SPL has to also. While this is desirable, it places a significant barrier to moving to driver model in some cases. For example, with a space-constrained SPL it may be necessary to enable CONFIG_SPL_OF_PLATDATA which involves adjusting some drivers. This patch introduces a separate Kconfig symbols for enabling DM_I2C and DM_I2C_GPIO support in SPL. This will also help to get away from dirty workarounds to achieve non-DM I2C support for SPL, which is currently used in some board header files like: ifdef CONFIG_SPL_BUILD undef CONFIG_DM_I2C endif Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heiko Schocher <hs@denx.de> Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
73c16692bc
commit
d1f3abe1e7
3 changed files with 24 additions and 3 deletions
|
@ -14,6 +14,17 @@ config DM_I2C
|
|||
device (bus child) info is kept as parent plat. The interface
|
||||
is defined in include/i2c.h.
|
||||
|
||||
config SPL_DM_I2C
|
||||
bool "Enable Driver Model for I2C drivers in SPL"
|
||||
depends on SPL_DM && DM_I2C
|
||||
default y
|
||||
help
|
||||
Enable driver model for I2C. The I2C uclass interface: probe, read,
|
||||
write and speed, is implemented with the bus drivers operations,
|
||||
which provide methods for bus setting and data transfer. Each chip
|
||||
device (bus child) info is kept as parent platdata. The interface
|
||||
is defined in include/i2c.h.
|
||||
|
||||
config I2C_CROS_EC_TUNNEL
|
||||
tristate "Chrome OS EC tunnel I2C bus"
|
||||
depends on CROS_EC
|
||||
|
@ -61,6 +72,16 @@ config DM_I2C_GPIO
|
|||
bindings are supported.
|
||||
Binding info: doc/device-tree-bindings/i2c/i2c-gpio.txt
|
||||
|
||||
config SPL_DM_I2C_GPIO
|
||||
bool "Enable Driver Model for software emulated I2C bus driver in SPL"
|
||||
depends on SPL_DM && DM_I2C_GPIO && SPL_DM_GPIO && SPL_GPIO_SUPPORT
|
||||
default y
|
||||
help
|
||||
Enable the i2c bus driver emulation by using the GPIOs. The bus GPIO
|
||||
configuration is given by the device tree. Kernel-style device tree
|
||||
bindings are supported.
|
||||
Binding info: doc/device-tree-bindings/i2c/i2c-gpio.txt
|
||||
|
||||
config SYS_I2C_AT91
|
||||
bool "Atmel I2C driver"
|
||||
depends on DM_I2C && ARCH_AT91
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
#
|
||||
# (C) Copyright 2000-2007
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
obj-$(CONFIG_DM_I2C) += i2c-uclass.o
|
||||
obj-$(CONFIG_$(SPL_)DM_I2C) += i2c-uclass.o
|
||||
ifdef CONFIG_ACPIGEN
|
||||
obj-$(CONFIG_DM_I2C) += acpi_i2c.o
|
||||
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
|
||||
|
|
|
@ -17,7 +17,7 @@ obj-$(CONFIG_SANDBOX) += p2sb_sandbox.o p2sb_emul.o
|
|||
obj-$(CONFIG_SANDBOX) += swap_case.o
|
||||
endif
|
||||
|
||||
ifdef CONFIG_DM_I2C
|
||||
ifdef CONFIG_$(SPL_)DM_I2C
|
||||
ifndef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_SANDBOX) += i2c_eeprom_emul.o
|
||||
endif
|
||||
|
|
Loading…
Add table
Reference in a new issue