Hi Dirk,
On 28.10.2015 17:29, Jagan Teki wrote:
On 28 October 2015 at 21:14, <dirk.eib...@gdsys.cc> wrote:
From: Dirk Eibach <dirk.eib...@gdsys.cc>
Armada 38x has two spi controllers.
Signed-off-by: Dirk Eibach <dirk.eib...@gdsys.cc>
---
drivers/spi/kirkwood_spi.c | 52 +++++++++++++++++++++++++++++++++++++++-------
1 file changed, 45 insertions(+), 7 deletions(-)
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index e7b0982..200c391 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -18,17 +18,25 @@
#endif
#include <asm/arch-mvebu/spi.h>
-static struct kwspi_registers *spireg =
- (struct kwspi_registers *)MVEBU_SPI_BASE;
-
#ifdef CONFIG_KIRKWOOD
static u32 cs_spi_mpp_back[2];
#endif
+struct kwspi_slave {
+ struct spi_slave slave;
+ struct kwspi_registers *spireg;
+};
+
+static inline struct kwspi_slave *to_kwspi(struct spi_slave *slave)
+{
+ return container_of(slave, struct kwspi_slave, slave);
+}
+
struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
unsigned int max_hz, unsigned int mode)
{
- struct spi_slave *slave;
+ struct kwspi_slave *kwspi_slave;
+ struct kwspi_registers *spireg;
u32 data;
#ifdef CONFIG_KIRKWOOD
static const u32 kwspi_mpp_config[2][2] = {
@@ -40,10 +48,27 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
unsigned int cs,
if (!spi_cs_is_valid(bus, cs))
return NULL;
- slave = spi_alloc_slave_base(bus, cs);
- if (!slave)
+ kwspi_slave = spi_alloc_slave(struct kwspi_slave, bus, cs);
+ if (!kwspi_slave)
return NULL;
+ switch (bus) {
+ case 0:
+ kwspi_slave->spireg = (struct kwspi_registers *)MVEBU_SPI_BASE;
+ break;
+#ifdef CONFIG_ARMADA_38X
+ /* Armada 38x has two SPI controllers */
Can you please add this through driver-model, I understand it's bit
big task but I can help you at any moment.
Yes, please do. I know this is additional work. But we really need to
get there at some time. And please note that you can use the
runtime SoC detection for this:
if (mvebu_soc_family() == MVEBU_SOC_A38X)
So no new #idefs are needed in such places.
Thanks,
Stefan
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot