[U-Boot] [PATCH v2 1/2] spl_spi: Read default speed and mode values from DT

Adam Ford aford173 at gmail.com
Mon Dec 10 22:48:02 UTC 2018


On Mon, Nov 19, 2018 at 11:55 AM Patrick Delaunay
<patrick.delaunay at 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 at st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at 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 at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list