diff options
author | Jonathan Richardson <jonathar@broadcom.com> | 2014-08-15 15:52:00 -0400 |
---|---|---|
committer | Florian Fainelli <f.fainelli@gmail.com> | 2014-11-12 01:35:35 -0500 |
commit | 1b475f8d02f98d6ca549b12c7c64e9c27b6a4c8e (patch) | |
tree | 9e84c144a799b529a826cfefc7a16990233ed387 | |
parent | f114040e3ea6e07372334ade75d1ee0775c355e1 (diff) |
ARM: cygnus: Initial support for Broadcom Cygnus SoC
Adds initial support for the Cygnus SoC based on Broadcom’s iProc series.
Reviewed-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Desmond Liu <desmondl@broadcom.com>
Reviewed-by: JD (Jiandong) Zheng <jdzheng@broadcom.com>
Tested-by: Jonathan Richardson <jonathar@broadcom.com>
Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-rw-r--r-- | arch/arm/mach-bcm/Kconfig | 32 | ||||
-rw-r--r-- | arch/arm/mach-bcm/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-bcm/bcm_cygnus.c | 25 |
3 files changed, 60 insertions, 0 deletions
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 2abad742516d..73d95c2b355b 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig | |||
@@ -5,6 +5,36 @@ 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 | |||
8 | config ARCH_BCM_MOBILE | 38 | config ARCH_BCM_MOBILE |
9 | bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7 | 39 | bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7 |
10 | select ARCH_REQUIRE_GPIOLIB | 40 | select ARCH_REQUIRE_GPIOLIB |
@@ -65,6 +95,8 @@ endmenu | |||
65 | 95 | ||
66 | endif | 96 | endif |
67 | 97 | ||
98 | comment "Other Architectures" | ||
99 | |||
68 | config ARCH_BCM2835 | 100 | config ARCH_BCM2835 |
69 | bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 | 101 | bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 |
70 | select ARCH_REQUIRE_GPIOLIB | 102 | select ARCH_REQUIRE_GPIOLIB |
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile index 300ae4b79ae6..34d45ba2a4d1 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 | ||