Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d3b5fa3 authored by Russell King's avatar Russell King
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/genesis-2.6

parents 3f17522c 7278a221
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -1405,20 +1405,30 @@ F: arch/x86/include/asm/calgary.h
F:	arch/x86/include/asm/tce.h

CAN NETWORK LAYER
M:	Urs Thuermann <urs.thuermann@volkswagen.de>
M:	Oliver Hartkopp <socketcan@hartkopp.net>
M:	Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
L:	socketcan-core@lists.berlios.de (subscribers-only)
M:	Urs Thuermann <urs.thuermann@volkswagen.de>
L:	socketcan-core@lists.berlios.de
L:	netdev@vger.kernel.org
W:	http://developer.berlios.de/projects/socketcan/
S:	Maintained
F:	drivers/net/can/
F:	include/linux/can/
F:	net/can/
F:	include/linux/can.h
F:	include/linux/can/core.h
F:	include/linux/can/bcm.h
F:	include/linux/can/raw.h

CAN NETWORK DRIVERS
M:	Wolfgang Grandegger <wg@grandegger.com>
L:	socketcan-core@lists.berlios.de (subscribers-only)
L:	socketcan-core@lists.berlios.de
L:	netdev@vger.kernel.org
W:	http://developer.berlios.de/projects/socketcan/
S:	Maintained
F:	drivers/net/can/
F:	include/linux/can/dev.h
F:	include/linux/can/error.h
F:	include/linux/can/netlink.h
F:	include/linux/can/platform/

CELL BROADBAND ENGINE ARCHITECTURE
M:	Arnd Bergmann <arnd@arndb.de>
@@ -2130,6 +2140,7 @@ F: drivers/net/eexpress.*
ETHERNET BRIDGE
M:	Stephen Hemminger <shemminger@linux-foundation.org>
L:	bridge@lists.linux-foundation.org
L:	netdev@vger.kernel.org
W:	http://www.linux-foundation.org/en/Net:Bridge
S:	Maintained
F:	include/linux/netfilter_bridge/
@@ -4316,6 +4327,7 @@ PERFORMANCE EVENTS SUBSYSTEM
M:	Peter Zijlstra <a.p.zijlstra@chello.nl>
M:	Paul Mackerras <paulus@samba.org>
M:	Ingo Molnar <mingo@elte.hu>
M:	Arnaldo Carvalho de Melo <acme@redhat.com>
S:	Supported
F:	kernel/perf_event.c
F:	include/linux/perf_event.h
+2 −2
Original line number Diff line number Diff line
@@ -966,7 +966,7 @@ armv6pmu_handle_irq(int irq_num,
	 */
	armv6_pmcr_write(pmcr);

	data.addr = 0;
	perf_sample_data_init(&data, 0);

	cpuc = &__get_cpu_var(cpu_hw_events);
	for (idx = 0; idx <= armpmu->num_events; ++idx) {
@@ -1946,7 +1946,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)
	 */
	regs = get_irq_regs();

	data.addr = 0;
	perf_sample_data_init(&data, 0);

	cpuc = &__get_cpu_var(cpu_hw_events);
	for (idx = 0; idx <= armpmu->num_events; ++idx) {
+32 −0
Original line number Diff line number Diff line
@@ -206,10 +206,32 @@ static struct platform_device keysc_device = {
	},
};

/* SDHI0 */
static struct resource sdhi0_resources[] = {
	[0] = {
		.name	= "SDHI0",
		.start  = 0xe6850000,
		.end    = 0xe68501ff,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start  = 96,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct platform_device sdhi0_device = {
	.name           = "sh_mobile_sdhi",
	.num_resources  = ARRAY_SIZE(sdhi0_resources),
	.resource       = sdhi0_resources,
	.id             = 0,
};

static struct platform_device *ap4evb_devices[] __initdata = {
	&nor_flash_device,
	&smc911x_device,
	&keysc_device,
	&sdhi0_device,
};

static struct map_desc ap4evb_io_desc[] __initdata = {
@@ -286,6 +308,16 @@ static void __init ap4evb_init(void)
	gpio_request(GPIO_FN_KEYIN3_133, NULL);
	gpio_request(GPIO_FN_KEYIN4,     NULL);

	/* SDHI0 */
	gpio_request(GPIO_FN_SDHICD0, NULL);
	gpio_request(GPIO_FN_SDHIWP0, NULL);
	gpio_request(GPIO_FN_SDHICMD0, NULL);
	gpio_request(GPIO_FN_SDHICLK0, NULL);
	gpio_request(GPIO_FN_SDHID0_3, NULL);
	gpio_request(GPIO_FN_SDHID0_2, NULL);
	gpio_request(GPIO_FN_SDHID0_1, NULL);
	gpio_request(GPIO_FN_SDHID0_0, NULL);

	sh7372_add_standard_devices();

	platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));
+122 −0
Original line number Diff line number Diff line
@@ -26,9 +26,12 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h>
#include <linux/mtd/sh_flctl.h>
#include <linux/usb/r8a66597.h>
#include <linux/io.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/input/sh_keysc.h>
#include <mach/sh7367.h>
#include <mach/common.h>
#include <asm/mach-types.h>
@@ -127,9 +130,90 @@ static struct platform_device usb_host_device = {
	.resource	= usb_host_resources,
};

/* KEYSC */
static struct sh_keysc_info keysc_info = {
	.mode		= SH_KEYSC_MODE_5,
	.scan_timing	= 3,
	.delay		= 100,
	.keycodes = {
		KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G,
		KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N,
		KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U,
		KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP,
		KEY_WAKEUP, KEY_COFFEE, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4,
		KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER,
	},
};

static struct resource keysc_resources[] = {
	[0] = {
		.name	= "KEYSC",
		.start  = 0xe61b0000,
		.end    = 0xe61b000f,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start  = 79,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct platform_device keysc_device = {
	.name           = "sh_keysc",
	.num_resources  = ARRAY_SIZE(keysc_resources),
	.resource       = keysc_resources,
	.dev	= {
		.platform_data	= &keysc_info,
	},
};

static struct mtd_partition nand_partition_info[] = {
	{
		.name	= "system",
		.offset	= 0,
		.size	= 64 * 1024 * 1024,
	},
	{
		.name	= "userdata",
		.offset	= MTDPART_OFS_APPEND,
		.size	= 128 * 1024 * 1024,
	},
	{
		.name	= "cache",
		.offset	= MTDPART_OFS_APPEND,
		.size	= 64 * 1024 * 1024,
	},
};

static struct resource nand_flash_resources[] = {
	[0] = {
		.start	= 0xe6a30000,
		.end	= 0xe6a3009b,
		.flags	= IORESOURCE_MEM,
	}
};

static struct sh_flctl_platform_data nand_flash_data = {
	.parts		= nand_partition_info,
	.nr_parts	= ARRAY_SIZE(nand_partition_info),
	.flcmncr_val	= QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E
			| SHBUSSEL | SEL_16BIT,
};

static struct platform_device nand_flash_device = {
	.name		= "sh_flctl",
	.resource	= nand_flash_resources,
	.num_resources	= ARRAY_SIZE(nand_flash_resources),
	.dev		= {
		.platform_data = &nand_flash_data,
	},
};

static struct platform_device *g3evm_devices[] __initdata = {
	&nor_flash_device,
	&usb_host_device,
	&keysc_device,
	&nand_flash_device,
};

static struct map_desc g3evm_io_desc[] __initdata = {
@@ -196,6 +280,44 @@ static void __init g3evm_init(void)
	__raw_writew(0x6010, 0xe60581c6);	/* CGPOSR */
	__raw_writew(0x8a0a, 0xe605810c);	/* USBCR2 */

	/* KEYSC @ CN7 */
	gpio_request(GPIO_FN_PORT42_KEYOUT0, NULL);
	gpio_request(GPIO_FN_PORT43_KEYOUT1, NULL);
	gpio_request(GPIO_FN_PORT44_KEYOUT2, NULL);
	gpio_request(GPIO_FN_PORT45_KEYOUT3, NULL);
	gpio_request(GPIO_FN_PORT46_KEYOUT4, NULL);
	gpio_request(GPIO_FN_PORT47_KEYOUT5, NULL);
	gpio_request(GPIO_FN_PORT48_KEYIN0_PU, NULL);
	gpio_request(GPIO_FN_PORT49_KEYIN1_PU, NULL);
	gpio_request(GPIO_FN_PORT50_KEYIN2_PU, NULL);
	gpio_request(GPIO_FN_PORT55_KEYIN3_PU, NULL);
	gpio_request(GPIO_FN_PORT56_KEYIN4_PU, NULL);
	gpio_request(GPIO_FN_PORT57_KEYIN5_PU, NULL);
	gpio_request(GPIO_FN_PORT58_KEYIN6_PU, NULL);

	/* FLCTL */
	gpio_request(GPIO_FN_FCE0, NULL);
	gpio_request(GPIO_FN_D0_ED0_NAF0, NULL);
	gpio_request(GPIO_FN_D1_ED1_NAF1, NULL);
	gpio_request(GPIO_FN_D2_ED2_NAF2, NULL);
	gpio_request(GPIO_FN_D3_ED3_NAF3, NULL);
	gpio_request(GPIO_FN_D4_ED4_NAF4, NULL);
	gpio_request(GPIO_FN_D5_ED5_NAF5, NULL);
	gpio_request(GPIO_FN_D6_ED6_NAF6, NULL);
	gpio_request(GPIO_FN_D7_ED7_NAF7, NULL);
	gpio_request(GPIO_FN_D8_ED8_NAF8, NULL);
	gpio_request(GPIO_FN_D9_ED9_NAF9, NULL);
	gpio_request(GPIO_FN_D10_ED10_NAF10, NULL);
	gpio_request(GPIO_FN_D11_ED11_NAF11, NULL);
	gpio_request(GPIO_FN_D12_ED12_NAF12, NULL);
	gpio_request(GPIO_FN_D13_ED13_NAF13, NULL);
	gpio_request(GPIO_FN_D14_ED14_NAF14, NULL);
	gpio_request(GPIO_FN_D15_ED15_NAF15, NULL);
	gpio_request(GPIO_FN_WE0_XWR0_FWE, NULL);
	gpio_request(GPIO_FN_FRB, NULL);
	/* FOE, FCDE, FSC on dedicated pins */
	__raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);

	sh7367_add_standard_devices();

	platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
+57 −0
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#include <linux/mtd/physmap.h>
#include <linux/usb/r8a66597.h>
#include <linux/io.h>
#include <linux/input.h>
#include <linux/input/sh_keysc.h>
#include <linux/gpio.h>
#include <mach/sh7377.h>
#include <mach/common.h>
@@ -128,9 +130,49 @@ static struct platform_device usb_host_device = {
	.resource	= usb_host_resources,
};

/* KEYSC */
static struct sh_keysc_info keysc_info = {
	.mode		= SH_KEYSC_MODE_5,
	.scan_timing	= 3,
	.delay		= 100,
	.keycodes = {
		KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F,
		KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L,
		KEY_M, KEY_N, KEY_U, KEY_P, KEY_Q, KEY_R,
		KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X,
		KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, KEY_WAKEUP, KEY_COFFEE,
		KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5,
		KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER,
	},
};

static struct resource keysc_resources[] = {
	[0] = {
		.name	= "KEYSC",
		.start  = 0xe61b0000,
		.end    = 0xe61b000f,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start  = 79,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct platform_device keysc_device = {
	.name           = "sh_keysc",
	.id             = 0, /* keysc0 clock */
	.num_resources  = ARRAY_SIZE(keysc_resources),
	.resource       = keysc_resources,
	.dev	= {
		.platform_data	= &keysc_info,
	},
};

static struct platform_device *g4evm_devices[] __initdata = {
	&nor_flash_device,
	&usb_host_device,
	&keysc_device,
};

static struct map_desc g4evm_io_desc[] __initdata = {
@@ -196,6 +238,21 @@ static void __init g4evm_init(void)
	__raw_writew(0x6010, 0xe60581c6);       /* CGPOSR */
	__raw_writew(0x8a0a, 0xe605810c);       /* USBCR2 */

	/* KEYSC @ CN31 */
	gpio_request(GPIO_FN_PORT60_KEYOUT5, NULL);
	gpio_request(GPIO_FN_PORT61_KEYOUT4, NULL);
	gpio_request(GPIO_FN_PORT62_KEYOUT3, NULL);
	gpio_request(GPIO_FN_PORT63_KEYOUT2, NULL);
	gpio_request(GPIO_FN_PORT64_KEYOUT1, NULL);
	gpio_request(GPIO_FN_PORT65_KEYOUT0, NULL);
	gpio_request(GPIO_FN_PORT66_KEYIN0_PU, NULL);
	gpio_request(GPIO_FN_PORT67_KEYIN1_PU, NULL);
	gpio_request(GPIO_FN_PORT68_KEYIN2_PU, NULL);
	gpio_request(GPIO_FN_PORT69_KEYIN3_PU, NULL);
	gpio_request(GPIO_FN_PORT70_KEYIN4_PU, NULL);
	gpio_request(GPIO_FN_PORT71_KEYIN5_PU, NULL);
	gpio_request(GPIO_FN_PORT72_KEYIN6_PU, NULL);

	sh7377_add_standard_devices();

	platform_add_devices(g4evm_devices, ARRAY_SIZE(g4evm_devices));
Loading