[PATCH] spi: mvebu: fix baudrate selection for Armada 370/XP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There are two problems that made the driver choose the wrong baudrate
calculation algorithm:

a) The compatible used on 370/XP isn't marvell,armada-370-xp-spi but
   marvell,armada-370-spi or marvell,armada-xp-spi respectively.
b) The probe function uses
   	match = of_match_node(mvebu_spi_dt_ids, dev->device_node);
   to determine the right algorithm. As the devices are also compatible
   to marvell,orion-spi and this comes first in mvebu_spi_dt_ids[]
   it's always the older Orion algorithm that is used.

This patch fixes both problems.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
---
 drivers/spi/mvebu_spi.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/mvebu_spi.c b/drivers/spi/mvebu_spi.c
index ee7b212962f7..e340686bd676 100644
--- a/drivers/spi/mvebu_spi.c
+++ b/drivers/spi/mvebu_spi.c
@@ -317,16 +317,18 @@ err_transfer:
 }
 
 static struct of_device_id mvebu_spi_dt_ids[] = {
-	{ .compatible = "marvell,orion-spi",
-	  .data = &mvebu_spi_set_baudrate },
 #if defined(CONFIG_ARCH_ARMADA_370) || defined(CONFIG_ARCH_ARMADA_XP)
-	{ .compatible = "marvell,armada-370-xp-spi",
+	{ .compatible = "marvell,armada-370-spi",
+	  .data = &armada_370_xp_spi_set_baudrate },
+	{ .compatible = "marvell,armada-xp-spi",
 	  .data = &armada_370_xp_spi_set_baudrate },
 #endif
 #if defined(CONFIG_ARCH_DOVE)
 	{ .compatible = "marvell,dove-spi",
 	  .data = &dove_spi_set_baudrate },
 #endif
+	{ .compatible = "marvell,orion-spi",
+	  .data = &mvebu_spi_set_baudrate },
 	{ }
 };
 
-- 
2.10.2


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux