spi: mvebu: fix baudrate selection for Armada 370/XP
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@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
b101cb2149
commit
76fd7b6404
|
@ -317,16 +317,18 @@ static int mvebu_spi_transfer(struct spi_device *spi, struct spi_message *msg)
|
|||
}
|
||||
|
||||
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 },
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue