mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
This change allows more fine tuning of driver model based SPI support in SPL and TPL. It is now possible to explicitly enable/disable the DM_SPI support in SPL and TPL via Kconfig option. Before this change it was necessary to use: /* SPI Flash Configs */ #if defined(CONFIG_SPL_BUILD) #undef CONFIG_DM_SPI #undef CONFIG_DM_SPI_FLASH #undef CONFIG_SPI_FLASH_MTD #endif in the ./include/configs/<board>.h, which is error prone and shall be avoided when we strive to switch to Kconfig. The goal of this patch: Provide distinction for DM_SPI support in both U-Boot proper and SPL (TPL). Valid use case is when U-Boot proper wants to use DM_SPI, but SPL must still support non DM driver. Another use case is the conversion of non DM/DTS SPI driver to support DM/DTS. When such driver needs to work in both SPL and U-Boot proper, the distinction is needed in Kconfig (also if SPL version of the driver supports OF_PLATDATA). In the end of the day one would have to support following use cases (in single driver file - e.g. mxs_spi.c): - U-Boot proper driver supporting DT/DTS - U-Boot proper driver without DT/DTS support (deprecated) - SPL driver without DT/DTS support - SPL (and TPL) driver with DT/DTS (when the SoC has enough resources to run full blown DT/DTS) - SPL driver with DT/DTS and SPL_OF_PLATDATA (when one have constrained environment with no fitImage and OF_LIBFDT support). Some boards do require SPI support (with DM) in SPL (TPL) and some only have DM_SPI{_FLASH} defined to allow compiling SPL. This patch converts #ifdef CONFIG_DM_SPI* to #if CONFIG_IS_ENABLED(DM_SPI) and provides corresponding defines in Kconfig. Signed-off-by: Lukasz Majewski <lukma@denx.de> Tested-by: Adam Ford <aford173@gmail.com> #da850-evm Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> [trini: Fixup a few platforms] Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
committed by
Tom Rini
parent
c87f9ce227
commit
56c4046038
4
cmd/sf.c
4
cmd/sf.c
@@ -91,7 +91,7 @@ static int do_spi_flash_probe(int argc, char *const argv[])
|
||||
unsigned int speed = CONFIG_SF_DEFAULT_SPEED;
|
||||
unsigned int mode = CONFIG_SF_DEFAULT_MODE;
|
||||
char *endp;
|
||||
#ifdef CONFIG_DM_SPI_FLASH
|
||||
#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
|
||||
struct udevice *new, *bus_dev;
|
||||
int ret;
|
||||
#else
|
||||
@@ -124,7 +124,7 @@ static int do_spi_flash_probe(int argc, char *const argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DM_SPI_FLASH
|
||||
#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
|
||||
/* Remove the old device, otherwise probe will just be a nop */
|
||||
ret = spi_find_bus_and_cs(bus, cs, &bus_dev, &new);
|
||||
if (!ret) {
|
||||
|
@@ -38,7 +38,7 @@ static int do_spi_xfer(int bus, int cs)
|
||||
struct spi_slave *slave;
|
||||
int ret = 0;
|
||||
|
||||
#ifdef CONFIG_DM_SPI
|
||||
#if CONFIG_IS_ENABLED(DM_SPI)
|
||||
char name[30], *str;
|
||||
struct udevice *dev;
|
||||
|
||||
@@ -63,7 +63,7 @@ static int do_spi_xfer(int bus, int cs)
|
||||
goto done;
|
||||
ret = spi_xfer(slave, bitlen, dout, din,
|
||||
SPI_XFER_BEGIN | SPI_XFER_END);
|
||||
#ifndef CONFIG_DM_SPI
|
||||
#if !CONFIG_IS_ENABLED(DM_SPI)
|
||||
/* We don't get an error code in this case */
|
||||
if (ret)
|
||||
ret = -EIO;
|
||||
@@ -79,7 +79,7 @@ static int do_spi_xfer(int bus, int cs)
|
||||
}
|
||||
done:
|
||||
spi_release_bus(slave);
|
||||
#ifndef CONFIG_DM_SPI
|
||||
#if !CONFIG_IS_ENABLED(DM_SPI)
|
||||
spi_free_slave(slave);
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user