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

Dirk Behme
2009-12-25T17:11:13Z

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.

...
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