brcm63xx: spi flash on legacy spi controller needs the workaround
authorJonas Gorski <jogo@openwrt.org>
Mon, 13 Jan 2014 12:12:50 +0000 (12:12 +0000)
committerJonas Gorski <jogo@openwrt.org>
Mon, 13 Jan 2014 12:12:50 +0000 (12:12 +0000)
Fixes generic SPI flash accesses on BCM6358/BCM6368. BCM6338 still needs
additional fixes for M25P80, so it remains broken for now.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 39266

target/linux/brcm63xx/patches-3.10/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch
target/linux/brcm63xx/patches-3.10/415-MIPS-BCM63XX-store-the-flash-type-in-global-variable.patch

index 9f4e25d18a0240d4139d443831de43df3a43836a..516becdece5a9dfb9027142f1b420ba921a3340b 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
                switch (val & STRAPBUS_6368_BOOT_SEL_MASK) {
                case STRAPBUS_6368_BOOT_SEL_NAND:
                        return BCM63XX_FLASH_TYPE_NAND;
-@@ -117,8 +143,11 @@ int __init bcm63xx_flash_register(void)
+@@ -117,8 +143,14 @@ int __init bcm63xx_flash_register(void)
  
                return platform_device_register(&mtd_dev);
        case BCM63XX_FLASH_TYPE_SERIAL:
@@ -77,6 +77,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
 +              if (BCMCPU_IS_6328() || BCMCPU_IS_6362())
 +                      bcm63xx_spi_flash_info[0].bus_num = 1;
 +
++              if (BCMCPU_IS_6358() || BCMCPU_IS_6368())
++                      bcm63xx_flash_data.max_transfer_len = SPI_6358_MSG_DATA_SIZE;
++
 +              return spi_register_board_info(bcm63xx_spi_flash_info,
 +                                      ARRAY_SIZE(bcm63xx_spi_flash_info));
        case BCM63XX_FLASH_TYPE_NAND:
index a6cc6a111fde7dcdc8c43cf1bf1b3137d0c507c4..e7f8bf0f27871e101db05ed3f5dcdf51298c9d2a 100644 (file)
@@ -97,7 +97,7 @@ Subject: [PATCH 38/59] MIPS: BCM63XX: store the flash type in global variable
        case BCM63XX_FLASH_TYPE_PARALLEL:
                /* read base address of boot chip select (0) */
                val = bcm_mpi_readl(MPI_CSBASE_REG(0));
-@@ -153,7 +166,7 @@ int __init bcm63xx_flash_register(void)
+@@ -156,7 +169,7 @@ int __init bcm63xx_flash_register(void)
                return -ENODEV;
        default:
                pr_err("flash detection failed for BCM%x: %d\n",