Skip to contentSkip to conversation

bcm63xx: add support for BCM6345 SoC

PATCH In review Florian Fainelli 1 participant 1 message Aug 7, 2009 MIPS

lore
Share & tools
lore
#0 lore raw

PATCH 6/8 bcm63xx: add support for BCM6345 SoC

This patch adds support for the BCM6345 SoC. This is the very first generation of BCM63xx. A couple of modifications needs to be made:
- bcm6345 does not support r4k_wait, disable it
- bcm6345 does not have SPI or MPI

---

arch/mips/bcm63xx/Kconfig +5 -0
index 325f69a..4aa21e8 100644
@@ -8,6 +8,11 @@ config BCM63XX_CPU_6338
 	select USB_OHCI_BIG_ENDIAN_DESC
 	select USB_OHCI_BIG_ENDIAN_MMIO
 
+config BCM63XX_CPU_6345
+	bool "support 6345 CPU"
+	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 +2 -0
index d189965..4e2309a 100644
@@ -51,6 +51,8 @@ static void enet_misc_set(struct clk *clk, int enable)
 
 	if (BCMCPU_IS_6338())
 		mask = CKCTL_6338_ENET_EN;
+	else if (BCMCPU_IS_6345())
+		mask = CKCTL_6345_ENET_EN;
 	else if (BCMCPU_IS_6348())
 		mask = CKCTL_6348_ENET_EN;
 	else
arch/mips/bcm63xx/cpu.c +49 -0

73 lines not on this page · raw message

arch/mips/bcm63xx/prom.c +2 -0
index 6a41acb..d36ee03 100644
@@ -27,6 +27,8 @@ void __init prom_init(void)
 	/* disable all hardware blocks clock for now */
 	if (BCMCPU_IS_6338())
 		mask = CKCTL_6338_ALL_SAFE_EN;
+	else if (BCMCPU_IS_6345())
+		mask = CKCTL_6345_ALL_SAFE_EN;
 	else if (BCMCPU_IS_6348())
 		mask = CKCTL_6348_ALL_SAFE_EN;
 	else
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h +113 -0

143 lines not on this page · raw message

arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +12 -0
index 3249e8c..48dcb43 100644
@@ -29,6 +29,18 @@
 					CKCTL_6338_SAR_EN |		\
 					CKCTL_6338_SPI_EN)
 
+#define CKCTL_6345_CPU_EN		(1 << 0)
+#define CKCTL_6345_BUS_EN		(1 << 1)
+#define CKCTL_6345_EBI_EN		(1 << 2)
+#define CKCTL_6345_UART_EN		(1 << 3)
+#define CKCTL_6345_ADSLPHY_EN		(1 << 4)
+#define CKCTL_6345_ENET_EN		(1 << 7)
+#define CKCTL_6345_USBH_EN		(1 << 8)
+
+#define CKCTL_6345_ALL_SAFE_EN		(CKCTL_6345_ENET_EN |	\
+					CKCTL_6345_USBH_EN |	\
+					CKCTL_6345_ADSLPHY_EN)
+
 #define CKCTL_6348_ADSLPHY_EN		(1 << 0)
 #define CKCTL_6348_MPI_EN		(1 << 1)
 #define CKCTL_6348_SDRAM_EN		(1 << 2)
arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h +1 -1
index 80c3aa2..71742ba 100644
@@ -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) || defined(CONFIG_CPU_IS_6338))
+#if !defined(BCMCPU_RUNTIME_DETECT) && (defined(CONFIG_BCMCPU_IS_6348) || defined(CONFIG_CPU_IS_6338) || defined(CONFIG_CPU_IS_BCM6345))
 #define cpu_has_dc_aliases		0
 #endif
 
arch/mips/kernel/cpu-probe.c +0 -1
index ae53992..251a268 100644
@@ -160,7 +160,6 @@ void __init check_wait(void)
 	case CPU_PR4450:
 	case CPU_BCM3302:
 	case CPU_BCM6338:
-	case CPU_BCM6345:
 	case CPU_BCM6348:
 	case CPU_BCM6358:
 	case CPU_CAVIUM_OCTEON: