diff options
author | Patrick Delaunay <patrick.delaunay@st.com> | 2019-02-27 15:36:44 +0100 |
---|---|---|
committer | Jagan Teki <jagan@amarulasolutions.com> | 2019-04-12 11:54:50 +0530 |
commit | b0cc1b846fcb310c0ac2f8cbeb4ed5947dc52912 (patch) | |
tree | 7d112ac9bc6474fe26d616721e49d672b9413f51 /drivers | |
parent | f909ddb3e1770a5ef18606b46000e0d3eaf63b2e (diff) | |
download | u-boot-b0cc1b846fcb310c0ac2f8cbeb4ed5947dc52912.zip u-boot-b0cc1b846fcb310c0ac2f8cbeb4ed5947dc52912.tar.gz u-boot-b0cc1b846fcb310c0ac2f8cbeb4ed5947dc52912.tar.bz2 |
dm: spi: Read default speed and mode values from DT
This patch update the behavior introduced by
commit 96907c0fe50a ("dm: spi: Read default speed and mode values from DT")
In case of DT boot, don't read default speed and mode for SPI from
CONFIG_* but instead read from DT node. This will make sure that boards
with multiple SPI/QSPI controllers can be probed at different
bus frequencies and SPI modes.
Remove also use in boards of the value speed=0 (no more supported)
for ENV in SPI by using CONFIG_ENV_SPI_MAX_HZ=0.
DT values will be always used when available (full DM support of
SPI slave with available DT node) even if speed and mode are requested;
for example in splash screen support (in splash_sf_read_raw)
or in SPL boot (in spl_spi_load_image).
The caller of spi_get_bus_and_cs() no more need to force speed=0.
But the current behavior don't change if the SPI slave is not
present (device with generic driver is created automatically)
or if platdata is used (CONFIG_OF_PLATDATA).
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Acked-by: Jagan Teki <jagan@amarulasolutions.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mtd/spi/Kconfig | 6 | ||||
-rw-r--r-- | drivers/spi/spi-uclass.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/mtd/spi/Kconfig b/drivers/mtd/spi/Kconfig index 5671bca..d3b007a 100644 --- a/drivers/mtd/spi/Kconfig +++ b/drivers/mtd/spi/Kconfig @@ -62,6 +62,9 @@ config SF_DEFAULT_MODE The default mode may be provided by the platform to handle the common case when only a single serial flash is present on the system. + Not used for boot with device tree; the SPI driver reads + speed and mode from platdata values computed from + available node. config SF_DEFAULT_SPEED int "SPI Flash default speed in Hz" @@ -71,6 +74,9 @@ config SF_DEFAULT_SPEED The default speed may be provided by the platform to handle the common case when only a single serial flash is present on the system. + Not used for boot with device tree; the SPI driver reads + speed and mode from platdata values computed from + available node. if SPI_FLASH diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c index 2bc289a..88cb2a1 100644 --- a/drivers/spi/spi-uclass.c +++ b/drivers/spi/spi-uclass.c @@ -328,7 +328,9 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode, } plat = dev_get_parent_platdata(dev); - if (!speed) { + + /* get speed and mode from platdata when available */ + if (plat->max_hz) { speed = plat->max_hz; mode = plat->mode; } |