[U-Boot] [PATCH] TI DaVinci: Driver for the davinci SPI controller

Sudhakar Rajashekhara
2010-01-04T09:42:18Z

Hi,

On Fri, Dec 25, 2009 at 22:41:13, Dirk Behme wrote:
> On 23.12.2009 08:44, Sudhakar Rajashekhara wrote:
> > From: Sekhar Nori<nsekhar@ti.com>
> >
> > This adds a driver for the SPI controller found on davinci
> > based SoCs from Texas Instruments.
> >
> > Signed-off-by: Sekhar Nori<nsekhar@ti.com>
> > Signed-off-by: Sudhakar Rajashekhara<sudhakar.raj@ti.com>
> > ---
> > drivers/spi/Makefile | 1 +
> > drivers/spi/davinci_spi.c | 205 +++++++++++++++++++++++++++++++++++++++++++++
> > drivers/spi/davinci_spi.h | 84 ++++++++++++++++++
> > 3 files changed, 290 insertions(+), 0 deletions(-)
> > create mode 100644 drivers/spi/davinci_spi.c
> > create mode 100644 drivers/spi/davinci_spi.h
> >
> > diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
> > index 824d8e7..07b9611 100644
> > --- a/drivers/spi/Makefile
> > +++ b/drivers/spi/Makefile
> > @@ -34,6 +34,7 @@ COBJS-$(CONFIG_MPC52XX_SPI) += mpc52xx_spi.o
> > COBJS-$(CONFIG_MPC8XXX_SPI) += mpc8xxx_spi.o
> > COBJS-$(CONFIG_MXC_SPI) += mxc_spi.o
> > COBJS-$(CONFIG_SOFT_SPI) += soft_spi.o
> > +COBJS-$(CONFIG_DAVINCI_SPI) += davinci_spi.o
>
> Should this list be kept sorted alphabetically? I.e.
>

I'll arrange them alphabetically.

> ...
> COBJS-$(CONFIG_BFIN_SPI) += bfin_spi.o
> COBJS-$(CONFIG_CF_SPI) += cf_spi.o
> +COBJS-$(CONFIG_DAVINCI_SPI) += davinci_spi.o
> COBJS-$(CONFIG_KIRKWOOD_SPI) += kirkwood_spi.o
> ...
>
> ?
>
> > COBJS := $(COBJS-y)
> > SRCS := $(COBJS:.o=.c)
> > diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
> > new file mode 100644
> > index 0000000..1c988bb
> > --- /dev/null
> > +++ b/drivers/spi/davinci_spi.c
> > @@ -0,0 +1,205 @@
> ...
> > +void spi_init()
> ...
> > +struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
> > + unsigned int max_hz, unsigned int mode)
> ...
> > +void spi_free_slave(struct spi_slave *slave)
> ....
> > +int spi_claim_bus(struct spi_slave *slave)
> ....
> > +void spi_release_bus(struct spi_slave *slave)
> ....
> > +int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
> > + const void *dout, void *din, unsigned long flags)
>
> I wonder if all (SPI API) functions from include/spi.h should be
> implemented? I.e. do we need (dummy) functions for spi_cs_is_valid(),
> spi_cs_activate() and spi_cs_deactivate(), too? Just in case a driver
> does use them.
>
> > diff --git a/drivers/spi/davinci_spi.h b/drivers/spi/davinci_spi.h
> > new file mode 100644
> > index 0000000..b3bf916
> > --- /dev/null
> > +++ b/drivers/spi/davinci_spi.h
> > @@ -0,0 +1,84 @@
> > +/*
> > + * Register definitions for the DaVinci SPI Controller
> > + */
>
> Do we want a complete GPL header, like in the .c file, here, too?
>
> Do we want a protection against multiple inclusion
>
> #ifndef _DAVINCI_SPI_H_
> #define _DAVINCI_SPI_H_
>
> in this header file?
>
> Best regards
>
> Dirk
>