diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2012-12-13 13:40:13 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-12-13 13:40:13 -0500 |
commit | 241738bd51cb0efe58e6c570223153e970afe3ae (patch) | |
tree | 05263e1ec3fbd58cc4ba5ee69163612fbb769a4a /arch/mips/include/asm/mach-bcm63xx | |
parent | bdf20507da11a9a5b32ef04fa09f352828189aef (diff) | |
parent | ce8f0d0607bcad3ec0e8599be80353204427093e (diff) |
Merge branch 'mips-next' of http://dev.phrozen.org/githttp/mips-next into mips-for-linux-next
Diffstat (limited to 'arch/mips/include/asm/mach-bcm63xx')
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 35 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 29 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h | 21 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 17 |
4 files changed, 78 insertions, 24 deletions
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h new file mode 100644 index 000000000000..62d6a3b4d3b7 --- /dev/null +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef BCM63XX_NVRAM_H | ||
2 | #define BCM63XX_NVRAM_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /** | ||
7 | * bcm63xx_nvram_init() - initializes nvram | ||
8 | * @nvram: address of the nvram data | ||
9 | * | ||
10 | * Initialized the local nvram copy from the target address and checks | ||
11 | * its checksum. | ||
12 | * | ||
13 | * Returns 0 on success. | ||
14 | */ | ||
15 | int __init bcm63xx_nvram_init(void *nvram); | ||
16 | |||
17 | /** | ||
18 | * bcm63xx_nvram_get_name() - returns the board name according to nvram | ||
19 | * | ||
20 | * Returns the board name field from nvram. Note that it might not be | ||
21 | * null terminated if it is exactly 16 bytes long. | ||
22 | */ | ||
23 | u8 *bcm63xx_nvram_get_name(void); | ||
24 | |||
25 | /** | ||
26 | * bcm63xx_nvram_get_mac_address() - register & return a new mac address | ||
27 | * @mac: pointer to array for allocated mac | ||
28 | * | ||
29 | * Registers and returns a mac address from the allocated macs from nvram. | ||
30 | * | ||
31 | * Returns 0 on success. | ||
32 | */ | ||
33 | int bcm63xx_nvram_get_mac_address(u8 *mac); | ||
34 | |||
35 | #endif /* BCM63XX_NVRAM_H */ | ||
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h index 12963d05da86..c3eeb90b480a 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | |||
@@ -53,13 +53,18 @@ | |||
53 | CKCTL_6338_SAR_EN | \ | 53 | CKCTL_6338_SAR_EN | \ |
54 | CKCTL_6338_SPI_EN) | 54 | CKCTL_6338_SPI_EN) |
55 | 55 | ||
56 | #define CKCTL_6345_CPU_EN (1 << 0) | 56 | /* BCM6345 clock bits are shifted by 16 on the left, because of the test |
57 | #define CKCTL_6345_BUS_EN (1 << 1) | 57 | * control register which is 16-bits wide. That way we do not have any |
58 | #define CKCTL_6345_EBI_EN (1 << 2) | 58 | * specific BCM6345 code for handling clocks, and writing 0 to the test |
59 | #define CKCTL_6345_UART_EN (1 << 3) | 59 | * control register is fine. |
60 | #define CKCTL_6345_ADSLPHY_EN (1 << 4) | 60 | */ |
61 | #define CKCTL_6345_ENET_EN (1 << 7) | 61 | #define CKCTL_6345_CPU_EN (1 << 16) |
62 | #define CKCTL_6345_USBH_EN (1 << 8) | 62 | #define CKCTL_6345_BUS_EN (1 << 17) |
63 | #define CKCTL_6345_EBI_EN (1 << 18) | ||
64 | #define CKCTL_6345_UART_EN (1 << 19) | ||
65 | #define CKCTL_6345_ADSLPHY_EN (1 << 20) | ||
66 | #define CKCTL_6345_ENET_EN (1 << 23) | ||
67 | #define CKCTL_6345_USBH_EN (1 << 24) | ||
63 | 68 | ||
64 | #define CKCTL_6345_ALL_SAFE_EN (CKCTL_6345_ENET_EN | \ | 69 | #define CKCTL_6345_ALL_SAFE_EN (CKCTL_6345_ENET_EN | \ |
65 | CKCTL_6345_USBH_EN | \ | 70 | CKCTL_6345_USBH_EN | \ |
@@ -191,6 +196,7 @@ | |||
191 | /* Soft Reset register */ | 196 | /* Soft Reset register */ |
192 | #define PERF_SOFTRESET_REG 0x28 | 197 | #define PERF_SOFTRESET_REG 0x28 |
193 | #define PERF_SOFTRESET_6328_REG 0x10 | 198 | #define PERF_SOFTRESET_6328_REG 0x10 |
199 | #define PERF_SOFTRESET_6358_REG 0x34 | ||
194 | #define PERF_SOFTRESET_6368_REG 0x10 | 200 | #define PERF_SOFTRESET_6368_REG 0x10 |
195 | 201 | ||
196 | #define SOFTRESET_6328_SPI_MASK (1 << 0) | 202 | #define SOFTRESET_6328_SPI_MASK (1 << 0) |
@@ -244,6 +250,15 @@ | |||
244 | SOFTRESET_6348_ACLC_MASK | \ | 250 | SOFTRESET_6348_ACLC_MASK | \ |
245 | SOFTRESET_6348_ADSLMIPSPLL_MASK) | 251 | SOFTRESET_6348_ADSLMIPSPLL_MASK) |
246 | 252 | ||
253 | #define SOFTRESET_6358_SPI_MASK (1 << 0) | ||
254 | #define SOFTRESET_6358_ENET_MASK (1 << 2) | ||
255 | #define SOFTRESET_6358_MPI_MASK (1 << 3) | ||
256 | #define SOFTRESET_6358_EPHY_MASK (1 << 6) | ||
257 | #define SOFTRESET_6358_SAR_MASK (1 << 7) | ||
258 | #define SOFTRESET_6358_USBH_MASK (1 << 12) | ||
259 | #define SOFTRESET_6358_PCM_MASK (1 << 13) | ||
260 | #define SOFTRESET_6358_ADSL_MASK (1 << 14) | ||
261 | |||
247 | #define SOFTRESET_6368_SPI_MASK (1 << 0) | 262 | #define SOFTRESET_6368_SPI_MASK (1 << 0) |
248 | #define SOFTRESET_6368_MPI_MASK (1 << 3) | 263 | #define SOFTRESET_6368_MPI_MASK (1 << 3) |
249 | #define SOFTRESET_6368_EPHY_MASK (1 << 6) | 264 | #define SOFTRESET_6368_EPHY_MASK (1 << 6) |
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h new file mode 100644 index 000000000000..3a6eb9c1adc6 --- /dev/null +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef __BCM63XX_RESET_H | ||
2 | #define __BCM63XX_RESET_H | ||
3 | |||
4 | enum bcm63xx_core_reset { | ||
5 | BCM63XX_RESET_SPI, | ||
6 | BCM63XX_RESET_ENET, | ||
7 | BCM63XX_RESET_USBH, | ||
8 | BCM63XX_RESET_USBD, | ||
9 | BCM63XX_RESET_SAR, | ||
10 | BCM63XX_RESET_DSL, | ||
11 | BCM63XX_RESET_EPHY, | ||
12 | BCM63XX_RESET_ENETSW, | ||
13 | BCM63XX_RESET_PCM, | ||
14 | BCM63XX_RESET_MPI, | ||
15 | BCM63XX_RESET_PCIE, | ||
16 | BCM63XX_RESET_PCIE_EXT, | ||
17 | }; | ||
18 | |||
19 | void bcm63xx_core_set_reset(enum bcm63xx_core_reset, int reset); | ||
20 | |||
21 | #endif | ||
diff --git a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h index b0dd4bb53f7e..682bcf3b492a 100644 --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | |||
@@ -15,23 +15,6 @@ | |||
15 | #define BCM963XX_NVRAM_OFFSET 0x580 | 15 | #define BCM963XX_NVRAM_OFFSET 0x580 |
16 | 16 | ||
17 | /* | 17 | /* |
18 | * nvram structure | ||
19 | */ | ||
20 | struct bcm963xx_nvram { | ||
21 | u32 version; | ||
22 | u8 reserved1[256]; | ||
23 | u8 name[16]; | ||
24 | u32 main_tp_number; | ||
25 | u32 psi_size; | ||
26 | u32 mac_addr_count; | ||
27 | u8 mac_addr_base[6]; | ||
28 | u8 reserved2[2]; | ||
29 | u32 checksum_old; | ||
30 | u8 reserved3[720]; | ||
31 | u32 checksum_high; | ||
32 | }; | ||
33 | |||
34 | /* | ||
35 | * board definition | 18 | * board definition |
36 | */ | 19 | */ |
37 | struct board_info { | 20 | struct board_info { |