diff mbox

[U-Boot,4/8] dm-sf: use mtd_ops, drop dm_spi_flash_ops

Message ID 1444679655-30349-4-git-send-email-jteki@openedev.com
State Superseded
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Commit Message

Jagan Teki Oct. 12, 2015, 7:54 p.m. UTC
Since mtd_info ops got introduced, just drop the unneeded
dm_spi_flash operations.

Signed-off-by: Jagan Teki <jteki@openedev.com>
---
 drivers/mtd/spi/sf-uclass.c | 16 --------
 drivers/mtd/spi/sf_probe.c  | 30 ---------------
 include/spi_flash.h         | 91 +++++++--------------------------------------
 3 files changed, 14 insertions(+), 123 deletions(-)

Comments

Heiko Schocher Oct. 29, 2015, 6:35 a.m. UTC | #1
Hello Jagan,

Am 12.10.2015 um 21:54 schrieb Jagan Teki:
> Since mtd_info ops got introduced, just drop the unneeded
> dm_spi_flash operations.
>
> Signed-off-by: Jagan Teki <jteki@openedev.com>
> ---
>   drivers/mtd/spi/sf-uclass.c | 16 --------
>   drivers/mtd/spi/sf_probe.c  | 30 ---------------
>   include/spi_flash.h         | 91 +++++++--------------------------------------
>   3 files changed, 14 insertions(+), 123 deletions(-)

Does this not break: drivers/mtd/spi/sf-uclass.c ?

added simon to cc.

bye,
Heiko
>
> diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
> index 350e21a..5cdbd1b 100644
> --- a/drivers/mtd/spi/sf-uclass.c
> +++ b/drivers/mtd/spi/sf-uclass.c
> @@ -11,22 +11,6 @@
>   #include <dm/device-internal.h>
>   #include "sf_internal.h"
>
> -int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void *buf)
> -{
> -	return sf_get_ops(dev)->read(dev, offset, len, buf);
> -}
> -
> -int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
> -		       const void *buf)
> -{
> -	return sf_get_ops(dev)->write(dev, offset, len, buf);
> -}
> -
> -int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
> -{
> -	return sf_get_ops(dev)->erase(dev, offset, len);
> -}
> -
>   /*
>    * TODO(sjg@chromium.org): This is an old-style function. We should remove
>    * it when all SPI flash drivers use dm
> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
> index b8704e2..5e314e2 100644
> --- a/drivers/mtd/spi/sf_probe.c
> +++ b/drivers/mtd/spi/sf_probe.c
> @@ -104,29 +104,6 @@ void spi_flash_free(struct spi_flash *flash)
>
>   #else /* defined CONFIG_DM_SPI_FLASH */
>
> -static int spi_flash_std_read(struct udevice *dev, u32 offset, size_t len,
> -			      void *buf)
> -{
> -	struct spi_flash *flash = dev_get_uclass_priv(dev);
> -
> -	return flash->read(flash, offset, len, buf);
> -}
> -
> -int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len,
> -			const void *buf)
> -{
> -	struct spi_flash *flash = dev_get_uclass_priv(dev);
> -
> -	return flash->write(flash, offset, len, buf);
> -}
> -
> -int spi_flash_std_erase(struct udevice *dev, u32 offset, size_t len)
> -{
> -	struct spi_flash *flash = dev_get_uclass_priv(dev);
> -
> -	return flash->erase(flash, offset, len);
> -}
> -
>   int spi_flash_std_probe(struct udevice *dev)
>   {
>   	struct spi_flash_priv *priv = dev_get_uclass_priv(dev);
> @@ -171,12 +148,6 @@ err_scan:
>   	return ret;
>   }
>
> -static const struct dm_spi_flash_ops spi_flash_std_ops = {
> -	.read = spi_flash_std_read,
> -	.write = spi_flash_std_write,
> -	.erase = spi_flash_std_erase,
> -};
> -
>   static const struct udevice_id spi_flash_std_ids[] = {
>   	{ .compatible = "spi-flash" },
>   	{ }
> @@ -188,7 +159,6 @@ U_BOOT_DRIVER(spi_flash_std) = {
>   	.of_match	= spi_flash_std_ids,
>   	.probe		= spi_flash_std_probe,
>   	.priv_auto_alloc_size = sizeof(struct spi_flash_priv),
> -	.ops		= &spi_flash_std_ops,
>   };
>
>   #endif /* CONFIG_DM_SPI_FLASH */
> diff --git a/include/spi_flash.h b/include/spi_flash.h
> index fe03b8d..8dd000d 100644
> --- a/include/spi_flash.h
> +++ b/include/spi_flash.h
> @@ -83,52 +83,7 @@ struct spi_flash {
>   	void *priv;
>   };
>
> -struct dm_spi_flash_ops {
> -	int (*read)(struct udevice *dev, u32 offset, size_t len, void *buf);
> -	int (*write)(struct udevice *dev, u32 offset, size_t len,
> -		     const void *buf);
> -	int (*erase)(struct udevice *dev, u32 offset, size_t len);
> -};
> -
> -/* Access the serial operations for a device */
> -#define sf_get_ops(dev) ((struct dm_spi_flash_ops *)(dev)->driver->ops)
> -
>   #ifdef CONFIG_DM_SPI_FLASH
> -/**
> - * spi_flash_read_dm() - Read data from SPI flash
> - *
> - * @dev:	SPI flash device
> - * @offset:	Offset into device in bytes to read from
> - * @len:	Number of bytes to read
> - * @buf:	Buffer to put the data that is read
> - * @return 0 if OK, -ve on error
> - */
> -int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void *buf);
> -
> -/**
> - * spi_flash_write_dm() - Write data to SPI flash
> - *
> - * @dev:	SPI flash device
> - * @offset:	Offset into device in bytes to write to
> - * @len:	Number of bytes to write
> - * @buf:	Buffer containing bytes to write
> - * @return 0 if OK, -ve on error
> - */
> -int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
> -		       const void *buf);
> -
> -/**
> - * spi_flash_erase_dm() - Erase blocks of the SPI flash
> - *
> - * Note that @len must be a muiltiple of the flash sector size.
> - *
> - * @dev:	SPI flash device
> - * @offset:	Offset into device in bytes to start erasing
> - * @len:	Number of bytes to erase
> - * @return 0 if OK, -ve on error
> - */
> -int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len);
> -
>   int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
>   			   unsigned int max_hz, unsigned int spi_mode,
>   			   struct udevice **devp);
> @@ -142,31 +97,6 @@ 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,
> -				 size_t len, void *buf)
> -{
> -	return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
> -}
> -
> -static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
> -				  size_t len, const void *buf)
> -{
> -	return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
> -}
> -
> -static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
> -				  size_t len)
> -{
> -	struct erase_info instr;
> -
> -	instr.mtd = flash->mtd;
> -	instr.addr = offset;
> -	instr.len = len;
> -	instr.callback = 0;
> -
> -	return mtd_erase(flash->mtd, &instr);
> -}
> -
>   struct sandbox_state;
>
>   int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
> @@ -191,25 +121,32 @@ struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node,
>   				      int spi_node);
>
>   void spi_flash_free(struct spi_flash *flash);
> +#endif
>
>   static inline int spi_flash_read(struct spi_flash *flash, u32 offset,
> -		size_t len, void *buf)
> +				 size_t len, void *buf)
>   {
> -	return flash->read(flash, offset, len, buf);
> +	return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
>   }
>
>   static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
> -		size_t len, const void *buf)
> +				  size_t len, const void *buf)
>   {
> -	return flash->write(flash, offset, len, buf);
> +	return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
>   }
>
>   static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
> -		size_t len)
> +				  size_t len)
>   {
> -	return flash->erase(flash, offset, len);
> +	struct erase_info instr;
> +
> +	instr.mtd = flash->mtd;
> +	instr.addr = offset;
> +	instr.len = len;
> +	instr.callback = 0;
> +
> +	return mtd_erase(flash->mtd, &instr);
>   }
> -#endif
>
>   void spi_boot(void) __noreturn;
>   void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst);
>
Jagan Teki Oct. 29, 2015, 1:11 p.m. UTC | #2
Hi Heiko,

On 29 October 2015 at 12:05, Heiko Schocher <hs@denx.de> wrote:
> Hello Jagan,
>
> Am 12.10.2015 um 21:54 schrieb Jagan Teki:
>>
>> Since mtd_info ops got introduced, just drop the unneeded
>> dm_spi_flash operations.
>>
>> Signed-off-by: Jagan Teki <jteki@openedev.com>
>> ---
>>   drivers/mtd/spi/sf-uclass.c | 16 --------
>>   drivers/mtd/spi/sf_probe.c  | 30 ---------------
>>   include/spi_flash.h         | 91
>> +++++++--------------------------------------
>>   3 files changed, 14 insertions(+), 123 deletions(-)
>
>
> Does this not break: drivers/mtd/spi/sf-uclass.c ?

This wouldn't break the dm because mtd_info ops are common to dm or
non-dm spi-flash which I tuned in this series[1] That means the tuned
sf series is prior to this MTD.

>
> added simon to cc.
>
>
>>
>> diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
>> index 350e21a..5cdbd1b 100644
>> --- a/drivers/mtd/spi/sf-uclass.c
>> +++ b/drivers/mtd/spi/sf-uclass.c
>> @@ -11,22 +11,6 @@
>>   #include <dm/device-internal.h>
>>   #include "sf_internal.h"
>>
>> -int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void
>> *buf)
>> -{
>> -       return sf_get_ops(dev)->read(dev, offset, len, buf);
>> -}
>> -
>> -int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
>> -                      const void *buf)
>> -{
>> -       return sf_get_ops(dev)->write(dev, offset, len, buf);
>> -}
>> -
>> -int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
>> -{
>> -       return sf_get_ops(dev)->erase(dev, offset, len);
>> -}
>> -
>>   /*
>>    * TODO(sjg@chromium.org): This is an old-style function. We should
>> remove
>>    * it when all SPI flash drivers use dm
>> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
>> index b8704e2..5e314e2 100644
>> --- a/drivers/mtd/spi/sf_probe.c
>> +++ b/drivers/mtd/spi/sf_probe.c
>> @@ -104,29 +104,6 @@ void spi_flash_free(struct spi_flash *flash)
>>
>>   #else /* defined CONFIG_DM_SPI_FLASH */
>>
>> -static int spi_flash_std_read(struct udevice *dev, u32 offset, size_t
>> len,
>> -                             void *buf)
>> -{
>> -       struct spi_flash *flash = dev_get_uclass_priv(dev);
>> -
>> -       return flash->read(flash, offset, len, buf);
>> -}
>> -
>> -int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len,
>> -                       const void *buf)
>> -{
>> -       struct spi_flash *flash = dev_get_uclass_priv(dev);
>> -
>> -       return flash->write(flash, offset, len, buf);
>> -}
>> -
>> -int spi_flash_std_erase(struct udevice *dev, u32 offset, size_t len)
>> -{
>> -       struct spi_flash *flash = dev_get_uclass_priv(dev);
>> -
>> -       return flash->erase(flash, offset, len);
>> -}
>> -
>>   int spi_flash_std_probe(struct udevice *dev)
>>   {
>>         struct spi_flash_priv *priv = dev_get_uclass_priv(dev);
>> @@ -171,12 +148,6 @@ err_scan:
>>         return ret;
>>   }
>>
>> -static const struct dm_spi_flash_ops spi_flash_std_ops = {
>> -       .read = spi_flash_std_read,
>> -       .write = spi_flash_std_write,
>> -       .erase = spi_flash_std_erase,
>> -};
>> -
>>   static const struct udevice_id spi_flash_std_ids[] = {
>>         { .compatible = "spi-flash" },
>>         { }
>> @@ -188,7 +159,6 @@ U_BOOT_DRIVER(spi_flash_std) = {
>>         .of_match       = spi_flash_std_ids,
>>         .probe          = spi_flash_std_probe,
>>         .priv_auto_alloc_size = sizeof(struct spi_flash_priv),
>> -       .ops            = &spi_flash_std_ops,
>>   };
>>
>>   #endif /* CONFIG_DM_SPI_FLASH */
>> diff --git a/include/spi_flash.h b/include/spi_flash.h
>> index fe03b8d..8dd000d 100644
>> --- a/include/spi_flash.h
>> +++ b/include/spi_flash.h
>> @@ -83,52 +83,7 @@ struct spi_flash {
>>         void *priv;
>>   };
>>
>> -struct dm_spi_flash_ops {
>> -       int (*read)(struct udevice *dev, u32 offset, size_t len, void
>> *buf);
>> -       int (*write)(struct udevice *dev, u32 offset, size_t len,
>> -                    const void *buf);
>> -       int (*erase)(struct udevice *dev, u32 offset, size_t len);
>> -};
>> -
>> -/* Access the serial operations for a device */
>> -#define sf_get_ops(dev) ((struct dm_spi_flash_ops *)(dev)->driver->ops)
>> -
>>   #ifdef CONFIG_DM_SPI_FLASH
>> -/**
>> - * spi_flash_read_dm() - Read data from SPI flash
>> - *
>> - * @dev:       SPI flash device
>> - * @offset:    Offset into device in bytes to read from
>> - * @len:       Number of bytes to read
>> - * @buf:       Buffer to put the data that is read
>> - * @return 0 if OK, -ve on error
>> - */
>> -int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void
>> *buf);
>> -
>> -/**
>> - * spi_flash_write_dm() - Write data to SPI flash
>> - *
>> - * @dev:       SPI flash device
>> - * @offset:    Offset into device in bytes to write to
>> - * @len:       Number of bytes to write
>> - * @buf:       Buffer containing bytes to write
>> - * @return 0 if OK, -ve on error
>> - */
>> -int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
>> -                      const void *buf);
>> -
>> -/**
>> - * spi_flash_erase_dm() - Erase blocks of the SPI flash
>> - *
>> - * Note that @len must be a muiltiple of the flash sector size.
>> - *
>> - * @dev:       SPI flash device
>> - * @offset:    Offset into device in bytes to start erasing
>> - * @len:       Number of bytes to erase
>> - * @return 0 if OK, -ve on error
>> - */
>> -int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len);
>> -
>>   int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
>>                            unsigned int max_hz, unsigned int spi_mode,
>>                            struct udevice **devp);
>> @@ -142,31 +97,6 @@ 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,
>> -                                size_t len, void *buf)
>> -{
>> -       return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
>> -}
>> -
>> -static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
>> -                                 size_t len, const void *buf)
>> -{
>> -       return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
>> -}
>> -
>> -static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
>> -                                 size_t len)
>> -{
>> -       struct erase_info instr;
>> -
>> -       instr.mtd = flash->mtd;
>> -       instr.addr = offset;
>> -       instr.len = len;
>> -       instr.callback = 0;
>> -
>> -       return mtd_erase(flash->mtd, &instr);
>> -}
>> -
>>   struct sandbox_state;
>>
>>   int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int
>> cs,
>> @@ -191,25 +121,32 @@ struct spi_flash *spi_flash_probe_fdt(const void
>> *blob, int slave_node,
>>                                       int spi_node);
>>
>>   void spi_flash_free(struct spi_flash *flash);
>> +#endif
>>
>>   static inline int spi_flash_read(struct spi_flash *flash, u32 offset,
>> -               size_t len, void *buf)
>> +                                size_t len, void *buf)
>>   {
>> -       return flash->read(flash, offset, len, buf);
>> +       return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
>>   }
>>
>>   static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
>> -               size_t len, const void *buf)
>> +                                 size_t len, const void *buf)
>>   {
>> -       return flash->write(flash, offset, len, buf);
>> +       return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
>>   }
>>
>>   static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
>> -               size_t len)
>> +                                 size_t len)
>>   {
>> -       return flash->erase(flash, offset, len);
>> +       struct erase_info instr;
>> +
>> +       instr.mtd = flash->mtd;
>> +       instr.addr = offset;
>> +       instr.len = len;
>> +       instr.callback = 0;
>> +
>> +       return mtd_erase(flash->mtd, &instr);
>>   }
>> -#endif
>>
>>   void spi_boot(void) __noreturn;
>>   void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst);

[1] https://www.mail-archive.com/u-boot@lists.denx.de/msg190086.html
Simon Glass Nov. 6, 2015, 3:15 a.m. UTC | #3
Hi Jagan,

On 29 October 2015 at 07:11, Jagan Teki <jteki@openedev.com> wrote:
> Hi Heiko,
>
> On 29 October 2015 at 12:05, Heiko Schocher <hs@denx.de> wrote:
>> Hello Jagan,
>>
>> Am 12.10.2015 um 21:54 schrieb Jagan Teki:
>>>
>>> Since mtd_info ops got introduced, just drop the unneeded
>>> dm_spi_flash operations.
>>>
>>> Signed-off-by: Jagan Teki <jteki@openedev.com>
>>> ---
>>>   drivers/mtd/spi/sf-uclass.c | 16 --------
>>>   drivers/mtd/spi/sf_probe.c  | 30 ---------------
>>>   include/spi_flash.h         | 91
>>> +++++++--------------------------------------
>>>   3 files changed, 14 insertions(+), 123 deletions(-)
>>
>>
>> Does this not break: drivers/mtd/spi/sf-uclass.c ?
>
> This wouldn't break the dm because mtd_info ops are common to dm or
> non-dm spi-flash which I tuned in this series[1] That means the tuned
> sf series is prior to this MTD.
>
>>
>> added simon to cc.
>>
>>
>>>
>>> diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
>>> index 350e21a..5cdbd1b 100644
>>> --- a/drivers/mtd/spi/sf-uclass.c
>>> +++ b/drivers/mtd/spi/sf-uclass.c
>>> @@ -11,22 +11,6 @@
>>>   #include <dm/device-internal.h>
>>>   #include "sf_internal.h"
>>>
>>> -int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void
>>> *buf)
>>> -{
>>> -       return sf_get_ops(dev)->read(dev, offset, len, buf);
>>> -}
>>> -
>>> -int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
>>> -                      const void *buf)
>>> -{
>>> -       return sf_get_ops(dev)->write(dev, offset, len, buf);
>>> -}
>>> -
>>> -int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
>>> -{
>>> -       return sf_get_ops(dev)->erase(dev, offset, len);
>>> -}
>>> -

These are the functions that we should keep. It is the the ones that
don't take a struct udevice parameter which should be removed...

Regards,
Simon
diff mbox

Patch

diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c
index 350e21a..5cdbd1b 100644
--- a/drivers/mtd/spi/sf-uclass.c
+++ b/drivers/mtd/spi/sf-uclass.c
@@ -11,22 +11,6 @@ 
 #include <dm/device-internal.h>
 #include "sf_internal.h"
 
-int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void *buf)
-{
-	return sf_get_ops(dev)->read(dev, offset, len, buf);
-}
-
-int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
-		       const void *buf)
-{
-	return sf_get_ops(dev)->write(dev, offset, len, buf);
-}
-
-int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
-{
-	return sf_get_ops(dev)->erase(dev, offset, len);
-}
-
 /*
  * TODO(sjg@chromium.org): This is an old-style function. We should remove
  * it when all SPI flash drivers use dm
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index b8704e2..5e314e2 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -104,29 +104,6 @@  void spi_flash_free(struct spi_flash *flash)
 
 #else /* defined CONFIG_DM_SPI_FLASH */
 
-static int spi_flash_std_read(struct udevice *dev, u32 offset, size_t len,
-			      void *buf)
-{
-	struct spi_flash *flash = dev_get_uclass_priv(dev);
-
-	return flash->read(flash, offset, len, buf);
-}
-
-int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len,
-			const void *buf)
-{
-	struct spi_flash *flash = dev_get_uclass_priv(dev);
-
-	return flash->write(flash, offset, len, buf);
-}
-
-int spi_flash_std_erase(struct udevice *dev, u32 offset, size_t len)
-{
-	struct spi_flash *flash = dev_get_uclass_priv(dev);
-
-	return flash->erase(flash, offset, len);
-}
-
 int spi_flash_std_probe(struct udevice *dev)
 {
 	struct spi_flash_priv *priv = dev_get_uclass_priv(dev);
@@ -171,12 +148,6 @@  err_scan:
 	return ret;
 }
 
-static const struct dm_spi_flash_ops spi_flash_std_ops = {
-	.read = spi_flash_std_read,
-	.write = spi_flash_std_write,
-	.erase = spi_flash_std_erase,
-};
-
 static const struct udevice_id spi_flash_std_ids[] = {
 	{ .compatible = "spi-flash" },
 	{ }
@@ -188,7 +159,6 @@  U_BOOT_DRIVER(spi_flash_std) = {
 	.of_match	= spi_flash_std_ids,
 	.probe		= spi_flash_std_probe,
 	.priv_auto_alloc_size = sizeof(struct spi_flash_priv),
-	.ops		= &spi_flash_std_ops,
 };
 
 #endif /* CONFIG_DM_SPI_FLASH */
diff --git a/include/spi_flash.h b/include/spi_flash.h
index fe03b8d..8dd000d 100644
--- a/include/spi_flash.h
+++ b/include/spi_flash.h
@@ -83,52 +83,7 @@  struct spi_flash {
 	void *priv;
 };
 
-struct dm_spi_flash_ops {
-	int (*read)(struct udevice *dev, u32 offset, size_t len, void *buf);
-	int (*write)(struct udevice *dev, u32 offset, size_t len,
-		     const void *buf);
-	int (*erase)(struct udevice *dev, u32 offset, size_t len);
-};
-
-/* Access the serial operations for a device */
-#define sf_get_ops(dev) ((struct dm_spi_flash_ops *)(dev)->driver->ops)
-
 #ifdef CONFIG_DM_SPI_FLASH
-/**
- * spi_flash_read_dm() - Read data from SPI flash
- *
- * @dev:	SPI flash device
- * @offset:	Offset into device in bytes to read from
- * @len:	Number of bytes to read
- * @buf:	Buffer to put the data that is read
- * @return 0 if OK, -ve on error
- */
-int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len, void *buf);
-
-/**
- * spi_flash_write_dm() - Write data to SPI flash
- *
- * @dev:	SPI flash device
- * @offset:	Offset into device in bytes to write to
- * @len:	Number of bytes to write
- * @buf:	Buffer containing bytes to write
- * @return 0 if OK, -ve on error
- */
-int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
-		       const void *buf);
-
-/**
- * spi_flash_erase_dm() - Erase blocks of the SPI flash
- *
- * Note that @len must be a muiltiple of the flash sector size.
- *
- * @dev:	SPI flash device
- * @offset:	Offset into device in bytes to start erasing
- * @len:	Number of bytes to erase
- * @return 0 if OK, -ve on error
- */
-int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len);
-
 int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
 			   unsigned int max_hz, unsigned int spi_mode,
 			   struct udevice **devp);
@@ -142,31 +97,6 @@  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,
-				 size_t len, void *buf)
-{
-	return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
-}
-
-static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
-				  size_t len, const void *buf)
-{
-	return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
-}
-
-static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
-				  size_t len)
-{
-	struct erase_info instr;
-
-	instr.mtd = flash->mtd;
-	instr.addr = offset;
-	instr.len = len;
-	instr.callback = 0;
-
-	return mtd_erase(flash->mtd, &instr);
-}
-
 struct sandbox_state;
 
 int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
@@ -191,25 +121,32 @@  struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node,
 				      int spi_node);
 
 void spi_flash_free(struct spi_flash *flash);
+#endif
 
 static inline int spi_flash_read(struct spi_flash *flash, u32 offset,
-		size_t len, void *buf)
+				 size_t len, void *buf)
 {
-	return flash->read(flash, offset, len, buf);
+	return mtd_read(flash->mtd, offset, len, &len, (u_char *)buf);
 }
 
 static inline int spi_flash_write(struct spi_flash *flash, u32 offset,
-		size_t len, const void *buf)
+				  size_t len, const void *buf)
 {
-	return flash->write(flash, offset, len, buf);
+	return mtd_write(flash->mtd, offset, len, &len, (u_char *)buf);
 }
 
 static inline int spi_flash_erase(struct spi_flash *flash, u32 offset,
-		size_t len)
+				  size_t len)
 {
-	return flash->erase(flash, offset, len);
+	struct erase_info instr;
+
+	instr.mtd = flash->mtd;
+	instr.addr = offset;
+	instr.len = len;
+	instr.callback = 0;
+
+	return mtd_erase(flash->mtd, &instr);
 }
-#endif
 
 void spi_boot(void) __noreturn;
 void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst);