[U-Boot] [PATCH 1/2] arm: mvebu: clearfog: Fix SPI-NOR flash access

From: Jon Nettleton jon@solid-run.com
The production variant of the SPI flash used by the clearfog devices are based on winbond chips. Additionally enable SPI_FLASH_BAR since some variants will have 16MB of flash that requires this to be enabled.
Remove the default speed and mode; these values are taken from the device tree when CONFIG_DM_SPI_FLASH is enabled.
Add default bus, so that 'sf' detects the SPI flash by default.
Signed-off-by: Jon Nettleton jon@solid-run.com [baruch: remove speed/mode; add bus] Signed-off-by: Baruch Siach baruch@tkos.co.il --- configs/clearfog_defconfig | 2 ++ include/configs/clearfog.h | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig index 3de204346d88..726c444f6042 100644 --- a/configs/clearfog_defconfig +++ b/configs/clearfog_defconfig @@ -46,3 +46,5 @@ CONFIG_DM_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_MVEBU=y CONFIG_USB_STORAGE=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_SPI_FLASH_MTD=y diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 5061f6c6fd16..f6b442b9461f 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -33,9 +33,8 @@ #define CONFIG_SYS_I2C_SPEED 100000
/* SPI NOR flash default params, used by sf commands */ -#define CONFIG_SF_DEFAULT_SPEED 1000000 -#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 -#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_SF_DEFAULT_BUS 1 +#define CONFIG_SPI_FLASH_WINBOND
/* * SDIO/MMC Card Configuration

All current ClearFog SOMs have the SPI flash populated. Enable SPI flash in the device tree.
Add an alias to the SPI bus so that the 'sf' command can probe the flash on bus 1.
Add the "spi-flash" compatible string to make the standard SPI flash driver probe the device.
Signed-off-by: Baruch Siach baruch@tkos.co.il --- arch/arm/dts/armada-388-clearfog.dts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/arch/arm/dts/armada-388-clearfog.dts b/arch/arm/dts/armada-388-clearfog.dts index b2dfd5643521..bc52bc0167d3 100644 --- a/arch/arm/dts/armada-388-clearfog.dts +++ b/arch/arm/dts/armada-388-clearfog.dts @@ -61,6 +61,7 @@ ethernet1 = ð0; ethernet2 = ð1; ethernet3 = ð2; + spi1 = &spi1; };
chosen { @@ -330,11 +331,9 @@ status = "okay"; };
- spi@10680 { + spi1: spi@10680 { /* - * We don't seem to have the W25Q32 on the - * A1 Rev 2.0 boards, so disable SPI. - * CS0: W25Q32 (doesn't appear to be present) + * CS0: W25Q32 * CS1: * CS2: mikrobus */ @@ -345,10 +344,9 @@ spi-flash@0 { #address-cells = <1>; #size-cells = <0>; - compatible = "w25q32", "jedec,spi-nor"; + compatible = "w25q32", "jedec,spi-nor", "spi-flash"; reg = <0>; /* Chip select 0 */ spi-max-frequency = <3000000>; - status = "disabled"; }; };

On Thu, Nov 9, 2017 at 5:56 PM, Baruch Siach baruch@tkos.co.il wrote:
All current ClearFog SOMs have the SPI flash populated. Enable SPI flash in the device tree.
Add an alias to the SPI bus so that the 'sf' command can probe the flash on bus 1.
Add the "spi-flash" compatible string to make the standard SPI flash driver probe the device.
Signed-off-by: Baruch Siach baruch@tkos.co.il
Reviewed-by: Jagan Teki jagan@openedev.com
thanks!

On Thu, Nov 9, 2017 at 5:55 PM, Baruch Siach baruch@tkos.co.il wrote:
From: Jon Nettleton jon@solid-run.com
The production variant of the SPI flash used by the clearfog devices are based on winbond chips. Additionally enable SPI_FLASH_BAR since some variants will have 16MB of flash that requires this to be enabled.
Remove the default speed and mode; these values are taken from the device tree when CONFIG_DM_SPI_FLASH is enabled.
Add default bus, so that 'sf' detects the SPI flash by default.
Signed-off-by: Jon Nettleton jon@solid-run.com [baruch: remove speed/mode; add bus] Signed-off-by: Baruch Siach baruch@tkos.co.il
configs/clearfog_defconfig | 2 ++ include/configs/clearfog.h | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig index 3de204346d88..726c444f6042 100644 --- a/configs/clearfog_defconfig +++ b/configs/clearfog_defconfig @@ -46,3 +46,5 @@ CONFIG_DM_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_MVEBU=y CONFIG_USB_STORAGE=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_SPI_FLASH_MTD=y diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 5061f6c6fd16..f6b442b9461f 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -33,9 +33,8 @@ #define CONFIG_SYS_I2C_SPEED 100000
/* SPI NOR flash default params, used by sf commands */ -#define CONFIG_SF_DEFAULT_SPEED 1000000 -#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 -#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_SF_DEFAULT_BUS 1 +#define CONFIG_SPI_FLASH_WINBOND
Even this can move to defconfig
thanks!
participants (2)
-
Baruch Siach
-
Jagan Teki