aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/bcm11351-brt.dts30
-rw-r--r--arch/arm/boot/dts/bcm11351.dtsi50
-rw-r--r--arch/arm/configs/bcm_defconfig114
-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
9 files changed, 287 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e9b6b9e5e779..c1cc4f79e4fe 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1009,6 +1009,8 @@ source "arch/arm/mach-mvebu/Kconfig"
1009 1009
1010source "arch/arm/mach-at91/Kconfig" 1010source "arch/arm/mach-at91/Kconfig"
1011 1011
1012source "arch/arm/mach-bcm/Kconfig"
1013
1012source "arch/arm/mach-clps711x/Kconfig" 1014source "arch/arm/mach-clps711x/Kconfig"
1013 1015
1014source "arch/arm/mach-cns3xxx/Kconfig" 1016source "arch/arm/mach-cns3xxx/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 3353b7613208..208912167823 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -137,6 +137,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
137# Machine directory name. This list is sorted alphanumerically 137# Machine directory name. This list is sorted alphanumerically
138# by CONFIG_* macro name. 138# by CONFIG_* macro name.
139machine-$(CONFIG_ARCH_AT91) += at91 139machine-$(CONFIG_ARCH_AT91) += at91
140machine-$(CONFIG_ARCH_BCM) += bcm
140machine-$(CONFIG_ARCH_BCM2835) += bcm2835 141machine-$(CONFIG_ARCH_BCM2835) += bcm2835
141machine-$(CONFIG_ARCH_CLPS711X) += clps711x 142machine-$(CONFIG_ARCH_CLPS711X) += clps711x
142machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx 143machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5cc95667fa3b..cc803c92a72c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \
17 usb_a9263.dtb \ 17 usb_a9263.dtb \
18 usb_a9g20.dtb 18 usb_a9g20.dtb
19dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb 19dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
20dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb
20dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ 21dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
21 dove-cubox.dtb \ 22 dove-cubox.dtb \
22 dove-dove-db.dtb 23 dove-dove-db.dtb
diff --git a/arch/arm/boot/dts/bcm11351-brt.dts b/arch/arm/boot/dts/bcm11351-brt.dts
new file mode 100644
index 000000000000..248067cf7069
--- /dev/null
+++ b/arch/arm/boot/dts/bcm11351-brt.dts
@@ -0,0 +1,30 @@
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/dts-v1/;
15
16/include/ "bcm11351.dtsi"
17
18/ {
19 model = "BCM11351 BRT board";
20 compatible = "bcm,bcm11351-brt", "bcm,bcm11351";
21
22 memory {
23 reg = <0x80000000 0x40000000>; /* 1 GB */
24 };
25
26 uart@3e000000 {
27 status = "okay";
28 };
29
30};
diff --git a/arch/arm/boot/dts/bcm11351.dtsi b/arch/arm/boot/dts/bcm11351.dtsi
new file mode 100644
index 000000000000..ad135885bd2a
--- /dev/null
+++ b/arch/arm/boot/dts/bcm11351.dtsi
@@ -0,0 +1,50 @@
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/ "skeleton.dtsi"
15
16/ {
17 model = "BCM11351 SoC";
18 compatible = "bcm,bcm11351";
19 interrupt-parent = <&gic>;
20
21 chosen {
22 bootargs = "console=ttyS0,115200n8";
23 };
24
25 gic: interrupt-controller@3ff00100 {
26 compatible = "arm,cortex-a9-gic";
27 #interrupt-cells = <3>;
28 #address-cells = <0>;
29 interrupt-controller;
30 reg = <0x3ff01000 0x1000>,
31 <0x3ff00100 0x100>;
32 };
33
34 uart@3e000000 {
35 compatible = "bcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
36 status = "disabled";
37 reg = <0x3e000000 0x1000>;
38 clock-frequency = <13000000>;
39 interrupts = <0x0 67 0x4>;
40 reg-shift = <2>;
41 reg-io-width = <4>;
42 };
43
44 L2: l2-cache {
45 compatible = "arm,pl310-cache";
46 reg = <0x3ff20000 0x1000>;
47 cache-unified;
48 cache-level = <2>;
49 };
50};
diff --git a/arch/arm/configs/bcm_defconfig b/arch/arm/configs/bcm_defconfig
new file mode 100644
index 000000000000..e3bf2d65618e
--- /dev/null
+++ b/arch/arm/configs/bcm_defconfig
@@ -0,0 +1,114 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set
3# CONFIG_SWAP is not set
4CONFIG_SYSVIPC=y
5CONFIG_NO_HZ=y
6CONFIG_HIGH_RES_TIMERS=y
7CONFIG_BSD_PROCESS_ACCT=y
8CONFIG_BSD_PROCESS_ACCT_V3=y
9CONFIG_IKCONFIG=y
10CONFIG_IKCONFIG_PROC=y
11CONFIG_LOG_BUF_SHIFT=19
12CONFIG_CGROUPS=y
13CONFIG_CGROUP_FREEZER=y
14CONFIG_CGROUP_DEVICE=y
15CONFIG_CGROUP_CPUACCT=y
16CONFIG_RESOURCE_COUNTERS=y
17CONFIG_CGROUP_SCHED=y
18CONFIG_BLK_CGROUP=y
19CONFIG_NAMESPACES=y
20CONFIG_BLK_DEV_INITRD=y
21CONFIG_SYSCTL_SYSCALL=y
22CONFIG_EMBEDDED=y
23# CONFIG_COMPAT_BRK is not set
24CONFIG_MODULES=y
25CONFIG_MODULE_UNLOAD=y
26# CONFIG_BLK_DEV_BSG is not set
27CONFIG_PARTITION_ADVANCED=y
28CONFIG_EFI_PARTITION=y
29CONFIG_ARCH_BCM=y
30CONFIG_ARM_THUMBEE=y
31CONFIG_ARM_ERRATA_743622=y
32CONFIG_PREEMPT=y
33CONFIG_AEABI=y
34# CONFIG_OABI_COMPAT is not set
35# CONFIG_COMPACTION is not set
36CONFIG_ZBOOT_ROM_TEXT=0x0
37CONFIG_ZBOOT_ROM_BSS=0x0
38CONFIG_ARM_APPENDED_DTB=y
39CONFIG_CMDLINE="console=ttyS0,115200n8 mem=128M"
40CONFIG_CPU_IDLE=y
41CONFIG_VFP=y
42CONFIG_NEON=y
43# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
44CONFIG_PM_RUNTIME=y
45CONFIG_DEVTMPFS=y
46CONFIG_DEVTMPFS_MOUNT=y
47CONFIG_PROC_DEVICETREE=y
48# CONFIG_BLK_DEV is not set
49CONFIG_SCSI=y
50CONFIG_BLK_DEV_SD=y
51CONFIG_CHR_DEV_SG=y
52CONFIG_SCSI_MULTI_LUN=y
53CONFIG_SCSI_SCAN_ASYNC=y
54CONFIG_INPUT_FF_MEMLESS=y
55CONFIG_INPUT_JOYDEV=y
56CONFIG_INPUT_EVDEV=y
57# CONFIG_KEYBOARD_ATKBD is not set
58# CONFIG_INPUT_MOUSE is not set
59CONFIG_INPUT_TOUCHSCREEN=y
60CONFIG_INPUT_MISC=y
61CONFIG_INPUT_UINPUT=y
62# CONFIG_SERIO is not set
63# CONFIG_LEGACY_PTYS is not set
64CONFIG_SERIAL_8250=y
65CONFIG_SERIAL_8250_CONSOLE=y
66CONFIG_SERIAL_8250_EXTENDED=y
67CONFIG_SERIAL_8250_MANY_PORTS=y
68CONFIG_SERIAL_8250_SHARE_IRQ=y
69CONFIG_SERIAL_8250_RSA=y
70CONFIG_SERIAL_8250_DW=y
71CONFIG_HW_RANDOM=y
72CONFIG_I2C=y
73CONFIG_I2C_CHARDEV=y
74# CONFIG_HWMON is not set
75CONFIG_VIDEO_OUTPUT_CONTROL=y
76CONFIG_FB=y
77CONFIG_BACKLIGHT_LCD_SUPPORT=y
78CONFIG_LCD_CLASS_DEVICE=y
79CONFIG_BACKLIGHT_CLASS_DEVICE=y
80# CONFIG_USB_SUPPORT is not set
81CONFIG_NEW_LEDS=y
82CONFIG_LEDS_CLASS=y
83CONFIG_LEDS_TRIGGERS=y
84CONFIG_LEDS_TRIGGER_TIMER=y
85CONFIG_LEDS_TRIGGER_HEARTBEAT=y
86CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
87CONFIG_EXT4_FS=y
88CONFIG_EXT4_FS_POSIX_ACL=y
89CONFIG_EXT4_FS_SECURITY=y
90CONFIG_AUTOFS4_FS=y
91CONFIG_FUSE_FS=y
92CONFIG_MSDOS_FS=y
93CONFIG_VFAT_FS=y
94CONFIG_TMPFS=y
95CONFIG_TMPFS_POSIX_ACL=y
96CONFIG_CONFIGFS_FS=y
97# CONFIG_MISC_FILESYSTEMS is not set
98CONFIG_NLS_CODEPAGE_437=y
99CONFIG_NLS_ISO8859_1=y
100CONFIG_PRINTK_TIME=y
101CONFIG_MAGIC_SYSRQ=y
102CONFIG_DEBUG_FS=y
103CONFIG_DETECT_HUNG_TASK=y
104CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=110
105CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
106CONFIG_DEBUG_INFO=y
107# CONFIG_FTRACE is not set
108CONFIG_DEBUG_LL=y
109CONFIG_CRC_CCITT=y
110CONFIG_CRC_T10DIF=y
111CONFIG_CRC_ITU_T=y
112CONFIG_CRC7=y
113CONFIG_XZ_DEC=y
114CONFIG_AVERAGE=y
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