[U-Boot] [PATCH v2 2/3] sf: spi_flash_probe for both dm/non-dm
Simon Glass
sjg at chromium.org
Thu Nov 5 19:25:04 CET 2015
Hi Jagan,
On 23 October 2015 at 21:54, Jagan Teki <jteki at openedev.com> wrote:
> Let's use spi_flash_probe for dm and no-dm spi-flash
> and make respective function definations separately.
>
> Cc: Simon Glass <sjg at chromium.org>
> Signed-off-by: Jagan Teki <jteki at openedev.com>
> ---
> Changes for v2:
> - none
>
> common/cmd_sf.c | 19 ++-----------------
> drivers/mtd/spi/sf-uclass.c | 17 +----------------
> include/spi_flash.h | 18 ++++--------------
> 3 files changed, 7 insertions(+), 47 deletions(-)
>
> diff --git a/common/cmd_sf.c b/common/cmd_sf.c
> index f1926e3..cdc6c26 100644
> --- a/common/cmd_sf.c
> +++ b/common/cmd_sf.c
> @@ -83,9 +83,6 @@ 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;
> -#ifndef CONFIG_DM_SPI_FLASH
> - struct spi_flash *new;
> -#endif
>
> if (argc >= 2) {
> cs = simple_strtoul(argv[1], &endp, 0);
> @@ -113,27 +110,15 @@ static int do_spi_flash_probe(int argc, char * const argv[])
> return -1;
> }
>
> -#ifdef CONFIG_DM_SPI_FLASH
> - flash = dm_spi_flash_probe(bus, cs, speed, mode);
> - if (!flash) {
> - printf("Failed to initialize SPI flash at %u:%u\n", bus, cs);
> - return 1;
> - }
> -#else
> if (flash)
> spi_flash_free(flash);
>
> - new = spi_flash_probe(bus, cs, speed, mode);
> - flash = new;
> -
> - if (!new) {
> + flash = spi_flash_probe(bus, cs, speed, mode);
> + if (!flash) {
> printf("Failed to initialize SPI flash at %u:%u\n", bus, cs);
> return 1;
> }
>
> - flash = new;
> -#endif
> -
> return 0;
> }
>
> diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
> index 9c109fa..a1c5810 100644
> --- a/drivers/mtd/spi/sf-uclass.c
> +++ b/drivers/mtd/spi/sf-uclass.c
> @@ -27,21 +27,6 @@ int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
> return sf_get_ops(dev)->erase(dev, offset, len);
> }
>
> -/*
> - * TODO(sjg at chromium.org): This is an old-style function. We should remove
> - * it when all SPI flash drivers use dm
> - */
> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
> - unsigned int max_hz, unsigned int spi_mode)
How come this function is being removed? I don't think all drivers
have been converted to driver model yet.
> -{
> - struct udevice *dev;
> -
> - if (spi_flash_probe_bus_cs(bus, cs, max_hz, spi_mode, &dev))
> - return NULL;
> -
> - return dev_get_uclass_priv(dev);
> -}
> -
> void spi_flash_free(struct spi_flash *flash)
> {
> spi_flash_remove(flash->spi->dev);
> @@ -67,7 +52,7 @@ static int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
> return 0;
> }
>
> -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs,
> +struct spi_flash *spi_flash_probe(unsigned int busnum, unsigned int cs,
> unsigned int max_hz, unsigned int spi_mode)
> {
> struct udevice *bus, *new;
> diff --git a/include/spi_flash.h b/include/spi_flash.h
> index 5abbf99..0afc9fb 100644
> --- a/include/spi_flash.h
> +++ b/include/spi_flash.h
> @@ -154,16 +154,6 @@ int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
> */
> int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len);
>
> -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs,
> - unsigned int max_hz, unsigned int spi_mode);
> -
> -/* Compatibility function - this is the old U-Boot API */
> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
> - unsigned int max_hz, unsigned int spi_mode);
> -
> -/* Compatibility function - this is the old U-Boot API */
> -void spi_flash_free(struct spi_flash *flash);
> -
> int spi_flash_remove(struct udevice *flash);
>
> static inline int spi_flash_read(struct spi_flash *flash, u32 offset,
> @@ -192,8 +182,6 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
> void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs);
>
> #else
> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
> - unsigned int max_hz, unsigned int spi_mode);
>
> /**
> * Set up a new SPI flash from an fdt node
> @@ -207,8 +195,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
> struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node,
> int spi_node);
>
> -void spi_flash_free(struct spi_flash *flash);
> -
> static inline int spi_flash_read(struct spi_flash *flash, u32 offset,
> size_t len, void *buf)
> {
> @@ -228,6 +214,10 @@ static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
> }
> #endif
>
> +struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
> + unsigned int max_hz, unsigned int spi_mode);
> +void spi_flash_free(struct spi_flash *flash);
> +
> void spi_boot(void) __noreturn;
> void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst);
>
> --
> 1.9.1
>
Regards,
Simon
More information about the U-Boot
mailing list