[U-Boot] [PATCH v2 28/32] spi: omap3: Drop non-dm code

Adam Ford aford173 at gmail.com
Mon Nov 26 19:36:26 UTC 2018


On Sun, Nov 25, 2018 at 11:39 AM Jagan Teki <jagan at amarulasolutions.com> wrote:
>
> Drop the non-dm code, those board which uses non-dm need
> to define DM_SPI. u-boot build trigger the warning for
> the same.
>
> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>

I don't have a good way to read/write SPI, but my omap3_logic board
shows the SPI bus in the 'dm tree' so from that perspective, I am not
seeing any issues with SPI.

Tested-by: Adam Ford <aford173 at gmail.com> #omap3_logic

> ---
>  Makefile                |   2 +-
>  drivers/spi/Makefile    |   2 +-
>  drivers/spi/omap3_spi.c | 126 ----------------------------------------
>  3 files changed, 2 insertions(+), 128 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 3be3bb3118..00f0117b16 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -920,7 +920,7 @@ ifeq ($(CONFIG_DM_I2C_COMPAT)$(CONFIG_SANDBOX),y)
>  endif
>  ifeq ($(CONFIG_DM_SPI),)
>  ifeq ($(filter $(CONFIG_DAVINCI_SPI) $(CONFIG_KIRKWOOD_SPI) $(CONFIG_MPC8XXX_SPI) \
> -              $(CONFIG_MXC_SPI) $(CONFIG_TI_QSPI),y),y)
> +              $(CONFIG_MXC_SPI) $(CONFIG_OMAP3_SPI) $(CONFIG_TI_QSPI),y),y)
>         @echo "===================== WARNING ======================"
>         @echo "This board uses SPI driver from drivers/spi/ without"
>         @echo "enabling CONFIG_DM_SPI. Please enable CONFIG_DM_SPI"
> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
> index c682b014e7..6b8b92434c 100644
> --- a/drivers/spi/Makefile
> +++ b/drivers/spi/Makefile
> @@ -10,6 +10,7 @@ obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o
>  obj-$(CONFIG_KIRKWOOD_SPI) += kirkwood_spi.o
>  obj-$(CONFIG_MPC8XXX_SPI) += mpc8xxx_spi.o
>  obj-$(CONFIG_MXC_SPI) += mxc_spi.o
> +obj-$(CONFIG_OMAP3_SPI) += omap3_spi.o
>  obj-$(CONFIG_SANDBOX) += spi-emul-uclass.o
>  obj-$(CONFIG_SOFT_SPI) += soft_spi.o
>  obj-$(CONFIG_SPI_MEM) += spi-mem.o
> @@ -35,7 +36,6 @@ obj-$(CONFIG_MPC8XX_SPI) += mpc8xx_spi.o
>  obj-$(CONFIG_MT7621_SPI) += mt7621_spi.o
>  obj-$(CONFIG_MVEBU_A3700_SPI) += mvebu_a3700_spi.o
>  obj-$(CONFIG_ATCSPI200_SPI) += atcspi200_spi.o
> -obj-$(CONFIG_OMAP3_SPI) += omap3_spi.o
>  obj-$(CONFIG_PIC32_SPI) += pic32_spi.o
>  obj-$(CONFIG_PL022_SPI) += pl022_spi.o
>  obj-$(CONFIG_RENESAS_RPC_SPI) += renesas_rpc_spi.o
> diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
> index c7fcf050a5..5e267d88d7 100644
> --- a/drivers/spi/omap3_spi.c
> +++ b/drivers/spi/omap3_spi.c
> @@ -108,9 +108,6 @@ struct mcspi {
>  };
>
>  struct omap3_spi_priv {
> -#ifndef CONFIG_DM_SPI
> -       struct spi_slave slave;
> -#endif
>         struct mcspi *regs;
>         unsigned int cs;
>         unsigned int freq;
> @@ -454,128 +451,6 @@ static void _omap3_spi_claim_bus(struct omap3_spi_priv *priv)
>         writel(conf, &priv->regs->modulctrl);
>  }
>
> -#ifndef CONFIG_DM_SPI
> -
> -static inline struct omap3_spi_priv *to_omap3_spi(struct spi_slave *slave)
> -{
> -       return container_of(slave, struct omap3_spi_priv, slave);
> -}
> -
> -void spi_free_slave(struct spi_slave *slave)
> -{
> -       struct omap3_spi_priv *priv = to_omap3_spi(slave);
> -
> -       free(priv);
> -}
> -
> -int spi_claim_bus(struct spi_slave *slave)
> -{
> -       struct omap3_spi_priv *priv = to_omap3_spi(slave);
> -
> -       spi_reset(priv->regs);
> -
> -       _omap3_spi_claim_bus(priv);
> -       _omap3_spi_set_wordlen(priv);
> -       _omap3_spi_set_mode(priv);
> -       _omap3_spi_set_speed(priv);
> -
> -       return 0;
> -}
> -
> -void spi_release_bus(struct spi_slave *slave)
> -{
> -       struct omap3_spi_priv *priv = to_omap3_spi(slave);
> -
> -       writel(OMAP3_MCSPI_MODULCTRL_MS, &priv->regs->modulctrl);
> -}
> -
> -struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
> -                                    unsigned int max_hz, unsigned int mode)
> -{
> -       struct omap3_spi_priv *priv;
> -       struct mcspi *regs;
> -
> -       /*
> -        * OMAP3 McSPI (MultiChannel SPI) has 4 busses (modules)
> -        * with different number of chip selects (CS, channels):
> -        * McSPI1 has 4 CS (bus 0, cs 0 - 3)
> -        * McSPI2 has 2 CS (bus 1, cs 0 - 1)
> -        * McSPI3 has 2 CS (bus 2, cs 0 - 1)
> -        * McSPI4 has 1 CS (bus 3, cs 0)
> -        */
> -
> -       switch (bus) {
> -       case 0:
> -                regs = (struct mcspi *)OMAP3_MCSPI1_BASE;
> -                break;
> -#ifdef OMAP3_MCSPI2_BASE
> -       case 1:
> -                regs = (struct mcspi *)OMAP3_MCSPI2_BASE;
> -                break;
> -#endif
> -#ifdef OMAP3_MCSPI3_BASE
> -       case 2:
> -                regs = (struct mcspi *)OMAP3_MCSPI3_BASE;
> -                break;
> -#endif
> -#ifdef OMAP3_MCSPI4_BASE
> -       case 3:
> -                regs = (struct mcspi *)OMAP3_MCSPI4_BASE;
> -                break;
> -#endif
> -       default:
> -                printf("SPI error: unsupported bus %i.  Supported busses 0 - 3\n", bus);
> -                return NULL;
> -       }
> -
> -       if (((bus == 0) && (cs > 3)) ||
> -           ((bus == 1) && (cs > 1)) ||
> -           ((bus == 2) && (cs > 1)) ||
> -           ((bus == 3) && (cs > 0))) {
> -               printf("SPI error: unsupported chip select %i on bus %i\n", cs, bus);
> -               return NULL;
> -       }
> -
> -       if (max_hz > OMAP3_MCSPI_MAX_FREQ) {
> -               printf("SPI error: unsupported frequency %i Hz. Max frequency is 48 MHz\n",
> -                      max_hz);
> -               return NULL;
> -       }
> -
> -       if (mode > SPI_MODE_3) {
> -               printf("SPI error: unsupported SPI mode %i\n", mode);
> -               return NULL;
> -       }
> -
> -       priv = spi_alloc_slave(struct omap3_spi_priv, bus, cs);
> -       if (!priv) {
> -               printf("SPI error: malloc of SPI structure failed\n");
> -               return NULL;
> -       }
> -
> -       priv->regs = regs;
> -       priv->cs = cs;
> -       priv->freq = max_hz;
> -       priv->mode = mode;
> -       priv->wordlen = priv->slave.wordlen;
> -#if 0
> -       /* Please migrate to DM_SPI support for this feature. */
> -       priv->pin_dir = MCSPI_PINDIR_D0_OUT_D1_IN;
> -#endif
> -
> -       return &priv->slave;
> -}
> -
> -int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
> -            const void *dout, void *din, unsigned long flags)
> -{
> -       struct omap3_spi_priv *priv = to_omap3_spi(slave);
> -
> -       return _spi_xfer(priv, bitlen, dout, din, flags);
> -}
> -
> -#else
> -
>  static int omap3_spi_claim_bus(struct udevice *dev)
>  {
>         struct udevice *bus = dev->parent;
> @@ -700,4 +575,3 @@ U_BOOT_DRIVER(omap3_spi) = {
>         .ops    = &omap3_spi_ops,
>         .priv_auto_alloc_size = sizeof(struct omap3_spi_priv),
>  };
> -#endif
> --
> 2.18.0.321.gffc6fa0e3
>


More information about the U-Boot mailing list