bcm63xx: add support for linux 3.8
[openwrt.git] / target / linux / brcm63xx / patches-3.8 / 428-MIPS-BCM63XX-add-flash-detection-for-BCM6362.patch
1 From d9666553a10ea85ea64e3e8784a42167a1709ed5 Mon Sep 17 00:00:00 2001
2 From: Jonas Gorski <jonas.gorski@gmail.com>
3 Date: Mon, 21 Nov 2011 00:48:52 +0100
4 Subject: [PATCH 55/84] MIPS: BCM63XX: add flash detection for BCM6362
5
6 Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 ---
8  arch/mips/bcm63xx/dev-flash.c                     |   13 ++++++++++++-
9  arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h |    1 +
10  2 files changed, 13 insertions(+), 1 deletions(-)
11
12 --- a/arch/mips/bcm63xx/dev-flash.c
13 +++ b/arch/mips/bcm63xx/dev-flash.c
14 @@ -100,6 +100,17 @@ static int __init bcm63xx_detect_flash_t
15                         return BCM63XX_FLASH_TYPE_PARALLEL;
16                 else
17                         return BCM63XX_FLASH_TYPE_SERIAL;
18 +       case BCM6362_CPU_ID:
19 +               val = bcm_misc_readl(MISC_STRAPBUS_6362_REG);
20 +               if (val & STRAPBUS_6362_HSSPI_CLK_FAST)
21 +                       bcm63xx_spi_flash_info[0].max_speed_hz = 50000000;
22 +               else
23 +                       bcm63xx_spi_flash_info[0].max_speed_hz = 20000000;
24 +
25 +               if (val & STRAPBUS_6362_BOOT_SEL_SERIAL)
26 +                       return BCM63XX_FLASH_TYPE_SERIAL;
27 +               else
28 +                       return BCM63XX_FLASH_TYPE_NAND;
29         case BCM6368_CPU_ID:
30                 val = bcm_gpio_readl(GPIO_STRAPBUS_REG);
31                 if (val & STRAPBUS_6368_SPI_CLK_FAST)
32 @@ -136,7 +147,7 @@ int __init bcm63xx_flash_register(void)
33  
34                 return platform_device_register(&mtd_dev);
35         case BCM63XX_FLASH_TYPE_SERIAL:
36 -               if (BCMCPU_IS_6328())
37 +               if (BCMCPU_IS_6328() || BCMCPU_IS_6362())
38                         bcm63xx_flash_data.max_transfer_len = HSSPI_BUFFER_LEN;
39  
40                 return spi_register_board_info(bcm63xx_spi_flash_info,
41 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
42 +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
43 @@ -1474,6 +1474,7 @@
44  
45  #define MISC_STRAPBUS_6362_REG         0x14
46  #define STRAPBUS_6362_FCVO_SHIFT       1
47 +#define STRAPBUS_6362_HSSPI_CLK_FAST   (1 << 13)
48  #define STRAPBUS_6362_FCVO_MASK                (0x1f << STRAPBUS_6362_FCVO_SHIFT)
49  #define STRAPBUS_6362_BOOT_SEL_SERIAL  (1 << 15)
50  #define STRAPBUS_6362_BOOT_SEL_NAND    (0 << 15)