diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/bcm11351-brt.dts | 30 | ||||
-rw-r--r-- | arch/arm/boot/dts/bcm11351.dtsi | 50 | ||||
-rw-r--r-- | arch/arm/configs/bcm_defconfig | 114 | ||||
-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 |
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 | ||
1010 | source "arch/arm/mach-at91/Kconfig" | 1010 | source "arch/arm/mach-at91/Kconfig" |
1011 | 1011 | ||
1012 | source "arch/arm/mach-bcm/Kconfig" | ||
1013 | |||
1012 | source "arch/arm/mach-clps711x/Kconfig" | 1014 | source "arch/arm/mach-clps711x/Kconfig" |
1013 | 1015 | ||
1014 | source "arch/arm/mach-cns3xxx/Kconfig" | 1016 | source "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. |
139 | machine-$(CONFIG_ARCH_AT91) += at91 | 139 | machine-$(CONFIG_ARCH_AT91) += at91 |
140 | machine-$(CONFIG_ARCH_BCM) += bcm | ||
140 | machine-$(CONFIG_ARCH_BCM2835) += bcm2835 | 141 | machine-$(CONFIG_ARCH_BCM2835) += bcm2835 |
141 | machine-$(CONFIG_ARCH_CLPS711X) += clps711x | 142 | machine-$(CONFIG_ARCH_CLPS711X) += clps711x |
142 | machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx | 143 | machine-$(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 |
19 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | 19 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb |
20 | dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb | ||
20 | dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ | 21 | dtb-$(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 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | ||
2 | # CONFIG_LOCALVERSION_AUTO is not set | ||
3 | # CONFIG_SWAP is not set | ||
4 | CONFIG_SYSVIPC=y | ||
5 | CONFIG_NO_HZ=y | ||
6 | CONFIG_HIGH_RES_TIMERS=y | ||
7 | CONFIG_BSD_PROCESS_ACCT=y | ||
8 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
9 | CONFIG_IKCONFIG=y | ||
10 | CONFIG_IKCONFIG_PROC=y | ||
11 | CONFIG_LOG_BUF_SHIFT=19 | ||
12 | CONFIG_CGROUPS=y | ||
13 | CONFIG_CGROUP_FREEZER=y | ||
14 | CONFIG_CGROUP_DEVICE=y | ||
15 | CONFIG_CGROUP_CPUACCT=y | ||
16 | CONFIG_RESOURCE_COUNTERS=y | ||
17 | CONFIG_CGROUP_SCHED=y | ||
18 | CONFIG_BLK_CGROUP=y | ||
19 | CONFIG_NAMESPACES=y | ||
20 | CONFIG_BLK_DEV_INITRD=y | ||
21 | CONFIG_SYSCTL_SYSCALL=y | ||
22 | CONFIG_EMBEDDED=y | ||
23 | # CONFIG_COMPAT_BRK is not set | ||
24 | CONFIG_MODULES=y | ||
25 | CONFIG_MODULE_UNLOAD=y | ||
26 | # CONFIG_BLK_DEV_BSG is not set | ||
27 | CONFIG_PARTITION_ADVANCED=y | ||
28 | CONFIG_EFI_PARTITION=y | ||
29 | CONFIG_ARCH_BCM=y | ||
30 | CONFIG_ARM_THUMBEE=y | ||
31 | CONFIG_ARM_ERRATA_743622=y | ||
32 | CONFIG_PREEMPT=y | ||
33 | CONFIG_AEABI=y | ||
34 | # CONFIG_OABI_COMPAT is not set | ||
35 | # CONFIG_COMPACTION is not set | ||
36 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
37 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
38 | CONFIG_ARM_APPENDED_DTB=y | ||
39 | CONFIG_CMDLINE="console=ttyS0,115200n8 mem=128M" | ||
40 | CONFIG_CPU_IDLE=y | ||
41 | CONFIG_VFP=y | ||
42 | CONFIG_NEON=y | ||
43 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
44 | CONFIG_PM_RUNTIME=y | ||
45 | CONFIG_DEVTMPFS=y | ||
46 | CONFIG_DEVTMPFS_MOUNT=y | ||
47 | CONFIG_PROC_DEVICETREE=y | ||
48 | # CONFIG_BLK_DEV is not set | ||
49 | CONFIG_SCSI=y | ||
50 | CONFIG_BLK_DEV_SD=y | ||
51 | CONFIG_CHR_DEV_SG=y | ||
52 | CONFIG_SCSI_MULTI_LUN=y | ||
53 | CONFIG_SCSI_SCAN_ASYNC=y | ||
54 | CONFIG_INPUT_FF_MEMLESS=y | ||
55 | CONFIG_INPUT_JOYDEV=y | ||
56 | CONFIG_INPUT_EVDEV=y | ||
57 | # CONFIG_KEYBOARD_ATKBD is not set | ||
58 | # CONFIG_INPUT_MOUSE is not set | ||
59 | CONFIG_INPUT_TOUCHSCREEN=y | ||
60 | CONFIG_INPUT_MISC=y | ||
61 | CONFIG_INPUT_UINPUT=y | ||
62 | # CONFIG_SERIO is not set | ||
63 | # CONFIG_LEGACY_PTYS is not set | ||
64 | CONFIG_SERIAL_8250=y | ||
65 | CONFIG_SERIAL_8250_CONSOLE=y | ||
66 | CONFIG_SERIAL_8250_EXTENDED=y | ||
67 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
68 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
69 | CONFIG_SERIAL_8250_RSA=y | ||
70 | CONFIG_SERIAL_8250_DW=y | ||
71 | CONFIG_HW_RANDOM=y | ||
72 | CONFIG_I2C=y | ||
73 | CONFIG_I2C_CHARDEV=y | ||
74 | # CONFIG_HWMON is not set | ||
75 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
76 | CONFIG_FB=y | ||
77 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
78 | CONFIG_LCD_CLASS_DEVICE=y | ||
79 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
80 | # CONFIG_USB_SUPPORT is not set | ||
81 | CONFIG_NEW_LEDS=y | ||
82 | CONFIG_LEDS_CLASS=y | ||
83 | CONFIG_LEDS_TRIGGERS=y | ||
84 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
85 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
86 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
87 | CONFIG_EXT4_FS=y | ||
88 | CONFIG_EXT4_FS_POSIX_ACL=y | ||
89 | CONFIG_EXT4_FS_SECURITY=y | ||
90 | CONFIG_AUTOFS4_FS=y | ||
91 | CONFIG_FUSE_FS=y | ||
92 | CONFIG_MSDOS_FS=y | ||
93 | CONFIG_VFAT_FS=y | ||
94 | CONFIG_TMPFS=y | ||
95 | CONFIG_TMPFS_POSIX_ACL=y | ||
96 | CONFIG_CONFIGFS_FS=y | ||
97 | # CONFIG_MISC_FILESYSTEMS is not set | ||
98 | CONFIG_NLS_CODEPAGE_437=y | ||
99 | CONFIG_NLS_ISO8859_1=y | ||
100 | CONFIG_PRINTK_TIME=y | ||
101 | CONFIG_MAGIC_SYSRQ=y | ||
102 | CONFIG_DEBUG_FS=y | ||
103 | CONFIG_DETECT_HUNG_TASK=y | ||
104 | CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=110 | ||
105 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y | ||
106 | CONFIG_DEBUG_INFO=y | ||
107 | # CONFIG_FTRACE is not set | ||
108 | CONFIG_DEBUG_LL=y | ||
109 | CONFIG_CRC_CCITT=y | ||
110 | CONFIG_CRC_T10DIF=y | ||
111 | CONFIG_CRC_ITU_T=y | ||
112 | CONFIG_CRC7=y | ||
113 | CONFIG_XZ_DEC=y | ||
114 | CONFIG_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 @@ | |||
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 | ||