Re: [PATCH 01/11] spi-dw: expose platform data stucture.

From: Grant Likely
Date: Wed Jun 22 2011 - 23:48:18 EST


On Wed, Jun 22, 2011 at 8:00 PM, <dirk.brandewie@xxxxxxxxx> wrote:
> From: Dirk Brandewie <dirk.brandewie@xxxxxxxxx>
>
> Expose the platform data structure for use by client drivers. ATM
> there are not any in-tree drivers using the driver (that I can
> find). This patch exposes the platform data needed for client drivers.

? Why would client drivers want to muck with this configuration? I
can understand the dw_spi driver being able to have per-spi_device
configuration, but spi_drivers absolutely should not have visibility
into bus-specific details. Am I misunderstanding something.

g.

>
> Signed-off-by: Dirk Brandewie <dirk.brandewie@xxxxxxxxx>
> ---
>  drivers/spi/spi-dw.c       |    3 ---
>  drivers/spi/spi-dw.h       |   18 +-----------------
>  include/linux/spi/spi-dw.h |   42 ++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 43 insertions(+), 20 deletions(-)
>  create mode 100644 include/linux/spi/spi-dw.h
>
> diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
> index ece5f69..61f7ed8 100644
> --- a/drivers/spi/spi-dw.c
> +++ b/drivers/spi/spi-dw.c
> @@ -38,9 +38,6 @@
>  #define QUEUE_RUNNING  0
>  #define QUEUE_STOPPED  1
>
> -#define MRST_SPI_DEASSERT      0
> -#define MRST_SPI_ASSERT                1
> -
>  /* Slave spi_dev related */
>  struct chip_data {
>        u16 cr0;
> diff --git a/drivers/spi/spi-dw.h b/drivers/spi/spi-dw.h
> index 7a5e78d..92bee30 100644
> --- a/drivers/spi/spi-dw.h
> +++ b/drivers/spi/spi-dw.h
> @@ -3,6 +3,7 @@
>
>  #include <linux/io.h>
>  #include <linux/scatterlist.h>
> +#include <linux/spi/spi-dw.h>
>
>  /* Bit fields in CTRLR0 */
>  #define SPI_DFS_OFFSET                 0
> @@ -49,11 +50,6 @@
>  /* TX RX interrupt level threshold, max can be 256 */
>  #define SPI_INT_THRESHOLD              32
>
> -enum dw_ssi_type {
> -       SSI_MOTO_SPI = 0,
> -       SSI_TI_SSP,
> -       SSI_NS_MICROWIRE,
> -};
>
>  struct dw_spi_reg {
>        u32     ctrl0;
> @@ -208,18 +204,6 @@ static inline void spi_umask_intr(struct dw_spi *dws, u32 mask)
>        dw_writel(dws, imr, new_mask);
>  }
>
> -/*
> - * Each SPI slave device to work with dw_api controller should
> - * has such a structure claiming its working mode (PIO/DMA etc),
> - * which can be save in the "controller_data" member of the
> - * struct spi_device
> - */
> -struct dw_spi_chip {
> -       u8 poll_mode;   /* 0 for contoller polling mode */
> -       u8 type;        /* SPI/SSP/Micrwire */
> -       u8 enable_dma;
> -       void (*cs_control)(u32 command);
> -};
>
>  extern int dw_spi_add_host(struct dw_spi *dws);
>  extern void dw_spi_remove_host(struct dw_spi *dws);
> diff --git a/include/linux/spi/spi-dw.h b/include/linux/spi/spi-dw.h
> new file mode 100644
> index 0000000..787b154
> --- /dev/null
> +++ b/include/linux/spi/spi-dw.h
> @@ -0,0 +1,42 @@
> +/*
> + *
> + * Copyright (c) 2009, Intel Corporation.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License along with
> + * this program; if not, write to the Free Software Foundation, Inc.,
> + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> + */
> +
> +#ifndef _SPI_DW_H_
> +#define _SPI_DW_H_
> +enum spi_dw_ssi_type {
> +       SSI_MOTO_SPI = 0,
> +       SSI_TI_SSP,
> +       SSI_NS_MICROWIRE,
> +};
> +
> +#define MRST_SPI_DEASSERT      0
> +#define MRST_SPI_ASSERT                1
> +
> +/*
> + * Each SPI slave device to work with dw_api controller should
> + * has such a structure claiming its working mode (PIO/DMA etc),
> + * which can be save in the "controller_data" member of the
> + * struct spi_device
> + */
> +struct spi_dw_chip {
> +       u8 poll_mode;   /* 0 for contoller polling mode */
> +       u8 type;        /* SPI/SSP/Micrwire */
> +       u8 enable_dma;
> +       void (*cs_control)(u32 command);
> +};
> +#endif
> --
> 1.7.3.4
>
>
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Data protection magic?
> Nope - It's vRanger. Get your free trial download today.
> http://p.sf.net/sfu/quest-sfdev2dev
> _______________________________________________
> spi-devel-general mailing list
> spi-devel-general@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/spi-devel-general
>



--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/