arm: mvebu: turris_mox: Fix unstable board topology reading
The pre-relocation board topology reading in board_fix_fdt() is unstable: sometimes wrong data are read from the SPI bus. This is due to wrong order of SPI bus configuration instructions: we first need to set the pins to SPI mode, and only after that configure the bus. Also add a 1ms delay before enabling chip-select, so that the clock pin is high for some time before reading the bus. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
committed by
Stefan Roese
parent
d368e10705
commit
08370038df
@@ -56,9 +56,11 @@ int board_fix_fdt(void *blob)
|
||||
* to read SPI by reading/writing SPI registers directly
|
||||
*/
|
||||
|
||||
writel(0x10df, ARMADA_37XX_SPI_CFG);
|
||||
/* put pin from GPIO to SPI mode */
|
||||
clrbits_le32(ARMADA_37XX_NB_GPIO_SEL, BIT(12));
|
||||
/* configure cpol, cpha, prescale */
|
||||
writel(0x10df, ARMADA_37XX_SPI_CFG);
|
||||
mdelay(1);
|
||||
/* enable SPI CS1 */
|
||||
setbits_le32(ARMADA_37XX_SPI_CTRL, BIT(17));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user