[U-Boot] [U-Boot 1/7] dm: spi: zynq_spi: Convert to driver model
Simon Glass
sjg at chromium.org
Thu Apr 23 20:23:54 CEST 2015
Hi Jagan,
On 23 April 2015 at 08:15, Jagannadha Sutradharudu Teki
<jagannadh.teki at gmail.com> wrote:
> This converts the zynq spi driver to use the driver model.
>
> Minimal functional changes like using meaningful name on
> structure members wrt mainlined dm spi drivers.
> - input_hz -> frequency
> - req_hz -> freq
> - base -> regs
>
> Signed-off-by: Jagannadha Sutradharudu Teki <jagannadh.teki at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Michal Simek <michal.simek at xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur at xilinx.com>
> ---
> Note: Siva Durga Prasad, can you test this on zc770_xm010
>
> drivers/spi/zynq_spi.c | 305 +++++++++++++++++++++++++++++--------------------
> 1 file changed, 181 insertions(+), 124 deletions(-)
>
Acked-by: Simon Glass <sjg at chromium.org>
> diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c
> index ff1ec6a..62edbbe 100644
> --- a/drivers/spi/zynq_spi.c
> +++ b/drivers/spi/zynq_spi.c
> @@ -1,5 +1,6 @@
> /*
> * (C) Copyright 2013 Inc.
> + * (C) Copyright 2015 Jagannadha Sutradharudu Teki <jagannadh.teki at gmail.com>
> *
> * Xilinx Zynq PS SPI controller driver (master mode only)
> *
> @@ -8,6 +9,8 @@
>
> #include <config.h>
> #include <common.h>
> +#include <dm.h>
> +#include <errno.h>
> #include <malloc.h>
> #include <spi.h>
> #include <asm/io.h>
> @@ -44,180 +47,142 @@ struct zynq_spi_regs {
> u32 rxdr; /* 0x20 */
> };
>
> -/* zynq spi slave */
> -struct zynq_spi_slave {
> - struct spi_slave slave;
> - struct zynq_spi_regs *base;
> - u8 mode;
> - u8 fifo_depth;
> +
> +/* zynq spi platform data */
> +struct zynq_spi_platdata {
> + struct zynq_spi_regs *regs;
> + u32 frequency; /* input frequency */
> u32 speed_hz;
> - u32 input_hz;
> - u32 req_hz;
> };
>
> -static inline struct zynq_spi_slave *to_zynq_spi_slave(struct spi_slave *slave)
> -{
> - return container_of(slave, struct zynq_spi_slave, slave);
> -}
> +/* zynq spi priv */
> +struct zynq_spi_priv {
> + struct zynq_spi_regs *regs;
> + u8 cs;
> + u8 mode;
> + u8 fifo_depth;
> + u32 freq; /* required frequency */
> +};
>
> -static inline struct zynq_spi_regs *get_zynq_spi_base(int dev)
> +static inline struct zynq_spi_regs *get_zynq_spi_regs(struct udevice *bus)
I see you remove this in a latest patch.
> {
> - if (dev)
> + if (bus->seq)
> return (struct zynq_spi_regs *)ZYNQ_SPI_BASEADDR1;
> else
> return (struct zynq_spi_regs *)ZYNQ_SPI_BASEADDR0;
> }
>
[snip]
Regards,
Simon
More information about the U-Boot
mailing list