diff options
| author | Ralf Baechle <ralf@linux-mips.org> | 2012-10-05 09:56:28 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2012-10-05 09:56:28 -0400 |
| commit | 382fc33b4a04e2dde89b4c69a6880e0c7d9761e2 (patch) | |
| tree | 9d13ef333c4e841756c45bf29600ceac28e3f85e | |
| parent | 97541ccfb9db2bb9cd1dde6344d5834438d14bda (diff) | |
| parent | 986936d7c2f83427bb3bf1e629eba4373438e151 (diff) | |
Merge branch 'master' of git://dev.phrozen.org/mips-next into mips-for-linux-next
24 files changed, 1045 insertions, 251 deletions
diff --git a/Documentation/devicetree/bindings/spi/spi-octeon.txt b/Documentation/devicetree/bindings/spi/spi-octeon.txt new file mode 100644 index 000000000000..431add192342 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/spi-octeon.txt | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | Cavium, Inc. OCTEON SOC SPI master controller. | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : "cavium,octeon-3010-spi" | ||
| 5 | - reg : The register base for the controller. | ||
| 6 | - interrupts : One interrupt, used by the controller. | ||
| 7 | - #address-cells : <1>, as required by generic SPI binding. | ||
| 8 | - #size-cells : <0>, also as required by generic SPI binding. | ||
| 9 | |||
| 10 | Child nodes as per the generic SPI binding. | ||
| 11 | |||
| 12 | Example: | ||
| 13 | |||
| 14 | spi@1070000001000 { | ||
| 15 | compatible = "cavium,octeon-3010-spi"; | ||
| 16 | reg = <0x10700 0x00001000 0x0 0x100>; | ||
| 17 | interrupts = <0 58>; | ||
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <0>; | ||
| 20 | |||
| 21 | eeprom@0 { | ||
| 22 | compatible = "st,m95256", "atmel,at25"; | ||
| 23 | reg = <0>; | ||
| 24 | spi-max-frequency = <5000000>; | ||
| 25 | spi-cpha; | ||
| 26 | spi-cpol; | ||
| 27 | |||
| 28 | pagesize = <64>; | ||
| 29 | size = <32768>; | ||
| 30 | address-width = <16>; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index bbd193b9dfbb..4cd538b42a3f 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -844,6 +844,7 @@ config NLM_XLP_BOARD | |||
| 844 | select ZONE_DMA if 64BIT | 844 | select ZONE_DMA if 64BIT |
| 845 | select SYNC_R4K | 845 | select SYNC_R4K |
| 846 | select SYS_HAS_EARLY_PRINTK | 846 | select SYS_HAS_EARLY_PRINTK |
| 847 | select USE_OF | ||
| 847 | help | 848 | help |
| 848 | This board is based on Netlogic XLP Processor. | 849 | This board is based on Netlogic XLP Processor. |
| 849 | Say Y here if you have a XLP based board. | 850 | Say Y here if you have a XLP based board. |
| @@ -1892,6 +1893,18 @@ config SIBYTE_DMA_PAGEOPS | |||
| 1892 | config CPU_HAS_PREFETCH | 1893 | config CPU_HAS_PREFETCH |
| 1893 | bool | 1894 | bool |
| 1894 | 1895 | ||
| 1896 | config CPU_GENERIC_DUMP_TLB | ||
| 1897 | bool | ||
| 1898 | default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX) | ||
| 1899 | |||
| 1900 | config CPU_R4K_FPU | ||
| 1901 | bool | ||
| 1902 | default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON) | ||
| 1903 | |||
| 1904 | config CPU_R4K_CACHE_TLB | ||
| 1905 | bool | ||
| 1906 | default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON) | ||
| 1907 | |||
| 1895 | choice | 1908 | choice |
| 1896 | prompt "MIPS MT options" | 1909 | prompt "MIPS MT options" |
| 1897 | 1910 | ||
diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c index 18e051ad18a5..da24c2bd9b7c 100644 --- a/arch/mips/bcm63xx/irq.c +++ b/arch/mips/bcm63xx/irq.c | |||
| @@ -56,8 +56,8 @@ static void __internal_irq_unmask_64(unsigned int irq) __maybe_unused; | |||
| 56 | #define is_ext_irq_cascaded 0 | 56 | #define is_ext_irq_cascaded 0 |
| 57 | #define ext_irq_start 0 | 57 | #define ext_irq_start 0 |
| 58 | #define ext_irq_end 0 | 58 | #define ext_irq_end 0 |
| 59 | #define ext_irq_count 0 | 59 | #define ext_irq_count 4 |
| 60 | #define ext_irq_cfg_reg1 0 | 60 | #define ext_irq_cfg_reg1 PERF_EXTIRQ_CFG_REG_6345 |
| 61 | #define ext_irq_cfg_reg2 0 | 61 | #define ext_irq_cfg_reg2 0 |
| 62 | #endif | 62 | #endif |
| 63 | #ifdef CONFIG_BCM63XX_CPU_6348 | 63 | #ifdef CONFIG_BCM63XX_CPU_6348 |
| @@ -143,11 +143,15 @@ static void bcm63xx_init_irq(void) | |||
| 143 | irq_stat_addr += PERF_IRQSTAT_6338_REG; | 143 | irq_stat_addr += PERF_IRQSTAT_6338_REG; |
| 144 | irq_mask_addr += PERF_IRQMASK_6338_REG; | 144 | irq_mask_addr += PERF_IRQMASK_6338_REG; |
| 145 | irq_bits = 32; | 145 | irq_bits = 32; |
| 146 | ext_irq_count = 4; | ||
| 147 | ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6338; | ||
| 146 | break; | 148 | break; |
| 147 | case BCM6345_CPU_ID: | 149 | case BCM6345_CPU_ID: |
| 148 | irq_stat_addr += PERF_IRQSTAT_6345_REG; | 150 | irq_stat_addr += PERF_IRQSTAT_6345_REG; |
| 149 | irq_mask_addr += PERF_IRQMASK_6345_REG; | 151 | irq_mask_addr += PERF_IRQMASK_6345_REG; |
| 150 | irq_bits = 32; | 152 | irq_bits = 32; |
| 153 | ext_irq_count = 4; | ||
| 154 | ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6345; | ||
| 151 | break; | 155 | break; |
| 152 | case BCM6348_CPU_ID: | 156 | case BCM6348_CPU_ID: |
| 153 | irq_stat_addr += PERF_IRQSTAT_6348_REG; | 157 | irq_stat_addr += PERF_IRQSTAT_6348_REG; |
| @@ -434,7 +438,8 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 434 | reg = bcm_perf_readl(regaddr); | 438 | reg = bcm_perf_readl(regaddr); |
| 435 | irq %= 4; | 439 | irq %= 4; |
| 436 | 440 | ||
| 437 | if (BCMCPU_IS_6348()) { | 441 | switch (bcm63xx_get_cpu_id()) { |
| 442 | case BCM6348_CPU_ID: | ||
| 438 | if (levelsense) | 443 | if (levelsense) |
| 439 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); | 444 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); |
| 440 | else | 445 | else |
| @@ -447,9 +452,13 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 447 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); | 452 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); |
| 448 | else | 453 | else |
| 449 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); | 454 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); |
| 450 | } | 455 | break; |
| 451 | 456 | ||
| 452 | if (BCMCPU_IS_6338() || BCMCPU_IS_6358() || BCMCPU_IS_6368()) { | 457 | case BCM6328_CPU_ID: |
| 458 | case BCM6338_CPU_ID: | ||
| 459 | case BCM6345_CPU_ID: | ||
| 460 | case BCM6358_CPU_ID: | ||
| 461 | case BCM6368_CPU_ID: | ||
| 453 | if (levelsense) | 462 | if (levelsense) |
| 454 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); | 463 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); |
| 455 | else | 464 | else |
| @@ -462,6 +471,9 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 462 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); | 471 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); |
| 463 | else | 472 | else |
| 464 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); | 473 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); |
| 474 | break; | ||
| 475 | default: | ||
| 476 | BUG(); | ||
| 465 | } | 477 | } |
| 466 | 478 | ||
| 467 | bcm_perf_writel(reg, regaddr); | 479 | bcm_perf_writel(reg, regaddr); |
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c index 0e74a13639cd..314231be788c 100644 --- a/arch/mips/bcm63xx/setup.c +++ b/arch/mips/bcm63xx/setup.c | |||
| @@ -74,6 +74,9 @@ void bcm63xx_machine_reboot(void) | |||
| 74 | case BCM6338_CPU_ID: | 74 | case BCM6338_CPU_ID: |
| 75 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6338; | 75 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6338; |
| 76 | break; | 76 | break; |
| 77 | case BCM6345_CPU_ID: | ||
| 78 | perf_regs[0] = PER | ||
