bcm63xx: add support for the BCM6338 SoC
PATCH 4/8 bcm63xx: add support for the BCM6338 SoC
This patch adds support for the BCM6338 SoC, it is very similar to BCM6348 except that:
- the CPU frequency is not locked on PLL and is fixed
- there is only one Ethernet MAC therefore the DMA zone is twice smaller
Signed-off-by Florian Fainelli <[email protected]>
---
arch/mips/bcm63xx/Kconfig +7 -0
@@ -1,6 +1,13 @@ menu "CPU support" depends on BCM63XX +config BCM63XX_CPU_6338 + bool "support 6338 CPU" + select HW_HAS_PCI + select USB_ARCH_HAS_OHCI + select USB_OHCI_BIG_ENDIAN_DESC + select USB_OHCI_BIG_ENDIAN_MMIO + config BCM63XX_CPU_6348 bool "support 6348 CPU" select HW_HAS_PCI
arch/mips/bcm63xx/clk.c +6 -2
@@ -49,7 +49,9 @@ static void enet_misc_set(struct clk *clk, int enable) {u32 mask; -if (BCMCPU_IS_6348 ()) +if (BCMCPU_IS_6338 ()) + mask =CKCTL_6338_ENET_EN ; +else if (BCMCPU_IS_6348 ()) mask =CKCTL_6348_ENET_EN ;else /* BCMCPU_IS_6358 */
@@ -143,7 +145,9 @@ static void spi_set(struct clk *clk, int enable) {u32 mask; -if (BCMCPU_IS_6348 ()) +if (BCMCPU_IS_6338 ()) + mask =CKCTL_6338_SPI_EN ; +else if (BCMCPU_IS_6348 ()) mask =CKCTL_6348_SPI_EN ;else /* BCMCPU_IS_6358 */
arch/mips/bcm63xx/cpu.c +49 -1
80 lines not on this page · raw message
arch/mips/bcm63xx/dev-enet.c +4 -1
@@ -107,7 +107,10 @@ int __init bcm63xx_enet_register(int unit,if (!shared_device_registered) { shared_res[0 ].start =bcm63xx_regset_address (RSET_ENETDMA ); shared_res[0 ].end = shared_res[0 ].start; - shared_res[0 ].end +=RSET_ENETDMA_SIZE -1 ; +if (BCMCPU_IS_6338 ()) + shared_res[0 ].end += (RSET_ENETDMA_SIZE /2 ) -1 ; +else + shared_res[0 ].end += (RSET_ENETDMA_SIZE ) -1 ; ret =platform_device_register (&bcm63xx_enet_shared_device);if (ret)
arch/mips/bcm63xx/prom.c +3 -1
@@ -25,7 +25,9 @@ void __init prom_init(void)bcm_wdt_writel (WDT_STOP_2 ,WDT_CTL_REG );/* disable all hardware blocks clock for now */ -if (BCMCPU_IS_6348 ()) +if (BCMCPU_IS_6338 ()) + mask =CKCTL_6338_ALL_SAFE_EN ; +else if (BCMCPU_IS_6348 ()) mask =CKCTL_6348_ALL_SAFE_EN ;else /* BCMCPU_IS_6358() */
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h +111 -0
141 lines not on this page · raw message
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +33 -0
@@ -15,6 +15,20 @@/* Clock Control register */ #define PERF_CKCTL_REG 0x4 +#define CKCTL_6338_ADSLPHY_EN (1 << 0) +#define CKCTL_6338_MPI_EN (1 << 1) +#define CKCTL_6338_DRAM_EN (1 << 2) +#define CKCTL_6338_ENET_EN (1 << 4) +#define CKCTL_6338_USBS_EN (1 << 4) +#define CKCTL_6338_SAR_EN (1 << 5) +#define CKCTL_6338_SPI_EN (1 << 9) + +#define CKCTL_6338_ALL_SAFE_EN (CKCTL_6338_ADSLPHY_EN | \ + CKCTL_6338_MPI_EN | \ + CKCTL_6338_ENET_EN | \ + CKCTL_6338_SAR_EN | \ + CKCTL_6338_SPI_EN) +#define CKCTL_6348_ADSLPHY_EN (1 << 0)#define CKCTL_6348_MPI_EN (1 << 1)#define CKCTL_6348_SDRAM_EN (1 << 2)
@@ -83,6 +97,25 @@/* Soft Reset register */ #define PERF_SOFTRESET_REG 0x28 +#define SOFTRESET_6338_SPI_MASK (1 << 0) +#define SOFTRESET_6338_ENET_MASK (1 << 2) +#define SOFTRESET_6338_USBH_MASK (1 << 3) +#define SOFTRESET_6338_USBS_MASK (1 << 4) +#define SOFTRESET_6338_ADSL_MASK (1 << 5) +#define SOFTRESET_6338_DMAMEM_MASK (1 << 6) +#define SOFTRESET_6338_SAR_MASK (1 << 7) +#define SOFTRESET_6338_ACLC_MASK (1 << 8) +#define SOFTRESET_6338_ADSLMIPSPLL_MASK (1 << 10) +#define SOFTRESET_6338_ALL (SOFTRESET_6338_SPI_MASK | \ + SOFTRESET_6338_ENET_MASK | \ + SOFTRESET_6338_USBH_MASK | \ + SOFTRESET_6338_USBS_MASK | \ + SOFTRESET_6338_ADSL_MASK | \ + SOFTRESET_6338_DMAMEM_MASK | \ + SOFTRESET_6338_SAR_MASK | \ + SOFTRESET_6338_ACLC_MASK | \ + SOFTRESET_6338_ADSLMIPSPLL_MASK) +#define SOFTRESET_6348_SPI_MASK (1 << 0)#define SOFTRESET_6348_ENET_MASK (1 << 2)#define SOFTRESET_6348_USBH_MASK (1 << 3)
arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h +1 -1
@@ -24,7 +24,7 @@#define cpu_has_smartmips 0#define cpu_has_vtag_icache 0 -#if !defined(BCMCPU_RUNTIME_DETECT ) && defined(CONFIG_BCMCPU_IS_6348 ) +#if !defined(BCMCPU_RUNTIME_DETECT ) && (defined(CONFIG_BCMCPU_IS_6348 ) || defined(CONFIG_CPU_IS_6338 ))#define cpu_has_dc_aliases 0#endif
On Fri, Aug 07, 2009 at 11:46:44PM +0200, Florian Fainelli wrote:
Thansk, folded into "MIPS: BCM63XX: Add integrated ethernet mac support."
Ralf