| 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 | @@ -1304,6 +1304,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) |
| 51 | |