
On Mon, Nov 19, 2018 at 11:55 AM Patrick Delaunay patrick.delaunay@st.com wrote:
In case of DT boot, don't read default speed and mode for SPI from CONFIG_*, instead read from DT node.
Signed-off-by: Christophe Kerello christophe.kerello@st.com Signed-off-by: Patrick Delaunay patrick.delaunay@st.com
Changes in v2:
- use variables to avoid duplicated code
common/spl/spl_spi.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 8cd4830..b348b45 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -74,15 +74,21 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, unsigned payload_offs = CONFIG_SYS_SPI_U_BOOT_OFFS; struct spi_flash *flash; struct image_header *header;
unsigned int max_hz = CONFIG_SF_DEFAULT_SPEED;
unsigned int spi_mode = CONFIG_SF_DEFAULT_MODE;
Instead of
+#ifdef CONFIG_DM_SPI_FLASH
What about using:
#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
/* In DM mode defaults will be taken from DT */
max_hz = 0, spi_mode = 0;
+#endif
This one-line change 'should' give you what you want, the settings of 0 for boards using the device tree. If board that uses OF_PLATDATA cannot load the device tree, it'll default back to the configs set above. You could probably combine all if statements into one, and I'd be fine with that too.
This one-line change made my board boot with this series. I haven't applied the follow-up series yet but if a v3 was posted with this change, I'd mark it as 'tested-by.
adam
/* * Load U-Boot image from SPI flash into RAM */ flash = spi_flash_probe(CONFIG_SF_DEFAULT_BUS, CONFIG_SF_DEFAULT_CS,
CONFIG_SF_DEFAULT_SPEED,
CONFIG_SF_DEFAULT_MODE);
max_hz,
spi_mode); if (!flash) { puts("SPI probe failed.\n"); return -ENODEV;
-- 2.7.4
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot