|
@@ -9,6 +9,7 @@
|
|
* compile time if only one CPU support is enabled (idea stolen from
|
|
* compile time if only one CPU support is enabled (idea stolen from
|
|
* arm mach-types)
|
|
* arm mach-types)
|
|
*/
|
|
*/
|
|
|
|
+#define BCM6328_CPU_ID 0x6328
|
|
#define BCM6338_CPU_ID 0x6338
|
|
#define BCM6338_CPU_ID 0x6338
|
|
#define BCM6345_CPU_ID 0x6345
|
|
#define BCM6345_CPU_ID 0x6345
|
|
#define BCM6348_CPU_ID 0x6348
|
|
#define BCM6348_CPU_ID 0x6348
|
|
@@ -20,6 +21,19 @@ u16 __bcm63xx_get_cpu_id(void);
|
|
u16 bcm63xx_get_cpu_rev(void);
|
|
u16 bcm63xx_get_cpu_rev(void);
|
|
unsigned int bcm63xx_get_cpu_freq(void);
|
|
unsigned int bcm63xx_get_cpu_freq(void);
|
|
|
|
|
|
|
|
+#ifdef CONFIG_BCM63XX_CPU_6328
|
|
|
|
+# ifdef bcm63xx_get_cpu_id
|
|
|
|
+# undef bcm63xx_get_cpu_id
|
|
|
|
+# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
|
|
|
|
+# define BCMCPU_RUNTIME_DETECT
|
|
|
|
+# else
|
|
|
|
+# define bcm63xx_get_cpu_id() BCM6328_CPU_ID
|
|
|
|
+# endif
|
|
|
|
+# define BCMCPU_IS_6328() (bcm63xx_get_cpu_id() == BCM6328_CPU_ID)
|
|
|
|
+#else
|
|
|
|
+# define BCMCPU_IS_6328() (0)
|
|
|
|
+#endif
|
|
|
|
+
|
|
#ifdef CONFIG_BCM63XX_CPU_6338
|
|
#ifdef CONFIG_BCM63XX_CPU_6338
|
|
# ifdef bcm63xx_get_cpu_id
|
|
# ifdef bcm63xx_get_cpu_id
|
|
# undef bcm63xx_get_cpu_id
|
|
# undef bcm63xx_get_cpu_id
|
|
@@ -102,13 +116,13 @@ enum bcm63xx_regs_set {
|
|
RSET_UART1,
|
|
RSET_UART1,
|
|
RSET_GPIO,
|
|
RSET_GPIO,
|
|
RSET_SPI,
|
|
RSET_SPI,
|
|
- RSET_SPI2,
|
|
|
|
RSET_UDC0,
|
|
RSET_UDC0,
|
|
RSET_OHCI0,
|
|
RSET_OHCI0,
|
|
RSET_OHCI_PRIV,
|
|
RSET_OHCI_PRIV,
|
|
RSET_USBH_PRIV,
|
|
RSET_USBH_PRIV,
|
|
RSET_MPI,
|
|
RSET_MPI,
|
|
RSET_PCMCIA,
|
|
RSET_PCMCIA,
|
|
|
|
+ RSET_PCIE,
|
|
RSET_DSL,
|
|
RSET_DSL,
|
|
RSET_ENET0,
|
|
RSET_ENET0,
|
|
RSET_ENET1,
|
|
RSET_ENET1,
|
|
@@ -130,11 +144,17 @@ enum bcm63xx_regs_set {
|
|
RSET_PCMDMA,
|
|
RSET_PCMDMA,
|
|
RSET_PCMDMAC,
|
|
RSET_PCMDMAC,
|
|
RSET_PCMDMAS,
|
|
RSET_PCMDMAS,
|
|
|
|
+ RSET_RNG,
|
|
|
|
+ RSET_MISC
|
|
};
|
|
};
|
|
|
|
|
|
#define RSET_DSL_LMEM_SIZE (64 * 1024 * 4)
|
|
#define RSET_DSL_LMEM_SIZE (64 * 1024 * 4)
|
|
#define RSET_DSL_SIZE 4096
|
|
#define RSET_DSL_SIZE 4096
|
|
#define RSET_WDT_SIZE 12
|
|
#define RSET_WDT_SIZE 12
|
|
|
|
+#define BCM_6338_RSET_SPI_SIZE 64
|
|
|
|
+#define BCM_6348_RSET_SPI_SIZE 64
|
|
|
|
+#define BCM_6358_RSET_SPI_SIZE 1804
|
|
|
|
+#define BCM_6368_RSET_SPI_SIZE 1804
|
|
#define RSET_ENET_SIZE 2048
|
|
#define RSET_ENET_SIZE 2048
|
|
#define RSET_ENETDMA_SIZE 2048
|
|
#define RSET_ENETDMA_SIZE 2048
|
|
#define RSET_ENETSW_SIZE 65536
|
|
#define RSET_ENETSW_SIZE 65536
|
|
@@ -149,7 +169,52 @@ enum bcm63xx_regs_set {
|
|
#define RSET_XTMDMA_SIZE 256
|
|
#define RSET_XTMDMA_SIZE 256
|
|
#define RSET_XTMDMAC_SIZE(chans) (16 * (chans))
|
|
#define RSET_XTMDMAC_SIZE(chans) (16 * (chans))
|
|
#define RSET_XTMDMAS_SIZE(chans) (16 * (chans))
|
|
#define RSET_XTMDMAS_SIZE(chans) (16 * (chans))
|
|
|
|
+#define RSET_RNG_SIZE 20
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * 6328 register sets base address
|
|
|
|
+ */
|
|
|
|
+#define BCM_6328_DSL_LMEM_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PERF_BASE (0xb0000000)
|
|
|
|
+#define BCM_6328_TIMER_BASE (0xb0000040)
|
|
|
|
+#define BCM_6328_WDT_BASE (0xb000005c)
|
|
|
|
+#define BCM_6328_UART0_BASE (0xb0000100)
|
|
|
|
+#define BCM_6328_UART1_BASE (0xb0000120)
|
|
|
|
+#define BCM_6328_GPIO_BASE (0xb0000080)
|
|
|
|
+#define BCM_6328_SPI_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_UDC0_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_USBDMA_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_OHCI0_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_OHCI_PRIV_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_USBH_PRIV_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_MPI_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PCMCIA_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PCIE_BASE (0xb0e40000)
|
|
|
|
+#define BCM_6328_SDRAM_REGS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_DSL_BASE (0xb0001900)
|
|
|
|
+#define BCM_6328_UBUS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_ENET0_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_ENET1_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_ENETDMA_BASE (0xb000d800)
|
|
|
|
+#define BCM_6328_ENETDMAC_BASE (0xb000da00)
|
|
|
|
+#define BCM_6328_ENETDMAS_BASE (0xb000dc00)
|
|
|
|
+#define BCM_6328_ENETSW_BASE (0xb0e00000)
|
|
|
|
+#define BCM_6328_EHCI0_BASE (0x10002500)
|
|
|
|
+#define BCM_6328_SDRAM_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_MEMC_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_DDR_BASE (0xb0003000)
|
|
|
|
+#define BCM_6328_M2M_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_ATM_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_XTM_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_XTMDMA_BASE (0xb000b800)
|
|
|
|
+#define BCM_6328_XTMDMAC_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_XTMDMAS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PCM_BASE (0xb000a800)
|
|
|
|
+#define BCM_6328_PCMDMA_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PCMDMAC_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_PCMDMAS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_RNG_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6328_MISC_BASE (0xb0001800)
|
|
/*
|
|
/*
|
|
* 6338 register sets base address
|
|
* 6338 register sets base address
|
|
*/
|
|
*/
|
|
@@ -162,7 +227,6 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6338_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6338_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6338_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6338_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6338_SPI_BASE (0xfffe0c00)
|
|
#define BCM_6338_SPI_BASE (0xfffe0c00)
|
|
-#define BCM_6338_SPI2_BASE (0xdeadbeef)
|
|
|
|
#define BCM_6338_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6338_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6338_USBDMA_BASE (0xfffe2400)
|
|
#define BCM_6338_USBDMA_BASE (0xfffe2400)
|
|
#define BCM_6338_OHCI0_BASE (0xdeadbeef)
|
|
#define BCM_6338_OHCI0_BASE (0xdeadbeef)
|
|
@@ -170,6 +234,7 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6338_USBH_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6338_USBH_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6338_MPI_BASE (0xfffe3160)
|
|
#define BCM_6338_MPI_BASE (0xfffe3160)
|
|
#define BCM_6338_PCMCIA_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMCIA_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6338_PCIE_BASE (0xdeadbeef)
|
|
#define BCM_6338_SDRAM_REGS_BASE (0xfffe3100)
|
|
#define BCM_6338_SDRAM_REGS_BASE (0xfffe3100)
|
|
#define BCM_6338_DSL_BASE (0xfffe1000)
|
|
#define BCM_6338_DSL_BASE (0xfffe1000)
|
|
#define BCM_6338_UBUS_BASE (0xdeadbeef)
|
|
#define BCM_6338_UBUS_BASE (0xdeadbeef)
|
|
@@ -193,6 +258,8 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6338_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMDMAS_BASE (0xdeadbeef)
|
|
#define BCM_6338_PCMDMAS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6338_RNG_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6338_MISC_BASE (0xdeadbeef)
|
|
|
|
|
|
/*
|
|
/*
|
|
* 6345 register sets base address
|
|
* 6345 register sets base address
|
|
@@ -206,7 +273,6 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6345_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6345_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6345_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6345_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6345_SPI_BASE (0xdeadbeef)
|
|
#define BCM_6345_SPI_BASE (0xdeadbeef)
|
|
-#define BCM_6345_SPI2_BASE (0xdeadbeef)
|
|
|
|
#define BCM_6345_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6345_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6345_USBDMA_BASE (0xfffe2800)
|
|
#define BCM_6345_USBDMA_BASE (0xfffe2800)
|
|
#define BCM_6345_ENET0_BASE (0xfffe1800)
|
|
#define BCM_6345_ENET0_BASE (0xfffe1800)
|
|
@@ -216,6 +282,7 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6345_ENETSW_BASE (0xdeadbeef)
|
|
#define BCM_6345_ENETSW_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMCIA_BASE (0xfffe2028)
|
|
#define BCM_6345_PCMCIA_BASE (0xfffe2028)
|
|
#define BCM_6345_MPI_BASE (0xfffe2000)
|
|
#define BCM_6345_MPI_BASE (0xfffe2000)
|
|
|
|
+#define BCM_6345_PCIE_BASE (0xdeadbeef)
|
|
#define BCM_6345_OHCI0_BASE (0xfffe2100)
|
|
#define BCM_6345_OHCI0_BASE (0xfffe2100)
|
|
#define BCM_6345_OHCI_PRIV_BASE (0xfffe2200)
|
|
#define BCM_6345_OHCI_PRIV_BASE (0xfffe2200)
|
|
#define BCM_6345_USBH_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6345_USBH_PRIV_BASE (0xdeadbeef)
|
|
@@ -237,6 +304,8 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6345_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMDMAS_BASE (0xdeadbeef)
|
|
#define BCM_6345_PCMDMAS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6345_RNG_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6345_MISC_BASE (0xdeadbeef)
|
|
|
|
|
|
/*
|
|
/*
|
|
* 6348 register sets base address
|
|
* 6348 register sets base address
|
|
@@ -249,13 +318,13 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6348_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6348_UART1_BASE (0xdeadbeef)
|
|
#define BCM_6348_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6348_GPIO_BASE (0xfffe0400)
|
|
#define BCM_6348_SPI_BASE (0xfffe0c00)
|
|
#define BCM_6348_SPI_BASE (0xfffe0c00)
|
|
-#define BCM_6348_SPI2_BASE (0xdeadbeef)
|
|
|
|
#define BCM_6348_UDC0_BASE (0xfffe1000)
|
|
#define BCM_6348_UDC0_BASE (0xfffe1000)
|
|
#define BCM_6348_OHCI0_BASE (0xfffe1b00)
|
|
#define BCM_6348_OHCI0_BASE (0xfffe1b00)
|
|
#define BCM_6348_OHCI_PRIV_BASE (0xfffe1c00)
|
|
#define BCM_6348_OHCI_PRIV_BASE (0xfffe1c00)
|
|
#define BCM_6348_USBH_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6348_USBH_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6348_MPI_BASE (0xfffe2000)
|
|
#define BCM_6348_MPI_BASE (0xfffe2000)
|
|
#define BCM_6348_PCMCIA_BASE (0xfffe2054)
|
|
#define BCM_6348_PCMCIA_BASE (0xfffe2054)
|
|
|
|
+#define BCM_6348_PCIE_BASE (0xdeadbeef)
|
|
#define BCM_6348_SDRAM_REGS_BASE (0xfffe2300)
|
|
#define BCM_6348_SDRAM_REGS_BASE (0xfffe2300)
|
|
#define BCM_6348_M2M_BASE (0xfffe2800)
|
|
#define BCM_6348_M2M_BASE (0xfffe2800)
|
|
#define BCM_6348_DSL_BASE (0xfffe3000)
|
|
#define BCM_6348_DSL_BASE (0xfffe3000)
|
|
@@ -278,6 +347,8 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6348_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6348_PCMDMA_BASE (0xdeadbeef)
|
|
#define BCM_6348_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6348_PCMDMAC_BASE (0xdeadbeef)
|
|
#define BCM_6348_PCMDMAS_BASE (0xdeadbeef)
|
|
#define BCM_6348_PCMDMAS_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6348_RNG_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6348_MISC_BASE (0xdeadbeef)
|
|
|
|
|
|
/*
|
|
/*
|
|
* 6358 register sets base address
|
|
* 6358 register sets base address
|
|
@@ -289,14 +360,14 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6358_UART0_BASE (0xfffe0100)
|
|
#define BCM_6358_UART0_BASE (0xfffe0100)
|
|
#define BCM_6358_UART1_BASE (0xfffe0120)
|
|
#define BCM_6358_UART1_BASE (0xfffe0120)
|
|
#define BCM_6358_GPIO_BASE (0xfffe0080)
|
|
#define BCM_6358_GPIO_BASE (0xfffe0080)
|
|
-#define BCM_6358_SPI_BASE (0xdeadbeef)
|
|
|
|
-#define BCM_6358_SPI2_BASE (0xfffe0800)
|
|
|
|
|
|
+#define BCM_6358_SPI_BASE (0xfffe0800)
|
|
#define BCM_6358_UDC0_BASE (0xfffe0800)
|
|
#define BCM_6358_UDC0_BASE (0xfffe0800)
|
|
#define BCM_6358_OHCI0_BASE (0xfffe1400)
|
|
#define BCM_6358_OHCI0_BASE (0xfffe1400)
|
|
#define BCM_6358_OHCI_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6358_OHCI_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6358_USBH_PRIV_BASE (0xfffe1500)
|
|
#define BCM_6358_USBH_PRIV_BASE (0xfffe1500)
|
|
#define BCM_6358_MPI_BASE (0xfffe1000)
|
|
#define BCM_6358_MPI_BASE (0xfffe1000)
|
|
#define BCM_6358_PCMCIA_BASE (0xfffe1054)
|
|
#define BCM_6358_PCMCIA_BASE (0xfffe1054)
|
|
|
|
+#define BCM_6358_PCIE_BASE (0xdeadbeef)
|
|
#define BCM_6358_SDRAM_REGS_BASE (0xfffe2300)
|
|
#define BCM_6358_SDRAM_REGS_BASE (0xfffe2300)
|
|
#define BCM_6358_M2M_BASE (0xdeadbeef)
|
|
#define BCM_6358_M2M_BASE (0xdeadbeef)
|
|
#define BCM_6358_DSL_BASE (0xfffe3000)
|
|
#define BCM_6358_DSL_BASE (0xfffe3000)
|
|
@@ -319,6 +390,8 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6358_PCMDMA_BASE (0xfffe1800)
|
|
#define BCM_6358_PCMDMA_BASE (0xfffe1800)
|
|
#define BCM_6358_PCMDMAC_BASE (0xfffe1900)
|
|
#define BCM_6358_PCMDMAC_BASE (0xfffe1900)
|
|
#define BCM_6358_PCMDMAS_BASE (0xfffe1a00)
|
|
#define BCM_6358_PCMDMAS_BASE (0xfffe1a00)
|
|
|
|
+#define BCM_6358_RNG_BASE (0xdeadbeef)
|
|
|
|
+#define BCM_6358_MISC_BASE (0xdeadbeef)
|
|
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -331,14 +404,14 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6368_UART0_BASE (0xb0000100)
|
|
#define BCM_6368_UART0_BASE (0xb0000100)
|
|
#define BCM_6368_UART1_BASE (0xb0000120)
|
|
#define BCM_6368_UART1_BASE (0xb0000120)
|
|
#define BCM_6368_GPIO_BASE (0xb0000080)
|
|
#define BCM_6368_GPIO_BASE (0xb0000080)
|
|
-#define BCM_6368_SPI_BASE (0xdeadbeef)
|
|
|
|
-#define BCM_6368_SPI2_BASE (0xb0000800)
|
|
|
|
|
|
+#define BCM_6368_SPI_BASE (0xb0000800)
|
|
#define BCM_6368_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6368_UDC0_BASE (0xdeadbeef)
|
|
#define BCM_6368_OHCI0_BASE (0xb0001600)
|
|
#define BCM_6368_OHCI0_BASE (0xb0001600)
|
|
#define BCM_6368_OHCI_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6368_OHCI_PRIV_BASE (0xdeadbeef)
|
|
#define BCM_6368_USBH_PRIV_BASE (0xb0001700)
|
|
#define BCM_6368_USBH_PRIV_BASE (0xb0001700)
|
|
#define BCM_6368_MPI_BASE (0xb0001000)
|
|
#define BCM_6368_MPI_BASE (0xb0001000)
|
|
#define BCM_6368_PCMCIA_BASE (0xb0001054)
|
|
#define BCM_6368_PCMCIA_BASE (0xb0001054)
|
|
|
|
+#define BCM_6368_PCIE_BASE (0xdeadbeef)
|
|
#define BCM_6368_SDRAM_REGS_BASE (0xdeadbeef)
|
|
#define BCM_6368_SDRAM_REGS_BASE (0xdeadbeef)
|
|
#define BCM_6368_M2M_BASE (0xdeadbeef)
|
|
#define BCM_6368_M2M_BASE (0xdeadbeef)
|
|
#define BCM_6368_DSL_BASE (0xdeadbeef)
|
|
#define BCM_6368_DSL_BASE (0xdeadbeef)
|
|
@@ -361,6 +434,8 @@ enum bcm63xx_regs_set {
|
|
#define BCM_6368_PCMDMA_BASE (0xb0005800)
|
|
#define BCM_6368_PCMDMA_BASE (0xb0005800)
|
|
#define BCM_6368_PCMDMAC_BASE (0xb0005a00)
|
|
#define BCM_6368_PCMDMAC_BASE (0xb0005a00)
|
|
#define BCM_6368_PCMDMAS_BASE (0xb0005c00)
|
|
#define BCM_6368_PCMDMAS_BASE (0xb0005c00)
|
|
|
|
+#define BCM_6368_RNG_BASE (0xb0004180)
|
|
|
|
+#define BCM_6368_MISC_BASE (0xdeadbeef)
|
|
|
|
|
|
|
|
|
|
extern const unsigned long *bcm63xx_regs_base;
|
|
extern const unsigned long *bcm63xx_regs_base;
|
|
@@ -379,13 +454,13 @@ extern const unsigned long *bcm63xx_regs_base;
|
|
__GEN_RSET_BASE(__cpu, UART1) \
|
|
__GEN_RSET_BASE(__cpu, UART1) \
|
|
__GEN_RSET_BASE(__cpu, GPIO) \
|
|
__GEN_RSET_BASE(__cpu, GPIO) \
|
|
__GEN_RSET_BASE(__cpu, SPI) \
|
|
__GEN_RSET_BASE(__cpu, SPI) \
|
|
- __GEN_RSET_BASE(__cpu, SPI2) \
|
|
|
|
__GEN_RSET_BASE(__cpu, UDC0) \
|
|
__GEN_RSET_BASE(__cpu, UDC0) \
|
|
__GEN_RSET_BASE(__cpu, OHCI0) \
|
|
__GEN_RSET_BASE(__cpu, OHCI0) \
|
|
__GEN_RSET_BASE(__cpu, OHCI_PRIV) \
|
|
__GEN_RSET_BASE(__cpu, OHCI_PRIV) \
|
|
__GEN_RSET_BASE(__cpu, USBH_PRIV) \
|
|
__GEN_RSET_BASE(__cpu, USBH_PRIV) \
|
|
__GEN_RSET_BASE(__cpu, MPI) \
|
|
__GEN_RSET_BASE(__cpu, MPI) \
|
|
__GEN_RSET_BASE(__cpu, PCMCIA) \
|
|
__GEN_RSET_BASE(__cpu, PCMCIA) \
|
|
|
|
+ __GEN_RSET_BASE(__cpu, PCIE) \
|
|
__GEN_RSET_BASE(__cpu, DSL) \
|
|
__GEN_RSET_BASE(__cpu, DSL) \
|
|
__GEN_RSET_BASE(__cpu, ENET0) \
|
|
__GEN_RSET_BASE(__cpu, ENET0) \
|
|
__GEN_RSET_BASE(__cpu, ENET1) \
|
|
__GEN_RSET_BASE(__cpu, ENET1) \
|
|
@@ -407,6 +482,8 @@ extern const unsigned long *bcm63xx_regs_base;
|
|
__GEN_RSET_BASE(__cpu, PCMDMA) \
|
|
__GEN_RSET_BASE(__cpu, PCMDMA) \
|
|
__GEN_RSET_BASE(__cpu, PCMDMAC) \
|
|
__GEN_RSET_BASE(__cpu, PCMDMAC) \
|
|
__GEN_RSET_BASE(__cpu, PCMDMAS) \
|
|
__GEN_RSET_BASE(__cpu, PCMDMAS) \
|
|
|
|
+ __GEN_RSET_BASE(__cpu, RNG) \
|
|
|
|
+ __GEN_RSET_BASE(__cpu, MISC) \
|
|
}
|
|
}
|
|
|
|
|
|
#define __GEN_CPU_REGS_TABLE(__cpu) \
|
|
#define __GEN_CPU_REGS_TABLE(__cpu) \
|
|
@@ -418,13 +495,13 @@ extern const unsigned long *bcm63xx_regs_base;
|
|
[RSET_UART1] = BCM_## __cpu ##_UART1_BASE, \
|
|
[RSET_UART1] = BCM_## __cpu ##_UART1_BASE, \
|
|
[RSET_GPIO] = BCM_## __cpu ##_GPIO_BASE, \
|
|
[RSET_GPIO] = BCM_## __cpu ##_GPIO_BASE, \
|
|
[RSET_SPI] = BCM_## __cpu ##_SPI_BASE, \
|
|
[RSET_SPI] = BCM_## __cpu ##_SPI_BASE, \
|
|
- [RSET_SPI2] = BCM_## __cpu ##_SPI2_BASE, \
|
|
|
|
[RSET_UDC0] = BCM_## __cpu ##_UDC0_BASE, \
|
|
[RSET_UDC0] = BCM_## __cpu ##_UDC0_BASE, \
|
|
[RSET_OHCI0] = BCM_## __cpu ##_OHCI0_BASE, \
|
|
[RSET_OHCI0] = BCM_## __cpu ##_OHCI0_BASE, \
|
|
[RSET_OHCI_PRIV] = BCM_## __cpu ##_OHCI_PRIV_BASE, \
|
|
[RSET_OHCI_PRIV] = BCM_## __cpu ##_OHCI_PRIV_BASE, \
|
|
[RSET_USBH_PRIV] = BCM_## __cpu ##_USBH_PRIV_BASE, \
|
|
[RSET_USBH_PRIV] = BCM_## __cpu ##_USBH_PRIV_BASE, \
|
|
[RSET_MPI] = BCM_## __cpu ##_MPI_BASE, \
|
|
[RSET_MPI] = BCM_## __cpu ##_MPI_BASE, \
|
|
[RSET_PCMCIA] = BCM_## __cpu ##_PCMCIA_BASE, \
|
|
[RSET_PCMCIA] = BCM_## __cpu ##_PCMCIA_BASE, \
|
|
|
|
+ [RSET_PCIE] = BCM_## __cpu ##_PCIE_BASE, \
|
|
[RSET_DSL] = BCM_## __cpu ##_DSL_BASE, \
|
|
[RSET_DSL] = BCM_## __cpu ##_DSL_BASE, \
|
|
[RSET_ENET0] = BCM_## __cpu ##_ENET0_BASE, \
|
|
[RSET_ENET0] = BCM_## __cpu ##_ENET0_BASE, \
|
|
[RSET_ENET1] = BCM_## __cpu ##_ENET1_BASE, \
|
|
[RSET_ENET1] = BCM_## __cpu ##_ENET1_BASE, \
|
|
@@ -446,6 +523,8 @@ extern const unsigned long *bcm63xx_regs_base;
|
|
[RSET_PCMDMA] = BCM_## __cpu ##_PCMDMA_BASE, \
|
|
[RSET_PCMDMA] = BCM_## __cpu ##_PCMDMA_BASE, \
|
|
[RSET_PCMDMAC] = BCM_## __cpu ##_PCMDMAC_BASE, \
|
|
[RSET_PCMDMAC] = BCM_## __cpu ##_PCMDMAC_BASE, \
|
|
[RSET_PCMDMAS] = BCM_## __cpu ##_PCMDMAS_BASE, \
|
|
[RSET_PCMDMAS] = BCM_## __cpu ##_PCMDMAS_BASE, \
|
|
|
|
+ [RSET_RNG] = BCM_## __cpu ##_RNG_BASE, \
|
|
|
|
+ [RSET_MISC] = BCM_## __cpu ##_MISC_BASE, \
|
|
|
|
|
|
|
|
|
|
static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
|
|
static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
|
|
@@ -453,6 +532,9 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
|
|
#ifdef BCMCPU_RUNTIME_DETECT
|
|
#ifdef BCMCPU_RUNTIME_DETECT
|
|
return bcm63xx_regs_base[set];
|
|
return bcm63xx_regs_base[set];
|
|
#else
|
|
#else
|
|
|
|
+#ifdef CONFIG_BCM63XX_CPU_6328
|
|
|
|
+ __GEN_RSET(6328)
|
|
|
|
+#endif
|
|
#ifdef CONFIG_BCM63XX_CPU_6338
|
|
#ifdef CONFIG_BCM63XX_CPU_6338
|
|
__GEN_RSET(6338)
|
|
__GEN_RSET(6338)
|
|
#endif
|
|
#endif
|
|
@@ -478,6 +560,7 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
|
|
*/
|
|
*/
|
|
enum bcm63xx_irq {
|
|
enum bcm63xx_irq {
|
|
IRQ_TIMER = 0,
|
|
IRQ_TIMER = 0,
|
|
|
|
+ IRQ_SPI,
|
|
IRQ_UART0,
|
|
IRQ_UART0,
|
|
IRQ_UART1,
|
|
IRQ_UART1,
|
|
IRQ_DSL,
|
|
IRQ_DSL,
|
|
@@ -505,10 +588,52 @@ enum bcm63xx_irq {
|
|
IRQ_XTM_DMA0,
|
|
IRQ_XTM_DMA0,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * 6328 irqs
|
|
|
|
+ */
|
|
|
|
+#define BCM_6328_HIGH_IRQ_BASE (IRQ_INTERNAL_BASE + 32)
|
|
|
|
+
|
|
|
|
+#define BCM_6328_TIMER_IRQ (IRQ_INTERNAL_BASE + 31)
|
|
|
|
+#define BCM_6328_SPI_IRQ 0
|
|
|
|
+#define BCM_6328_UART0_IRQ (IRQ_INTERNAL_BASE + 28)
|
|
|
|
+#define BCM_6328_UART1_IRQ (BCM_6328_HIGH_IRQ_BASE + 7)
|
|
|
|
+#define BCM_6328_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
|
|
|
|
+#define BCM_6328_UDC0_IRQ 0
|
|
|
|
+#define BCM_6328_ENET0_IRQ 0
|
|
|
|
+#define BCM_6328_ENET1_IRQ 0
|
|
|
|
+#define BCM_6328_ENET_PHY_IRQ (IRQ_INTERNAL_BASE + 12)
|
|
|
|
+#define BCM_6328_OHCI0_IRQ (IRQ_INTERNAL_BASE + 9)
|
|
|
|
+#define BCM_6328_EHCI0_IRQ (IRQ_INTERNAL_BASE + 10)
|
|
|
|
+#define BCM_6328_PCMCIA_IRQ 0
|
|
|
|
+#define BCM_6328_ENET0_RXDMA_IRQ 0
|
|
|
|
+#define BCM_6328_ENET0_TXDMA_IRQ 0
|
|
|
|
+#define BCM_6328_ENET1_RXDMA_IRQ 0
|
|
|
|
+#define BCM_6328_ENET1_TXDMA_IRQ 0
|
|
|
|
+#define BCM_6328_PCI_IRQ (IRQ_INTERNAL_BASE + 23)
|
|
|
|
+#define BCM_6328_ATM_IRQ 0
|
|
|
|
+#define BCM_6328_ENETSW_RXDMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 0)
|
|
|
|
+#define BCM_6328_ENETSW_RXDMA1_IRQ (BCM_6328_HIGH_IRQ_BASE + 1)
|
|
|
|
+#define BCM_6328_ENETSW_RXDMA2_IRQ (BCM_6328_HIGH_IRQ_BASE + 2)
|
|
|
|
+#define BCM_6328_ENETSW_RXDMA3_IRQ (BCM_6328_HIGH_IRQ_BASE + 3)
|
|
|
|
+#define BCM_6328_ENETSW_TXDMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 4)
|
|
|
|
+#define BCM_6328_ENETSW_TXDMA1_IRQ (BCM_6328_HIGH_IRQ_BASE + 5)
|
|
|
|
+#define BCM_6328_ENETSW_TXDMA2_IRQ (BCM_6328_HIGH_IRQ_BASE + 6)
|
|
|
|
+#define BCM_6328_ENETSW_TXDMA3_IRQ (BCM_6328_HIGH_IRQ_BASE + 7)
|
|
|
|
+#define BCM_6328_XTM_IRQ (BCM_6328_HIGH_IRQ_BASE + 31)
|
|
|
|
+#define BCM_6328_XTM_DMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 11)
|
|
|
|
+
|
|
|
|
+#define BCM_6328_PCM_DMA0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
|
|
+#define BCM_6328_PCM_DMA1_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
|
|
+#define BCM_6328_EXT_IRQ0 (IRQ_INTERNAL_BASE + 24)
|
|
|
|
+#define BCM_6328_EXT_IRQ1 (IRQ_INTERNAL_BASE + 25)
|
|
|
|
+#define BCM_6328_EXT_IRQ2 (IRQ_INTERNAL_BASE + 26)
|
|
|
|
+#define BCM_6328_EXT_IRQ3 (IRQ_INTERNAL_BASE + 27)
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* 6338 irqs
|
|
* 6338 irqs
|
|
*/
|
|
*/
|
|
#define BCM_6338_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
#define BCM_6338_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
|
|
+#define BCM_6338_SPI_IRQ (IRQ_INTERNAL_BASE + 1)
|
|
#define BCM_6338_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6338_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6338_UART1_IRQ 0
|
|
#define BCM_6338_UART1_IRQ 0
|
|
#define BCM_6338_DSL_IRQ (IRQ_INTERNAL_BASE + 5)
|
|
#define BCM_6338_DSL_IRQ (IRQ_INTERNAL_BASE + 5)
|
|
@@ -539,6 +664,7 @@ enum bcm63xx_irq {
|
|
* 6345 irqs
|
|
* 6345 irqs
|
|
*/
|
|
*/
|
|
#define BCM_6345_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
#define BCM_6345_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
|
|
+#define BCM_6345_SPI_IRQ 0
|
|
#define BCM_6345_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6345_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6345_UART1_IRQ 0
|
|
#define BCM_6345_UART1_IRQ 0
|
|
#define BCM_6345_DSL_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
#define BCM_6345_DSL_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
@@ -569,6 +695,7 @@ enum bcm63xx_irq {
|
|
* 6348 irqs
|
|
* 6348 irqs
|
|
*/
|
|
*/
|
|
#define BCM_6348_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
#define BCM_6348_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
|
|
+#define BCM_6348_SPI_IRQ (IRQ_INTERNAL_BASE + 1)
|
|
#define BCM_6348_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6348_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6348_UART1_IRQ 0
|
|
#define BCM_6348_UART1_IRQ 0
|
|
#define BCM_6348_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
|
|
#define BCM_6348_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
|
|
@@ -599,6 +726,7 @@ enum bcm63xx_irq {
|
|
* 6358 irqs
|
|
* 6358 irqs
|
|
*/
|
|
*/
|
|
#define BCM_6358_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
#define BCM_6358_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
|
|
+#define BCM_6358_SPI_IRQ (IRQ_INTERNAL_BASE + 1)
|
|
#define BCM_6358_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6358_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6358_UART1_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
#define BCM_6358_UART1_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
#define BCM_6358_DSL_IRQ (IRQ_INTERNAL_BASE + 29)
|
|
#define BCM_6358_DSL_IRQ (IRQ_INTERNAL_BASE + 29)
|
|
@@ -638,6 +766,7 @@ enum bcm63xx_irq {
|
|
#define BCM_6368_HIGH_IRQ_BASE (IRQ_INTERNAL_BASE + 32)
|
|
#define BCM_6368_HIGH_IRQ_BASE (IRQ_INTERNAL_BASE + 32)
|
|
|
|
|
|
#define BCM_6368_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
#define BCM_6368_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
|
|
|
|
+#define BCM_6368_SPI_IRQ (IRQ_INTERNAL_BASE + 1)
|
|
#define BCM_6368_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6368_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
|
|
#define BCM_6368_UART1_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
#define BCM_6368_UART1_IRQ (IRQ_INTERNAL_BASE + 3)
|
|
#define BCM_6368_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
|
|
#define BCM_6368_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
|
|
@@ -677,6 +806,7 @@ extern const int *bcm63xx_irqs;
|
|
|
|
|
|
#define __GEN_CPU_IRQ_TABLE(__cpu) \
|
|
#define __GEN_CPU_IRQ_TABLE(__cpu) \
|
|
[IRQ_TIMER] = BCM_## __cpu ##_TIMER_IRQ, \
|
|
[IRQ_TIMER] = BCM_## __cpu ##_TIMER_IRQ, \
|
|
|
|
+ [IRQ_SPI] = BCM_## __cpu ##_SPI_IRQ, \
|
|
[IRQ_UART0] = BCM_## __cpu ##_UART0_IRQ, \
|
|
[IRQ_UART0] = BCM_## __cpu ##_UART0_IRQ, \
|
|
[IRQ_UART1] = BCM_## __cpu ##_UART1_IRQ, \
|
|
[IRQ_UART1] = BCM_## __cpu ##_UART1_IRQ, \
|
|
[IRQ_DSL] = BCM_## __cpu ##_DSL_IRQ, \
|
|
[IRQ_DSL] = BCM_## __cpu ##_DSL_IRQ, \
|