diff options
Diffstat (limited to 'arch/arm/mach-bcm')
-rw-r--r-- | arch/arm/mach-bcm/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/mach-bcm/Makefile | 13 | ||||
-rw-r--r-- | arch/arm/mach-bcm/board_bcm.c | 57 |
3 files changed, 89 insertions, 0 deletions
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig new file mode 100644 index 000000000000..48705c10a0fe --- /dev/null +++ b/arch/arm/mach-bcm/Kconfig | |||
@@ -0,0 +1,19 @@ | |||
1 | config ARCH_BCM | ||
2 | bool "Broadcom SoC" if ARCH_MULTI_V7 | ||
3 | depends on MMU | ||
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARM_ERRATA_754322 | ||
6 | select ARM_ERRATA_764369 if SMP | ||
7 | select ARM_GIC | ||
8 | select CPU_V7 | ||
9 | select GENERIC_CLOCKEVENTS | ||
10 | select GENERIC_GPIO | ||
11 | select GENERIC_TIME | ||
12 | select GPIO_BCM | ||
13 | select SPARSE_IRQ | ||
14 | select TICK_ONESHOT | ||
15 | help | ||
16 | This enables support for system based on Broadcom SoCs. | ||
17 | It currently supports the 'BCM281XX' family, which includes | ||
18 | BCM11130, BCM11140, BCM11351, BCM28145 and | ||
19 | BCM28155 variants. | ||
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile new file mode 100644 index 000000000000..bbf412261e5e --- /dev/null +++ b/arch/arm/mach-bcm/Makefile | |||
@@ -0,0 +1,13 @@ | |||
1 | # | ||
2 | # Copyright (C) 2012 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 | obj-$(CONFIG_ARCH_BCM) := board_bcm.o | ||
diff --git a/arch/arm/mach-bcm/board_bcm.c b/arch/arm/mach-bcm/board_bcm.c new file mode 100644 index 000000000000..3a62f1b1cabc --- /dev/null +++ b/arch/arm/mach-bcm/board_bcm.c | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 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 <linux/of_irq.h> | ||
15 | #include <linux/of_platform.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/device.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | |||
20 | #include <asm/mach/arch.h> | ||
21 | #include <asm/hardware/gic.h> | ||
22 | |||
23 | #include <asm/mach/time.h> | ||
24 | |||
25 | static const struct of_device_id irq_match[] = { | ||
26 | {.compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, | ||
27 | {} | ||
28 | }; | ||
29 | |||
30 | static void timer_init(void) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | static struct sys_timer timer = { | ||
35 | .init = timer_init, | ||
36 | }; | ||
37 | |||
38 | static void __init init_irq(void) | ||
39 | { | ||
40 | of_irq_init(irq_match); | ||
41 | } | ||
42 | |||
43 | static void __init board_init(void) | ||
44 | { | ||
45 | of_platform_populate(NULL, of_default_bus_match_table, NULL, | ||
46 | &platform_bus); | ||
47 | } | ||
48 | |||
49 | static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, }; | ||
50 | |||
51 | DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") | ||
52 | .init_irq = init_irq, | ||
53 | .timer = &timer, | ||
54 | .init_machine = board_init, | ||
55 | .dt_compat = bcm11351_dt_compat, | ||
56 | .handle_irq = gic_handle_irq, | ||
57 | MACHINE_END | ||