-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for generic BCM SoC chipsets
In order to start upstreaming Broadcom SoC support, create a starting hierarchy, arch and dts files. The first support SoC family that is planned is the BCM281XX (BCM11130/11140/11351/28145/28155) family of dual A9 mobile SoC cores. This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible. Next steps ---------- Upstream a basic set of drivers - sufficient for a console boot to ramdisk. These will includer timer, gpio, i2c drivers. After this basic set, we will proceed with a more comprehensive set of drivers for the 281XX SoC family. v2 patch mods -------- - Remove l2x0_of_init call as there were problems with the code. A separate patch will be submitted with cache init code - Rename capri files and refs to bcm281xx-based names - Add bcm281xx binding doc - various misc cleanups v3 patch mods ------------- - Remove extra #include lines - Remove remaining references to capri - dt uart chipset string added - cleaned up chip # references v4 patch mods ------------- - swap order of compatible definitions for uart - fix typo v5 patch mods ------------- - Rename bcm281xx to bcm11351 in dts+code, leaving references to bcm281xx only in help+comments. v6 patch mods ------------- - fix typo in uart 'compatible' string Signed-off-by: Christian Daudt <csd@broadcom.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Olof Johansson <olof@lixom.net>
- Loading branch information
Christian Daudt
authored and
Olof Johansson
committed
Nov 20, 2012
1 parent
0056a98
commit 8ac49e0
Showing
10 changed files
with
296 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
Broadcom BCM11351 device tree bindings | ||
------------------------------------------- | ||
|
||
Boards with the bcm281xx SoC family (which includes bcm11130, bcm11140, | ||
bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties: | ||
|
||
Required root node property: | ||
|
||
compatible = "bcm,bcm11351"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/* | ||
* Copyright (C) 2012 Broadcom Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation version 2. | ||
* | ||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
* kind, whether express or implied; without even the implied warranty | ||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
/include/ "bcm11351.dtsi" | ||
|
||
/ { | ||
model = "BCM11351 BRT board"; | ||
compatible = "bcm,bcm11351-brt", "bcm,bcm11351"; | ||
|
||
memory { | ||
reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
}; | ||
|
||
uart@3e000000 { | ||
status = "okay"; | ||
}; | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/* | ||
* Copyright (C) 2012 Broadcom Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation version 2. | ||
* | ||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
* kind, whether express or implied; without even the implied warranty | ||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
*/ | ||
|
||
/include/ "skeleton.dtsi" | ||
|
||
/ { | ||
model = "BCM11351 SoC"; | ||
compatible = "bcm,bcm11351"; | ||
interrupt-parent = <&gic>; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200n8"; | ||
}; | ||
|
||
gic: interrupt-controller@3ff00100 { | ||
compatible = "arm,cortex-a9-gic"; | ||
#interrupt-cells = <3>; | ||
#address-cells = <0>; | ||
interrupt-controller; | ||
reg = <0x3ff01000 0x1000>, | ||
<0x3ff00100 0x100>; | ||
}; | ||
|
||
uart@3e000000 { | ||
compatible = "bcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | ||
status = "disabled"; | ||
reg = <0x3e000000 0x1000>; | ||
clock-frequency = <13000000>; | ||
interrupts = <0x0 67 0x4>; | ||
reg-shift = <2>; | ||
reg-io-width = <4>; | ||
}; | ||
|
||
L2: l2-cache { | ||
compatible = "arm,pl310-cache"; | ||
reg = <0x3ff20000 0x1000>; | ||
cache-unified; | ||
cache-level = <2>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
CONFIG_EXPERIMENTAL=y | ||
# CONFIG_LOCALVERSION_AUTO is not set | ||
# CONFIG_SWAP is not set | ||
CONFIG_SYSVIPC=y | ||
CONFIG_NO_HZ=y | ||
CONFIG_HIGH_RES_TIMERS=y | ||
CONFIG_BSD_PROCESS_ACCT=y | ||
CONFIG_BSD_PROCESS_ACCT_V3=y | ||
CONFIG_IKCONFIG=y | ||
CONFIG_IKCONFIG_PROC=y | ||
CONFIG_LOG_BUF_SHIFT=19 | ||
CONFIG_CGROUPS=y | ||
CONFIG_CGROUP_FREEZER=y | ||
CONFIG_CGROUP_DEVICE=y | ||
CONFIG_CGROUP_CPUACCT=y | ||
CONFIG_RESOURCE_COUNTERS=y | ||
CONFIG_CGROUP_SCHED=y | ||
CONFIG_BLK_CGROUP=y | ||
CONFIG_NAMESPACES=y | ||
CONFIG_BLK_DEV_INITRD=y | ||
CONFIG_SYSCTL_SYSCALL=y | ||
CONFIG_EMBEDDED=y | ||
# CONFIG_COMPAT_BRK is not set | ||
CONFIG_MODULES=y | ||
CONFIG_MODULE_UNLOAD=y | ||
# CONFIG_BLK_DEV_BSG is not set | ||
CONFIG_PARTITION_ADVANCED=y | ||
CONFIG_EFI_PARTITION=y | ||
CONFIG_ARCH_BCM=y | ||
CONFIG_ARM_THUMBEE=y | ||
CONFIG_ARM_ERRATA_743622=y | ||
CONFIG_PREEMPT=y | ||
CONFIG_AEABI=y | ||
# CONFIG_OABI_COMPAT is not set | ||
# CONFIG_COMPACTION is not set | ||
CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
CONFIG_ZBOOT_ROM_BSS=0x0 | ||
CONFIG_ARM_APPENDED_DTB=y | ||
CONFIG_CMDLINE="console=ttyS0,115200n8 mem=128M" | ||
CONFIG_CPU_IDLE=y | ||
CONFIG_VFP=y | ||
CONFIG_NEON=y | ||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
CONFIG_PM_RUNTIME=y | ||
CONFIG_DEVTMPFS=y | ||
CONFIG_DEVTMPFS_MOUNT=y | ||
CONFIG_PROC_DEVICETREE=y | ||
# CONFIG_BLK_DEV is not set | ||
CONFIG_SCSI=y | ||
CONFIG_BLK_DEV_SD=y | ||
CONFIG_CHR_DEV_SG=y | ||
CONFIG_SCSI_MULTI_LUN=y | ||
CONFIG_SCSI_SCAN_ASYNC=y | ||
CONFIG_INPUT_FF_MEMLESS=y | ||
CONFIG_INPUT_JOYDEV=y | ||
CONFIG_INPUT_EVDEV=y | ||
# CONFIG_KEYBOARD_ATKBD is not set | ||
# CONFIG_INPUT_MOUSE is not set | ||
CONFIG_INPUT_TOUCHSCREEN=y | ||
CONFIG_INPUT_MISC=y | ||
CONFIG_INPUT_UINPUT=y | ||
# CONFIG_SERIO is not set | ||
# CONFIG_LEGACY_PTYS is not set | ||
CONFIG_SERIAL_8250=y | ||
CONFIG_SERIAL_8250_CONSOLE=y | ||
CONFIG_SERIAL_8250_EXTENDED=y | ||
CONFIG_SERIAL_8250_MANY_PORTS=y | ||
CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
CONFIG_SERIAL_8250_RSA=y | ||
CONFIG_SERIAL_8250_DW=y | ||
CONFIG_HW_RANDOM=y | ||
CONFIG_I2C=y | ||
CONFIG_I2C_CHARDEV=y | ||
# CONFIG_HWMON is not set | ||
CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
CONFIG_FB=y | ||
CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
CONFIG_LCD_CLASS_DEVICE=y | ||
CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
# CONFIG_USB_SUPPORT is not set | ||
CONFIG_NEW_LEDS=y | ||
CONFIG_LEDS_CLASS=y | ||
CONFIG_LEDS_TRIGGERS=y | ||
CONFIG_LEDS_TRIGGER_TIMER=y | ||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
CONFIG_EXT4_FS=y | ||
CONFIG_EXT4_FS_POSIX_ACL=y | ||
CONFIG_EXT4_FS_SECURITY=y | ||
CONFIG_AUTOFS4_FS=y | ||
CONFIG_FUSE_FS=y | ||
CONFIG_MSDOS_FS=y | ||
CONFIG_VFAT_FS=y | ||
CONFIG_TMPFS=y | ||
CONFIG_TMPFS_POSIX_ACL=y | ||
CONFIG_CONFIGFS_FS=y | ||
# CONFIG_MISC_FILESYSTEMS is not set | ||
CONFIG_NLS_CODEPAGE_437=y | ||
CONFIG_NLS_ISO8859_1=y | ||
CONFIG_PRINTK_TIME=y | ||
CONFIG_MAGIC_SYSRQ=y | ||
CONFIG_DEBUG_FS=y | ||
CONFIG_DETECT_HUNG_TASK=y | ||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=110 | ||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y | ||
CONFIG_DEBUG_INFO=y | ||
# CONFIG_FTRACE is not set | ||
CONFIG_DEBUG_LL=y | ||
CONFIG_CRC_CCITT=y | ||
CONFIG_CRC_T10DIF=y | ||
CONFIG_CRC_ITU_T=y | ||
CONFIG_CRC7=y | ||
CONFIG_XZ_DEC=y | ||
CONFIG_AVERAGE=y |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
config ARCH_BCM | ||
bool "Broadcom SoC" if ARCH_MULTI_V7 | ||
depends on MMU | ||
select ARCH_REQUIRE_GPIOLIB | ||
select ARM_ERRATA_754322 | ||
select ARM_ERRATA_764369 if SMP | ||
select ARM_GIC | ||
select CPU_V7 | ||
select GENERIC_CLOCKEVENTS | ||
select GENERIC_GPIO | ||
select GENERIC_TIME | ||
select GPIO_BCM | ||
select SPARSE_IRQ | ||
select TICK_ONESHOT | ||
help | ||
This enables support for system based on Broadcom SoCs. | ||
It currently supports the 'BCM281XX' family, which includes | ||
BCM11130, BCM11140, BCM11351, BCM28145 and | ||
BCM28155 variants. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# | ||
# Copyright (C) 2012 Broadcom Corporation | ||
# | ||
# This program is free software; you can redistribute it and/or | ||
# modify it under the terms of the GNU General Public License as | ||
# published by the Free Software Foundation version 2. | ||
# | ||
# This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
# kind, whether express or implied; without even the implied warranty | ||
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
|
||
obj-$(CONFIG_ARCH_BCM) := board_bcm.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
* Copyright (C) 2012 Broadcom Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation version 2. | ||
* | ||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
* kind, whether express or implied; without even the implied warranty | ||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
*/ | ||
|
||
#include <linux/of_irq.h> | ||
#include <linux/of_platform.h> | ||
#include <linux/init.h> | ||
#include <linux/device.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <asm/mach/arch.h> | ||
#include <asm/hardware/gic.h> | ||
|
||
#include <asm/mach/time.h> | ||
|
||
static const struct of_device_id irq_match[] = { | ||
{.compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, | ||
{} | ||
}; | ||
|
||
static void timer_init(void) | ||
{ | ||
} | ||
|
||
static struct sys_timer timer = { | ||
.init = timer_init, | ||
}; | ||
|
||
static void __init init_irq(void) | ||
{ | ||
of_irq_init(irq_match); | ||
} | ||
|
||
static void __init board_init(void) | ||
{ | ||
of_platform_populate(NULL, of_default_bus_match_table, NULL, | ||
&platform_bus); | ||
} | ||
|
||
static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, }; | ||
|
||
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") | ||
.init_irq = init_irq, | ||
.timer = &timer, | ||
.init_machine = board_init, | ||
.dt_compat = bcm11351_dt_compat, | ||
.handle_irq = gic_handle_irq, | ||
MACHINE_END |