This adds preliminary support for the alpha project AP-SH4AD-0A reference platform (SH7786 based). Additional platform information available at: http://www.apnet.co.jp/product/superh/ap-sh4ad-0a.html Signed-off-by: Paul Mundt <lethal@linux-sh.org>tirimbino
parent
bc34b0850b
commit
8a453cac94
@ -0,0 +1,125 @@ |
||||
/*
|
||||
* ALPHAPROJECT AP-SH4AD-0A Support. |
||||
* |
||||
* Copyright (C) 2010 ALPHAPROJECT Co.,Ltd. |
||||
* Copyright (C) 2010 Matt Fleming |
||||
* Copyright (C) 2010 Paul Mundt |
||||
* |
||||
* This file is subject to the terms and conditions of the GNU General Public |
||||
* License. See the file "COPYING" in the main directory of this archive |
||||
* for more details. |
||||
*/ |
||||
#include <linux/init.h> |
||||
#include <linux/platform_device.h> |
||||
#include <linux/io.h> |
||||
#include <linux/smsc911x.h> |
||||
#include <linux/irq.h> |
||||
#include <linux/clk.h> |
||||
#include <asm/machvec.h> |
||||
#include <asm/sizes.h> |
||||
|
||||
static struct resource smsc911x_resources[] = { |
||||
[0] = { |
||||
.name = "smsc911x-memory", |
||||
.start = 0xA4000000, |
||||
.end = 0xA4000000 + SZ_256 - 1, |
||||
.flags = IORESOURCE_MEM, |
||||
}, |
||||
[1] = { |
||||
.name = "smsc911x-irq", |
||||
.start = evt2irq(0x200), |
||||
.end = evt2irq(0x200), |
||||
.flags = IORESOURCE_IRQ, |
||||
}, |
||||
}; |
||||
|
||||
static struct smsc911x_platform_config smsc911x_config = { |
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, |
||||
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, |
||||
.flags = SMSC911X_USE_16BIT, |
||||
.phy_interface = PHY_INTERFACE_MODE_MII, |
||||
}; |
||||
|
||||
static struct platform_device smsc911x_device = { |
||||
.name = "smsc911x", |
||||
.id = -1, |
||||
.num_resources = ARRAY_SIZE(smsc911x_resources), |
||||
.resource = smsc911x_resources, |
||||
.dev = { |
||||
.platform_data = &smsc911x_config, |
||||
}, |
||||
}; |
||||
|
||||
static struct platform_device *apsh4ad0a_devices[] __initdata = { |
||||
&smsc911x_device, |
||||
}; |
||||
|
||||
static int __init apsh4ad0a_devices_setup(void) |
||||
{ |
||||
return platform_add_devices(apsh4ad0a_devices, |
||||
ARRAY_SIZE(apsh4ad0a_devices)); |
||||
} |
||||
device_initcall(apsh4ad0a_devices_setup); |
||||
|
||||
static int apsh4ad0a_mode_pins(void) |
||||
{ |
||||
int value = 0; |
||||
|
||||
/* These are the factory default settings of SW1 and SW2.
|
||||
* If you change these dip switches then you will need to |
||||
* adjust the values below as well. |
||||
*/ |
||||
value |= MODE_PIN0; /* Clock Mode 3 */ |
||||
value |= MODE_PIN1; |
||||
value &= ~MODE_PIN2; |
||||
value &= ~MODE_PIN3; |
||||
value &= ~MODE_PIN4; /* 16-bit Area0 bus width */ |
||||
value |= MODE_PIN5; |
||||
value |= MODE_PIN6; |
||||
value |= MODE_PIN7; /* Normal mode */ |
||||
value |= MODE_PIN8; /* Little Endian */ |
||||
value |= MODE_PIN9; /* Crystal resonator */ |
||||
value &= ~MODE_PIN10; /* 29-bit address mode */ |
||||
value &= ~MODE_PIN11; /* PCI-E Root port */ |
||||
value &= ~MODE_PIN12; /* 4 lane + 1 lane */ |
||||
value |= MODE_PIN13; /* AUD Enable */ |
||||
value &= ~MODE_PIN14; /* Normal Operation */ |
||||
|
||||
return value; |
||||
} |
||||
|
||||
static int apsh4ad0a_clk_init(void) |
||||
{ |
||||
struct clk *clk; |
||||
int ret; |
||||
|
||||
clk = clk_get(NULL, "extal"); |
||||
if (!clk || IS_ERR(clk)) |
||||
return PTR_ERR(clk); |
||||
ret = clk_set_rate(clk, 33333000); |
||||
clk_put(clk); |
||||
|
||||
return ret; |
||||
} |
||||
|
||||
/* Initialize the board */ |
||||
static void __init apsh4ad0a_setup(char **cmdline_p) |
||||
{ |
||||
pr_info("Alpha Project AP-SH4AD-0A support:\n"); |
||||
} |
||||
|
||||
static void __init apsh4ad0a_init_irq(void) |
||||
{ |
||||
plat_irq_setup_pins(IRQ_MODE_IRQ3210); |
||||
} |
||||
|
||||
/*
|
||||
* The Machine Vector |
||||
*/ |
||||
static struct sh_machine_vector mv_apsh4ad0a __initmv = { |
||||
.mv_name = "AP-SH4AD-0A", |
||||
.mv_setup = apsh4ad0a_setup, |
||||
.mv_mode_pins = apsh4ad0a_mode_pins, |
||||
.mv_clk_init = apsh4ad0a_clk_init, |
||||
.mv_init_irq = apsh4ad0a_init_irq, |
||||
}; |
@ -0,0 +1,133 @@ |
||||
CONFIG_EXPERIMENTAL=y |
||||
CONFIG_SYSVIPC=y |
||||
CONFIG_POSIX_MQUEUE=y |
||||
CONFIG_BSD_PROCESS_ACCT=y |
||||
CONFIG_RCU_TRACE=y |
||||
CONFIG_IKCONFIG=y |
||||
CONFIG_IKCONFIG_PROC=y |
||||
CONFIG_LOG_BUF_SHIFT=14 |
||||
CONFIG_CGROUPS=y |
||||
CONFIG_CGROUP_NS=y |
||||
CONFIG_CGROUP_FREEZER=y |
||||
CONFIG_CGROUP_DEVICE=y |
||||
CONFIG_CGROUP_CPUACCT=y |
||||
CONFIG_RESOURCE_COUNTERS=y |
||||
CONFIG_CGROUP_MEM_RES_CTLR=y |
||||
CONFIG_BLK_CGROUP=y |
||||
CONFIG_NAMESPACES=y |
||||
CONFIG_BLK_DEV_INITRD=y |
||||
CONFIG_KALLSYMS_ALL=y |
||||
# CONFIG_COMPAT_BRK is not set |
||||
CONFIG_SLAB=y |
||||
CONFIG_PROFILING=y |
||||
CONFIG_MODULES=y |
||||
CONFIG_MODULE_UNLOAD=y |
||||
# CONFIG_LBDAF is not set |
||||
# CONFIG_BLK_DEV_BSG is not set |
||||
CONFIG_CFQ_GROUP_IOSCHED=y |
||||
CONFIG_CPU_SUBTYPE_SH7786=y |
||||
CONFIG_MEMORY_SIZE=0x10000000 |
||||
CONFIG_HUGETLB_PAGE_SIZE_1MB=y |
||||
CONFIG_MEMORY_HOTPLUG=y |
||||
CONFIG_MEMORY_HOTREMOVE=y |
||||
CONFIG_KSM=y |
||||
CONFIG_SH_STORE_QUEUES=y |
||||
CONFIG_SH_APSH4AD0A=y |
||||
CONFIG_NO_HZ=y |
||||
CONFIG_HIGH_RES_TIMERS=y |
||||
CONFIG_CPU_FREQ=y |
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=m |
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=m |
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=m |
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m |
||||
CONFIG_SH_CPU_FREQ=y |
||||
CONFIG_KEXEC=y |
||||
CONFIG_SECCOMP=y |
||||
CONFIG_PREEMPT=y |
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
||||
CONFIG_BINFMT_MISC=y |
||||
CONFIG_PM=y |
||||
CONFIG_PM_DEBUG=y |
||||
CONFIG_PM_VERBOSE=y |
||||
CONFIG_PM_RUNTIME=y |
||||
CONFIG_CPU_IDLE=y |
||||
CONFIG_NET=y |
||||
CONFIG_PACKET=y |
||||
CONFIG_UNIX=y |
||||
CONFIG_NET_KEY=y |
||||
CONFIG_INET=y |
||||
# CONFIG_INET_LRO is not set |
||||
# CONFIG_IPV6 is not set |
||||
# CONFIG_WIRELESS is not set |
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
||||
# CONFIG_FW_LOADER is not set |
||||
CONFIG_MTD=y |
||||
CONFIG_MTD_CFI=y |
||||
CONFIG_BLK_DEV_RAM=y |
||||
CONFIG_BLK_DEV_RAM_SIZE=16384 |
||||
CONFIG_SCSI=y |
||||
CONFIG_BLK_DEV_SD=y |
||||
CONFIG_SCSI_MULTI_LUN=y |
||||
# CONFIG_SCSI_LOWLEVEL is not set |
||||
CONFIG_NETDEVICES=y |
||||
CONFIG_MDIO_BITBANG=y |
||||
CONFIG_NET_ETHERNET=y |
||||
CONFIG_SMSC911X=y |
||||
# CONFIG_NETDEV_1000 is not set |
||||
# CONFIG_NETDEV_10000 is not set |
||||
# CONFIG_WLAN is not set |
||||
CONFIG_INPUT_EVDEV=y |
||||
# CONFIG_INPUT_KEYBOARD is not set |
||||
# CONFIG_INPUT_MOUSE is not set |
||||
# CONFIG_SERIO is not set |
||||
CONFIG_SERIAL_SH_SCI=y |
||||
CONFIG_SERIAL_SH_SCI_NR_UARTS=6 |
||||
CONFIG_SERIAL_SH_SCI_CONSOLE=y |
||||
# CONFIG_LEGACY_PTYS is not set |
||||
# CONFIG_HW_RANDOM is not set |
||||
# CONFIG_HWMON is not set |
||||
CONFIG_VIDEO_OUTPUT_CONTROL=y |
||||
CONFIG_FB=y |
||||
CONFIG_FB_SH7785FB=y |
||||
CONFIG_FRAMEBUFFER_CONSOLE=y |
||||
CONFIG_FONTS=y |
||||
CONFIG_FONT_8x8=y |
||||
CONFIG_FONT_8x16=y |
||||
CONFIG_LOGO=y |
||||
CONFIG_USB=y |
||||
CONFIG_USB_DEBUG=y |
||||
CONFIG_USB_MON=y |
||||
CONFIG_USB_OHCI_HCD=y |
||||
CONFIG_USB_STORAGE=y |
||||
CONFIG_EXT2_FS=y |
||||
CONFIG_EXT3_FS=y |
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set |
||||
CONFIG_MSDOS_FS=y |
||||
CONFIG_VFAT_FS=y |
||||
CONFIG_NTFS_FS=y |
||||
CONFIG_NTFS_RW=y |
||||
CONFIG_PROC_KCORE=y |
||||
CONFIG_TMPFS=y |
||||
CONFIG_HUGETLBFS=y |
||||
CONFIG_JFFS2_FS=y |
||||
CONFIG_CRAMFS=y |
||||
CONFIG_NFS_FS=y |
||||
CONFIG_NFS_V3=y |
||||
CONFIG_NFS_V4=y |
||||
CONFIG_CIFS=y |
||||
CONFIG_NLS_DEFAULT="utf8" |
||||
CONFIG_NLS_CODEPAGE_437=y |
||||
CONFIG_NLS_CODEPAGE_932=y |
||||
CONFIG_NLS_ASCII=y |
||||
CONFIG_NLS_ISO8859_1=y |
||||
CONFIG_NLS_UTF8=y |
||||
# CONFIG_ENABLE_MUST_CHECK is not set |
||||
CONFIG_MAGIC_SYSRQ=y |
||||
CONFIG_DEBUG_KERNEL=y |
||||
CONFIG_DEBUG_SHIRQ=y |
||||
CONFIG_DETECT_HUNG_TASK=y |
||||
CONFIG_DEBUG_INFO=y |
||||
CONFIG_DEBUG_VM=y |
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set |
||||
CONFIG_DWARF_UNWINDER=y |
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set |
Loading…
Reference in new issue