aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-bcm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-bcm')
-rw-r--r--arch/arm/mach-bcm/Kconfig19
-rw-r--r--arch/arm/mach-bcm/Makefile13
-rw-r--r--arch/arm/mach-bcm/board_bcm.c57
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 @@
1config 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
13obj-$(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
25static const struct of_device_id irq_match[] = {
26 {.compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
27 {}
28};
29
30static void timer_init(void)
31{
32}
33
34static struct sys_timer timer = {
35 .init = timer_init,
36};
37
38static void __init init_irq(void)
39{
40 of_irq_init(irq_match);
41}
42
43static void __init board_init(void)
44{
45 of_platform_populate(NULL, of_default_bus_match_table, NULL,
46 &platform_bus);
47}
48
49static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, };
50
51DT_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,
57MACHINE_END