Loading MAINTAINERS +17 −5 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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/ Loading Loading @@ -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 Loading arch/arm/kernel/perf_event.c +2 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) { Loading arch/arm/mach-shmobile/board-ap4evb.c +32 −0 Original line number Diff line number Diff line Loading @@ -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 = { Loading Loading @@ -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)); Loading arch/arm/mach-shmobile/board-g3evm.c +122 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 = { Loading Loading @@ -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)); Loading arch/arm/mach-shmobile/board-g4evm.c +57 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 = { Loading Loading @@ -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 Loading
MAINTAINERS +17 −5 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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/ Loading Loading @@ -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 Loading
arch/arm/kernel/perf_event.c +2 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) { Loading
arch/arm/mach-shmobile/board-ap4evb.c +32 −0 Original line number Diff line number Diff line Loading @@ -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 = { Loading Loading @@ -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)); Loading
arch/arm/mach-shmobile/board-g3evm.c +122 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 = { Loading Loading @@ -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)); Loading
arch/arm/mach-shmobile/board-g4evm.c +57 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 = { Loading Loading @@ -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