
Hi Simon,
On 23 April 2015 at 23:53, Simon Glass sjg@chromium.org wrote:
Hi Jagan,
On 23 April 2015 at 08:15, Jagannadha Sutradharudu Teki jagannadh.teki@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@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Michal Simek michal.simek@xilinx.com Cc: Siva Durga Prasad Paladugu sivadur@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@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@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.
Yes, added dts node for retrieving reg.
{
if (dev)
if (bus->seq) return (struct zynq_spi_regs *)ZYNQ_SPI_BASEADDR1; else return (struct zynq_spi_regs *)ZYNQ_SPI_BASEADDR0;
}
[snip]
thanks!