[PATCH] spi: mvebu: fix baudrate selection for Armada 370/XP
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Wed Dec 7 07:59:00 PST 2016
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 at pengutronix.de>
---
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
More information about the barebox
mailing list