diff options
author | Arnd Bergmann <arnd@arndb.de> | 2014-11-20 07:05:39 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2014-11-20 07:05:39 -0500 |
commit | 950e619a98ee5a6d29c8d6422fec47009f7de29f (patch) | |
tree | 786c1fcf4aec30f751e1cd1cb2226a3db2f3bee7 | |
parent | e6131fa3835483944c13d03bcff1d9103d9f53ce (diff) | |
parent | 64e74aa788f996cd0e328a1c4223e9d438b78e9c (diff) |
Merge tag 'arm-soc/for-3.19/cygnus-platform-v2' of http://github.com/brcm/linux into next/soc
Pull "Broadcom Cygnus SoC platform support" from Florian Fainelli:
This pull request contains the platform code to support the Broadcom Cygnus SoC
using the iProc architecture:
- add support for the Broadcom Cygnus SoC
- consolidate the BCM5301X Kconfig options under the iProc menuconfig entry
- remove one level of menu in menuconfig
* tag 'arm-soc/for-3.19/cygnus-platform-v2' of http://github.com/brcm/linux:
ARM: mach-bcm: ARCH_BCM_MOBILE: remove one level of menu from Kconfig
ARM: mach-bcm: Consolidate currently supported IPROC SoCs
ARM: cygnus: Initial support for Broadcom Cygnus SoC
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/arm/mach-bcm/Kconfig | 93 | ||||
-rw-r--r-- | arch/arm/mach-bcm/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-bcm/bcm_cygnus.c | 25 |
3 files changed, 85 insertions, 36 deletions
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 9625dddb5cd3..1bd39b45d08b 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig | |||
@@ -5,8 +5,56 @@ menuconfig ARCH_BCM | |||
5 | 5 | ||
6 | if ARCH_BCM | 6 | if ARCH_BCM |
7 | 7 | ||
8 | comment "IPROC architected SoCs" | ||
9 | |||
10 | config ARCH_BCM_IPROC | ||
11 | bool | ||
12 | select ARM_GIC | ||
13 | select CACHE_L2X0 | ||
14 | select HAVE_ARM_SCU if SMP | ||
15 | select HAVE_ARM_TWD if SMP | ||
16 | select ARM_GLOBAL_TIMER | ||
17 | |||
18 | select CLKSRC_MMIO | ||
19 | select ARCH_REQUIRE_GPIOLIB | ||
20 | select ARM_AMBA | ||
21 | select PINCTRL | ||
22 | help | ||
23 | This enables support for systems based on Broadcom IPROC architected SoCs. | ||
24 | The IPROC complex contains one or more ARM CPUs along with common | ||
25 | core periperals. Application specific SoCs are created by adding a | ||
26 | uArchitecture containing peripherals outside of the IPROC complex. | ||
27 | Currently supported SoCs are Cygnus. | ||
28 | |||
29 | config ARCH_BCM_CYGNUS | ||
30 | bool "Broadcom Cygnus Support" if ARCH_MULTI_V7 | ||
31 | select ARCH_BCM_IPROC | ||
32 | help | ||
33 | Enable support for the Cygnus family, | ||
34 | which includes the following variants: | ||
35 | BCM11300, BCM11320, BCM11350, BCM11360, | ||
36 | BCM58300, BCM58302, BCM58303, BCM58305. | ||
37 | |||
38 | config ARCH_BCM_5301X | ||
39 | bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 | ||
40 | select ARCH_BCM_IPROC | ||
41 | help | ||
42 | Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. | ||
43 | |||
44 | This is a network SoC line mostly used in home routers and | ||
45 | wifi access points, it's internal name is Northstar. | ||
46 | This inclused the following SoC: BCM53010, BCM53011, BCM53012, | ||
47 | BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707, | ||
48 | BCM4708 and BCM4709. | ||
49 | |||
50 | Do not confuse this with the BCM4760 which is a totally | ||
51 | different SoC or with the older BCM47XX and BCM53XX based | ||
52 | network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx | ||
53 | |||
54 | comment "KONA architected SoCs" | ||
55 | |||
8 | config ARCH_BCM_MOBILE | 56 | config ARCH_BCM_MOBILE |
9 | bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7 | 57 | bool |
10 | select ARCH_REQUIRE_GPIOLIB | 58 | select ARCH_REQUIRE_GPIOLIB |
11 | select ARM_ERRATA_754322 | 59 | select ARM_ERRATA_754322 |
12 | select ARM_ERRATA_775420 | 60 | select ARM_ERRATA_775420 |
@@ -15,16 +63,13 @@ config ARCH_BCM_MOBILE | |||
15 | select TICK_ONESHOT | 63 | select TICK_ONESHOT |
16 | select HAVE_ARM_ARCH_TIMER | 64 | select HAVE_ARM_ARCH_TIMER |
17 | select PINCTRL | 65 | select PINCTRL |
66 | select ARCH_BCM_MOBILE_SMP if SMP | ||
18 | help | 67 | help |
19 | This enables support for systems based on Broadcom mobile SoCs. | 68 | This enables support for systems based on Broadcom mobile SoCs. |
20 | 69 | ||
21 | if ARCH_BCM_MOBILE | ||
22 | |||
23 | menu "Broadcom Mobile SoC Selection" | ||
24 | |||
25 | config ARCH_BCM_281XX | 70 | config ARCH_BCM_281XX |
26 | bool "Broadcom BCM281XX SoC family" | 71 | bool "Broadcom BCM281XX SoC family" |
27 | default y | 72 | select ARCH_BCM_MOBILE |
28 | select HAVE_SMP | 73 | select HAVE_SMP |
29 | help | 74 | help |
30 | Enable support for the BCM281XX family, which includes | 75 | Enable support for the BCM281XX family, which includes |
@@ -33,7 +78,7 @@ config ARCH_BCM_281XX | |||
33 | 78 | ||
34 | config ARCH_BCM_21664 | 79 | config ARCH_BCM_21664 |
35 | bool "Broadcom BCM21664 SoC family" | 80 | bool "Broadcom BCM21664 SoC family" |
36 | default y | 81 | select ARCH_BCM_MOBILE |
37 | select HAVE_SMP | 82 | select HAVE_SMP |
38 | help | 83 | help |
39 | Enable support for the BCM21664 family, which includes | 84 | Enable support for the BCM21664 family, which includes |
@@ -41,19 +86,18 @@ config ARCH_BCM_21664 | |||
41 | 86 | ||
42 | config ARCH_BCM_MOBILE_L2_CACHE | 87 | config ARCH_BCM_MOBILE_L2_CACHE |
43 | bool "Broadcom mobile SoC level 2 cache support" | 88 | bool "Broadcom mobile SoC level 2 cache support" |
44 | depends on (ARCH_BCM_281XX || ARCH_BCM_21664) | 89 | depends on ARCH_BCM_MOBILE |
45 | default y | 90 | default y |
46 | select CACHE_L2X0 | 91 | select CACHE_L2X0 |
47 | select ARCH_BCM_MOBILE_SMC | 92 | select ARCH_BCM_MOBILE_SMC |
48 | 93 | ||
49 | config ARCH_BCM_MOBILE_SMC | 94 | config ARCH_BCM_MOBILE_SMC |
50 | bool | 95 | bool |
51 | depends on ARCH_BCM_281XX || ARCH_BCM_21664 | 96 | depends on ARCH_BCM_MOBILE |
52 | 97 | ||
53 | config ARCH_BCM_MOBILE_SMP | 98 | config ARCH_BCM_MOBILE_SMP |
54 | bool "Broadcom mobile SoC SMP support" | 99 | bool |
55 | depends on (ARCH_BCM_281XX || ARCH_BCM_21664) && SMP | 100 | depends on ARCH_BCM_MOBILE |
56 | default y | ||
57 | select HAVE_ARM_SCU | 101 | select HAVE_ARM_SCU |
58 | select ARM_ERRATA_764369 | 102 | select ARM_ERRATA_764369 |
59 | help | 103 | help |
@@ -61,9 +105,7 @@ config ARCH_BCM_MOBILE_SMP | |||
61 | Provided as an option so SMP support for SoCs of this type | 105 | Provided as an option so SMP support for SoCs of this type |
62 | can be disabled for an SMP-enabled kernel. | 106 | can be disabled for an SMP-enabled kernel. |
63 | 107 | ||
64 | endmenu | 108 | comment "Other Architectures" |
65 | |||
66 | endif | ||
67 | 109 | ||
68 | config ARCH_BCM2835 | 110 | config ARCH_BCM2835 |
69 | bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 | 111 | bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 |
@@ -78,27 +120,6 @@ config ARCH_BCM2835 | |||
78 | This enables support for the Broadcom BCM2835 SoC. This SoC is | 120 | This enables support for the Broadcom BCM2835 SoC. This SoC is |
79 | used in the Raspberry Pi and Roku 2 devices. | 121 | used in the Raspberry Pi and Roku 2 devices. |
80 | 122 | ||
81 | config ARCH_BCM_5301X | ||
82 | bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 | ||
83 | select ARM_GIC | ||
84 | select CACHE_L2X0 | ||
85 | select HAVE_ARM_SCU if SMP | ||
86 | select HAVE_ARM_TWD if SMP | ||
87 | select ARM_GLOBAL_TIMER | ||
88 | select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK | ||
89 | help | ||
90 | Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. | ||
91 | |||
92 | This is a network SoC line mostly used in home routers and | ||
93 | wifi access points, it's internal name is Northstar. | ||
94 | This inclused the following SoC: BCM53010, BCM53011, BCM53012, | ||
95 | BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707, | ||
96 | BCM4708 and BCM4709. | ||
97 | |||
98 | Do not confuse this with the BCM4760 which is a totally | ||
99 | different SoC or with the older BCM47XX and BCM53XX based | ||
100 | network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx | ||
101 | |||
102 | config ARCH_BCM_63XX | 123 | config ARCH_BCM_63XX |
103 | bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7 | 124 | bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7 |
104 | depends on MMU | 125 | depends on MMU |
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile index 6710ea321220..4c38674c73ec 100644 --- a/arch/arm/mach-bcm/Makefile +++ b/arch/arm/mach-bcm/Makefile | |||
@@ -10,6 +10,9 @@ | |||
10 | # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 | # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | # GNU General Public License for more details. | 11 | # GNU General Public License for more details. |
12 | 12 | ||
13 | # Cygnus | ||
14 | obj-$(CONFIG_ARCH_BCM_CYGNUS) += bcm_cygnus.o | ||
15 | |||
13 | # BCM281XX | 16 | # BCM281XX |
14 | obj-$(CONFIG_ARCH_BCM_281XX) += board_bcm281xx.o | 17 | obj-$(CONFIG_ARCH_BCM_281XX) += board_bcm281xx.o |
15 | 18 | ||
diff --git a/arch/arm/mach-bcm/bcm_cygnus.c b/arch/arm/mach-bcm/bcm_cygnus.c new file mode 100644 index 000000000000..30dc58be51b8 --- /dev/null +++ b/arch/arm/mach-bcm/bcm_cygnus.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2014 Broadcom Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License as | ||
6 | * published by the Free Software Foundation version 2. | ||
7 | * | ||
8 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
9 | * kind, whether express or implied; without even the implied warranty | ||
10 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | #include <asm/mach/arch.h> | ||
15 | |||
16 | static const char const *bcm_cygnus_dt_compat[] = { | ||
17 | "brcm,cygnus", | ||
18 | NULL, | ||
19 | }; | ||
20 | |||
21 | DT_MACHINE_START(BCM_CYGNUS_DT, "Broadcom Cygnus SoC") | ||
22 | .l2c_aux_val = 0, | ||
23 | .l2c_aux_mask = ~0, | ||
24 | .dt_compat = bcm_cygnus_dt_compat, | ||
25 | MACHINE_END | ||