aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sh/Kconfig47
-rw-r--r--arch/sh/Makefile2
-rw-r--r--arch/sh/boards/renesas/r7780rp/Kconfig18
-rw-r--r--arch/sh/boards/renesas/r7780rp/Makefile6
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq-r7780rp.c21
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq-r7785rp.c29
-rw-r--r--arch/sh/boards/renesas/r7780rp/irq.c25
-rw-r--r--arch/sh/boards/renesas/r7780rp/setup.c74
-rw-r--r--arch/sh/configs/r7785rp_defconfig1334
-rw-r--r--arch/sh/drivers/Kconfig10
-rw-r--r--arch/sh/drivers/pci/Makefile3
-rw-r--r--arch/sh/drivers/pci/ops-r7780rp.c37
-rw-r--r--arch/sh/drivers/pci/pci-sh4.h2
-rw-r--r--arch/sh/drivers/pci/pci-sh7780.c17
-rw-r--r--arch/sh/drivers/pci/pci-sh7780.h3
-rw-r--r--arch/sh/kernel/cpu/irq/intc2.c3
-rw-r--r--arch/sh/kernel/cpu/sh4/probe.c8
-rw-r--r--arch/sh/kernel/cpu/sh4a/Makefile2
-rw-r--r--arch/sh/kernel/cpu/sh4a/clock-sh7785.c162
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7785.c98
-rw-r--r--arch/sh/kernel/timers/timer-tmu.c4
-rw-r--r--arch/sh/tools/mach-types1
-rw-r--r--drivers/serial/sh-sci.c20
-rw-r--r--drivers/serial/sh-sci.h40
-rw-r--r--include/asm-sh/cpu-sh4/freq.h4
-rw-r--r--include/asm-sh/pci.h2
-rw-r--r--include/asm-sh/r7780rp.h68
27 files changed, 1896 insertions, 144 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 51d9d0ab39c6..9932d1aa8494 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -197,12 +197,8 @@ config SH_RTS7751R2D
197 Select RTS7751R2D if configuring for a Renesas Technology 197 Select RTS7751R2D if configuring for a Renesas Technology
198 Sales SH-Graphics board. 198 Sales SH-Graphics board.
199 199
200config SH_R7780RP 200config SH_HIGHLANDER
201 bool "R7780RP-1" 201 bool "Highlander"
202 select CPU_SUBTYPE_SH7780
203 help
204 Select R7780RP-1 if configuring for a Renesas Solutions
205 HIGHLANDER board.
206 202
207config SH_EDOSK7705 203config SH_EDOSK7705
208 bool "EDOSK7705" 204 bool "EDOSK7705"
@@ -262,6 +258,10 @@ config SH_UNKNOWN
262 258
263endchoice 259endchoice
264 260
261source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
262source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
263source "arch/sh/boards/renesas/r7780rp/Kconfig"
264
265source "arch/sh/mm/Kconfig" 265source "arch/sh/mm/Kconfig"
266 266
267config CF_ENABLER 267config CF_ENABLER
@@ -412,8 +412,9 @@ config CPU_HAS_PTEA
412 412
413endmenu 413endmenu
414 414
415menu "Timer support" 415menu "Timer and clock configuration"
416depends on !GENERIC_TIME 416
417if !GENERIC_TIME
417 418
418config SH_TMU 419config SH_TMU
419 bool "TMU timer support" 420 bool "TMU timer support"
@@ -436,17 +437,11 @@ config SH_MTU2
436 help 437 help
437 This enables the use of the MTU2 as the system timer. 438 This enables the use of the MTU2 as the system timer.
438 439
439endmenu 440endif
440
441source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
442
443source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
444
445source "arch/sh/boards/renesas/r7780rp/Kconfig"
446 441
447config SH_TIMER_IRQ 442config SH_TIMER_IRQ
448 int 443 int
449 default "28" if CPU_SUBTYPE_SH7780 444 default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
450 default "86" if CPU_SUBTYPE_SH7619 445 default "86" if CPU_SUBTYPE_SH7619
451 default "140" if CPU_SUBTYPE_SH7206 446 default "140" if CPU_SUBTYPE_SH7206
452 default "16" 447 default "16"
@@ -476,7 +471,8 @@ config SH_PCLK_FREQ
476 default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \ 471 default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \
477 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \ 472 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
478 CPU_SUBTYPE_SH7206 473 CPU_SUBTYPE_SH7206
479 default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 474 default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 || \
475 CPU_SUBTYPE_SH7785
480 default "60000000" if CPU_SUBTYPE_SH7751 476 default "60000000" if CPU_SUBTYPE_SH7751
481 default "66000000" if CPU_SUBTYPE_SH4_202 477 default "66000000" if CPU_SUBTYPE_SH4_202
482 help 478 help
@@ -491,6 +487,8 @@ config SH_CLK_MD
491 help 487 help
492 MD2 - MD0 pin setting. 488 MD2 - MD0 pin setting.
493 489
490endmenu
491
494menu "CPU Frequency scaling" 492menu "CPU Frequency scaling"
495 493
496source "drivers/cpufreq/Kconfig" 494source "drivers/cpufreq/Kconfig"
@@ -509,21 +507,6 @@ config SH_CPU_FREQ
509 507
510endmenu 508endmenu
511 509
512source "arch/sh/drivers/dma/Kconfig"
513
514source "arch/sh/cchips/Kconfig"
515
516config HEARTBEAT
517 bool "Heartbeat LED"
518 depends on SH_MPC1211 || SH_SH03 || \
519 SOLUTION_ENGINE || \
520 SH_RTS7751R2D || SH_SH4202_MICRODEV || SH_LANDISK || \
521 SH_R7780RP
522 help
523 Use the power-on LED on your machine as a load meter. The exact
524 behavior is platform-dependent, but normally the flash frequency is
525 a hyperbolic function of the 5-minute load average.
526
527source "arch/sh/drivers/Kconfig" 510source "arch/sh/drivers/Kconfig"
528 511
529endmenu 512endmenu
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index 0fadde283368..7eef74b1cb7b 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -102,7 +102,7 @@ machdir-$(CONFIG_SH_HS7751RVOIP) := renesas/hs7751rvoip
102machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d 102machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d
103machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh 103machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh
104machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705 104machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705
105machdir-$(CONFIG_SH_R7780RP) := renesas/r7780rp 105machdir-$(CONFIG_SH_HIGHLANDER) := renesas/r7780rp
106machdir-$(CONFIG_SH_7710VOIPGW) := renesas/sh7710voipgw 106machdir-$(CONFIG_SH_7710VOIPGW) := renesas/sh7710voipgw
107machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev 107machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev
108machdir-$(CONFIG_SH_LANDISK) := landisk 108machdir-$(CONFIG_SH_LANDISK) := landisk
diff --git a/arch/sh/boards/renesas/r7780rp/Kconfig b/arch/sh/boards/renesas/r7780rp/Kconfig
index c26d9813d239..9fb11641fe13 100644
--- a/arch/sh/boards/renesas/r7780rp/Kconfig
+++ b/arch/sh/boards/renesas/r7780rp/Kconfig
@@ -1,14 +1,24 @@
1if SH_R7780RP 1if SH_HIGHLANDER
2 2
3menu "R7780RP options" 3choice
4 prompt "Highlander options"
5 default SH_R7780MP
6
7config SH_R7780RP
8 bool "R7780RP-1 board support"
9 select CPU_SUBTYPE_SH7780
4 10
5config SH_R7780MP 11config SH_R7780MP
6 bool "R7780MP board support" 12 bool "R7780MP board support"
7 default y 13 select CPU_SUBTYPE_SH7780
8 help 14 help
9 Selecting this option will enable support for the mass-production 15 Selecting this option will enable support for the mass-production
10 version of the R7780RP. If in doubt, say Y. 16 version of the R7780RP. If in doubt, say Y.
11 17
12endmenu 18config SH_R7785RP
19 bool "R7785RP board support"
20 select CPU_SUBTYPE_SH7785
21
22endchoice
13 23
14endif 24endif
diff --git a/arch/sh/boards/renesas/r7780rp/Makefile b/arch/sh/boards/renesas/r7780rp/Makefile
index ed5f5a9a3b3e..609e5d50dde8 100644
--- a/arch/sh/boards/renesas/r7780rp/Makefile
+++ b/arch/sh/boards/renesas/r7780rp/Makefile
@@ -1,7 +1,7 @@
1# 1#
2# Makefile for the R7780RP-1 specific parts of the kernel 2# Makefile for the R7780RP-1 specific parts of the kernel
3# 3#
4 4irqinit-y := irq-r7780rp.o
5obj-y := setup.o irq.o 5irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o
6
7obj-$(CONFIG_PUSH_SWITCH) += psw.o 6obj-$(CONFIG_PUSH_SWITCH) += psw.o
7obj-y := setup.o irq.o $(irqinit-y)
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c
new file mode 100644
index 000000000000..f5f358746c9e
--- /dev/null
+++ b/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c
@@ -0,0 +1,21 @@
1/*
2 * Renesas Solutions Highlander R7780RP-1 Support.
3 *
4 * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
5 * Copyright (C) 2006 Paul Mundt
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details.
10 */
11#include <linux/init.h>
12#include <asm/io.h>
13#include <asm/r7780rp.h>
14
15void __init highlander_init_irq(void)
16{
17 int i;
18
19 for (i = 0; i < 15; i++)
20 make_r7780rp_irq(i);
21}
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c
new file mode 100644
index 000000000000..dd6ec4ce44dc
--- /dev/null
+++ b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c
@@ -0,0 +1,29 @@
1/*
2 * Renesas Solutions Highlander R7780RP-1 Support.
3 *
4 * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
5 * Copyright (C) 2006 Paul Mundt
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details.
10 */
11#include <linux/init.h>
12#include <asm/io.h>
13#include <asm/r7780rp.h>
14
15void __init highlander_init_irq(void)
16{
17 ctrl_outw(0x0000, PA_IRLSSR1); /* FPGA IRLSSR1(CF_CD clear) */
18
19 /* Setup the FPGA IRL */
20 ctrl_outw(0x0000, PA_IRLPRA); /* FPGA IRLA */
21 ctrl_outw(0xe598, PA_IRLPRB); /* FPGA IRLB */
22 ctrl_outw(0x7060, PA_IRLPRC); /* FPGA IRLC */
23 ctrl_outw(0x0000, PA_IRLPRD); /* FPGA IRLD */
24 ctrl_outw(0x4321, PA_IRLPRE); /* FPGA IRLE */
25 ctrl_outw(0x0000, PA_IRLPRF); /* FPGA IRLF */
26
27 make_r7780rp_irq(1); /* CF card */
28 make_r7780rp_irq(10); /* On-board ethernet */
29}
diff --git a/arch/sh/boards/renesas/r7780rp/irq.c b/arch/sh/boards/renesas/r7780rp/irq.c
index cc381e197783..e0b8eb52f376 100644
--- a/arch/sh/boards/renesas/r7780rp/irq.c
+++ b/arch/sh/boards/renesas/r7780rp/irq.c
@@ -14,10 +14,12 @@
14#include <linux/io.h> 14#include <linux/io.h>
15#include <asm/r7780rp.h> 15#include <asm/r7780rp.h>
16 16
17#ifdef CONFIG_SH_R7780MP 17#ifdef CONFIG_SH_R7780RP
18static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0};
19#else
20static int mask_pos[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 5, 6, 4, 0, 1, 2, 0}; 18static int mask_pos[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 5, 6, 4, 0, 1, 2, 0};
19#elif defined(CONFIG_SH_R7780MP)
20static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0};
21#elif defined(CONFIG_SH_R7785RP)
22static int mask_pos[] = {2, 11, 2, 2, 2, 2, 9, 8, 7, 5, 10, 2, 2, 2, 2, 2};
21#endif 23#endif
22 24
23static void enable_r7780rp_irq(unsigned int irq) 25static void enable_r7780rp_irq(unsigned int irq)
@@ -40,17 +42,10 @@ static struct irq_chip r7780rp_irq_chip __read_mostly = {
40 .mask_ack = disable_r7780rp_irq, 42 .mask_ack = disable_r7780rp_irq,
41}; 43};
42 44
43/* 45void make_r7780rp_irq(unsigned int irq)
44 * Initialize IRQ setting
45 */
46void __init init_r7780rp_IRQ(void)
47{ 46{
48 int i; 47 disable_irq_nosync(irq);
49 48 set_irq_chip_and_handler_name(irq, &r7780rp_irq_chip,
50 for (i = 0; i < 15; i++) { 49 handle_level_irq, "level");
51 disable_irq_nosync(i); 50 enable_r7780rp_irq(irq);
52 set_irq_chip_and_handler_name(i, &r7780rp_irq_chip,
53 handle_level_irq, "level");
54 enable_r7780rp_irq(i);
55 }
56} 51}
diff --git a/arch/sh/boards/renesas/r7780rp/setup.c b/arch/sh/boards/renesas/r7780rp/setup.c
index 2faba6679e64..6af0cc35ceb7 100644
--- a/arch/sh/boards/renesas/r7780rp/setup.c
+++ b/arch/sh/boards/renesas/r7780rp/setup.c
@@ -1,10 +1,13 @@
1/* 1/*
2 * arch/sh/boards/renesas/r7780rp/setup.c 2 * arch/sh/boards/renesas/r7780rp/setup.c
3 * 3 *
4 * Renesas Solutions Highlander Support.
5 *
4 * Copyright (C) 2002 Atom Create Engineering Co., Ltd. 6 * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
5 * Copyright (C) 2005 - 2007 Paul Mundt 7 * Copyright (C) 2005 - 2007 Paul Mundt
6 * 8 *
7 * Renesas Solutions Highlander R7780RP-1 Support. 9 * This contains support for the R7780RP-1, R7780MP, and R7785RP
10 * Highlander modules.
8 * 11 *
9 * This file is subject to the terms and conditions of the GNU General Public 12 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file "COPYING" in the main directory of this archive 13 * License. See the file "COPYING" in the main directory of this archive
@@ -18,32 +21,6 @@
18#include <asm/clock.h> 21#include <asm/clock.h>
19#include <asm/io.h> 22#include <asm/io.h>
20 23
21extern void init_r7780rp_IRQ(void);
22
23static struct resource m66596_usb_host_resources[] = {
24 [0] = {
25 .start = 0xa4800000,
26 .end = 0xa4ffffff,
27 .flags = IORESOURCE_MEM,
28 },
29 [1] = {
30 .start = 6, /* irq number */
31 .end = 6,
32 .flags = IORESOURCE_IRQ,
33 },
34};
35
36static struct platform_device m66596_usb_host_device = {
37 .name = "m66596-hcd",
38 .id = 0,
39 .dev = {
40 .dma_mask = NULL, /* don't use dma */
41 .coherent_dma_mask = 0xffffffff,
42 },
43 .num_resources = ARRAY_SIZE(m66596_usb_host_resources),
44 .resource = m66596_usb_host_resources,
45};
46
47static struct resource cf_ide_resources[] = { 24static struct resource cf_ide_resources[] = {
48 [0] = { 25 [0] = {
49 .start = PA_AREA5_IO + 0x1000, 26 .start = PA_AREA5_IO + 0x1000,
@@ -56,10 +33,10 @@ static struct resource cf_ide_resources[] = {
56 .flags = IORESOURCE_MEM, 33 .flags = IORESOURCE_MEM,
57 }, 34 },
58 [2] = { 35 [2] = {
59#ifdef CONFIG_SH_R7780MP 36#ifdef CONFIG_SH_R7780RP
60 .start = 1,
61#else
62 .start = 4, 37 .start = 4,
38#else
39 .start = 1,
63#endif 40#endif
64 .flags = IORESOURCE_IRQ, 41 .flags = IORESOURCE_IRQ,
65 }, 42 },
@@ -92,15 +69,18 @@ static struct resource heartbeat_resources[] = {
92static struct platform_device heartbeat_device = { 69static struct platform_device heartbeat_device = {
93 .name = "heartbeat", 70 .name = "heartbeat",
94 .id = -1, 71 .id = -1,
72
73 /* R7785RP has a slightly more sensible FPGA.. */
74#ifndef CONFIG_SH_R7785RP
95 .dev = { 75 .dev = {
96 .platform_data = heartbeat_bit_pos, 76 .platform_data = heartbeat_bit_pos,
97 }, 77 },
78#endif
98 .num_resources = ARRAY_SIZE(heartbeat_resources), 79 .num_resources = ARRAY_SIZE(heartbeat_resources),
99 .resource = heartbeat_resources, 80 .resource = heartbeat_resources,
100}; 81};
101 82
102static struct platform_device *r7780rp_devices[] __initdata = { 83static struct platform_device *r7780rp_devices[] __initdata = {
103 &m66596_usb_host_device,
104 &cf_ide_device, 84 &cf_ide_device,
105 &heartbeat_device, 85 &heartbeat_device,
106}; 86};
@@ -110,6 +90,7 @@ static int __init r7780rp_devices_setup(void)
110 return platform_add_devices(r7780rp_devices, 90 return platform_add_devices(r7780rp_devices,
111 ARRAY_SIZE(r7780rp_devices)); 91 ARRAY_SIZE(r7780rp_devices));
112} 92}
93device_initcall(r7780rp_devices_setup);
113 94
114/* 95/*
115 * Platform specific clocks 96 * Platform specific clocks
@@ -140,22 +121,22 @@ static struct clk *r7780rp_clocks[] = {
140 121
141static void r7780rp_power_off(void) 122static void r7780rp_power_off(void)
142{ 123{
143#ifdef CONFIG_SH_R7780MP 124 if (mach_is_r7780mp() || mach_is_r7785rp())
144 ctrl_outw(0x0001, PA_POFF); 125 ctrl_outw(0x0001, PA_POFF);
145#endif
146} 126}
147 127
148/* 128/*
149 * Initialize the board 129 * Initialize the board
150 */ 130 */
151static void __init r7780rp_setup(char **cmdline_p) 131static void __init highlander_setup(char **cmdline_p)
152{ 132{
153 u16 ver = ctrl_inw(PA_VERREG); 133 u16 ver = ctrl_inw(PA_VERREG);
154 int i; 134 int i;
155 135
156 device_initcall(r7780rp_devices_setup); 136 printk(KERN_INFO "Renesas Solutions Highlander %s support.\n",
157 137 mach_is_r7780rp() ? "R7780RP-1" :
158 printk(KERN_INFO "Renesas Solutions Highlander R7780RP-1 support.\n"); 138 mach_is_r7780mp() ? "R7780MP" :
139 "R7785RP");
159 140
160 printk(KERN_INFO "Board version: %d (revision %d), " 141 printk(KERN_INFO "Board version: %d (revision %d), "
161 "FPGA version: %d (revision %d)\n", 142 "FPGA version: %d (revision %d)\n",
@@ -173,9 +154,10 @@ static void __init r7780rp_setup(char **cmdline_p)
173 } 154 }
174 155
175 ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */ 156 ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */
176#ifndef CONFIG_SH_R7780MP 157
177 ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */ 158 if (mach_is_r7780rp())
178#endif 159 ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */
160
179 ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL); /* Si13112 */ 161 ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL); /* Si13112 */
180 162
181 pm_power_off = r7780rp_power_off; 163 pm_power_off = r7780rp_power_off;
@@ -184,10 +166,10 @@ static void __init r7780rp_setup(char **cmdline_p)
184/* 166/*
185 * The Machine Vector 167 * The Machine Vector
186 */ 168 */
187struct sh_machine_vector mv_r7780rp __initmv = { 169struct sh_machine_vector mv_highlander __initmv = {
188 .mv_name = "Highlander R7780RP-1", 170 .mv_name = "Highlander",
189 .mv_setup = r7780rp_setup,
190 .mv_nr_irqs = 109, 171 .mv_nr_irqs = 109,
191 .mv_init_irq = init_r7780rp_IRQ, 172 .mv_setup = highlander_setup,
173 .mv_init_irq = highlander_init_irq,
192}; 174};
193ALIAS_MV(r7780rp) 175ALIAS_MV(highlander)
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
new file mode 100644
index 000000000000..0f5ec649daf8
--- /dev/null
+++ b/arch/sh/configs/r7785rp_defconfig
@@ -0,0 +1,1334 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.21-rc3
4# Mon Mar 12 14:26:33 2007
5#
6CONFIG_SUPERH=y
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8CONFIG_GENERIC_BUG=y
9CONFIG_GENERIC_FIND_NEXT_BIT=y
10CONFIG_GENERIC_HWEIGHT=y
11CONFIG_GENERIC_HARDIRQS=y
12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y
14# CONFIG_GENERIC_TIME is not set
15CONFIG_STACKTRACE_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17# CONFIG_ARCH_HAS_ILOG2_U32 is not set
18# CONFIG_ARCH_HAS_ILOG2_U64 is not set
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20
21#
22# Code maturity level options
23#
24CONFIG_EXPERIMENTAL=y
25CONFIG_BROKEN_ON_SMP=y
26CONFIG_LOCK_KERNEL=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SWAP=y
35CONFIG_SYSVIPC=y
36# CONFIG_IPC_NS is not set
37CONFIG_SYSVIPC_SYSCTL=y
38# CONFIG_POSIX_MQUEUE is not set
39CONFIG_BSD_PROCESS_ACCT=y
40# CONFIG_BSD_PROCESS_ACCT_V3 is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_UTS_NS is not set
43# CONFIG_AUDIT is not set
44CONFIG_IKCONFIG=y
45CONFIG_IKCONFIG_PROC=y
46# CONFIG_SYSFS_DEPRECATED is not set
47# CONFIG_RELAY is not set
48# CONFIG_BLK_DEV_INITRD is not set
49CONFIG_CC_OPTIMIZE_FOR_SIZE=y
50CONFIG_SYSCTL=y
51CONFIG_EMBEDDED=y
52CONFIG_UID16=y
53# CONFIG_SYSCTL_SYSCALL is not set
54CONFIG_KALLSYMS=y
55CONFIG_KALLSYMS_ALL=y
56# CONFIG_KALLSYMS_EXTRA_PASS is not set
57CONFIG_HOTPLUG=y
58CONFIG_PRINTK=y
59CONFIG_BUG=y
60CONFIG_ELF_CORE=y
61CONFIG_BASE_FULL=y
62# CONFIG_FUTEX is not set
63# CONFIG_EPOLL is not set
64CONFIG_SHMEM=y
65CONFIG_SLAB=y
66CONFIG_VM_EVENT_COUNTERS=y
67# CONFIG_TINY_SHMEM is not set
68CONFIG_BASE_SMALL=0
69# CONFIG_SLOB is not set
70
71#
72# Loadable module support
73#
74CONFIG_MODULES=y
75CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set
78# CONFIG_MODULE_SRCVERSION_ALL is not set
79CONFIG_KMOD=y
80
81#
82# Block layer
83#
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93# CONFIG_IOSCHED_AS is not set
94# CONFIG_IOSCHED_DEADLINE is not set
95# CONFIG_IOSCHED_CFQ is not set
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98# CONFIG_DEFAULT_CFQ is not set
99CONFIG_DEFAULT_NOOP=y
100CONFIG_DEFAULT_IOSCHED="noop"
101
102#
103# System type
104#
105# CONFIG_SH_SOLUTION_ENGINE is not set
106# CONFIG_SH_7751_SOLUTION_ENGINE is not set
107# CONFIG_SH_7300_SOLUTION_ENGINE is not set
108# CONFIG_SH_7343_SOLUTION_ENGINE is not set
109# CONFIG_SH_73180_SOLUTION_ENGINE is not set
110# CONFIG_SH_7751_SYSTEMH is not set
111# CONFIG_SH_HP6XX is not set
112# CONFIG_SH_SATURN is not set
113# CONFIG_SH_DREAMCAST is not set
114# CONFIG_SH_MPC1211 is not set
115# CONFIG_SH_SH03 is not set
116# CONFIG_SH_SECUREEDGE5410 is not set
117# CONFIG_SH_HS7751RVOIP is not set
118# CONFIG_SH_7710VOIPGW is not set
119# CONFIG_SH_RTS7751R2D is not set
120CONFIG_SH_HIGHLANDER=y
121# CONFIG_SH_EDOSK7705 is not set
122# CONFIG_SH_SH4202_MICRODEV is not set
123# CONFIG_SH_LANDISK is not set
124# CONFIG_SH_TITAN is not set
125# CONFIG_SH_SHMIN is not set
126# CONFIG_SH_7206_SOLUTION_ENGINE is not set
127# CONFIG_SH_7619_SOLUTION_ENGINE is not set
128# CONFIG_SH_UNKNOWN is not set
129# CONFIG_SH_R7780RP is not set
130# CONFIG_SH_R7780MP is not set
131CONFIG_SH_R7785RP=y
132
133#
134# Processor selection
135#
136CONFIG_CPU_SH4=y
137CONFIG_CPU_SH4A=y
138CONFIG_CPU_SHX2=y
139
140#
141# SH-2 Processor Support
142#
143# CONFIG_CPU_SUBTYPE_SH7604 is not set
144# CONFIG_CPU_SUBTYPE_SH7619 is not set
145
146#
147# SH-2A Processor Support
148#
149# CONFIG_CPU_SUBTYPE_SH7206 is not set
150
151#
152# SH-3 Processor Support
153#
154# CONFIG_CPU_SUBTYPE_SH7300 is not set
155# CONFIG_CPU_SUBTYPE_SH7705 is not set
156# CONFIG_CPU_SUBTYPE_SH7706 is not set
157# CONFIG_CPU_SUBTYPE_SH7707 is not set
158# CONFIG_CPU_SUBTYPE_SH7708 is not set
159# CONFIG_CPU_SUBTYPE_SH7709 is not set
160# CONFIG_CPU_SUBTYPE_SH7710 is not set
161
162#
163# SH-4 Processor Support
164#
165# CONFIG_CPU_SUBTYPE_SH7750 is not set
166# CONFIG_CPU_SUBTYPE_SH7091 is not set
167# CONFIG_CPU_SUBTYPE_SH7750R is not set
168# CONFIG_CPU_SUBTYPE_SH7750S is not set
169# CONFIG_CPU_SUBTYPE_SH7751 is not set
170# CONFIG_CPU_SUBTYPE_SH7751R is not set
171# CONFIG_CPU_SUBTYPE_SH7760 is not set
172# CONFIG_CPU_SUBTYPE_SH4_202 is not set
173
174#
175# ST40 Processor Support
176#
177# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
178# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
179
180#
181# SH-4A Processor Support
182#
183# CONFIG_CPU_SUBTYPE_SH7770 is not set
184# CONFIG_CPU_SUBTYPE_SH7780 is not set
185CONFIG_CPU_SUBTYPE_SH7785=y
186
187#
188# SH4AL-DSP Processor Support
189#
190# CONFIG_CPU_SUBTYPE_SH73180 is not set
191# CONFIG_CPU_SUBTYPE_SH7343 is not set
192# CONFIG_CPU_SUBTYPE_SH7722 is not set
193
194#
195# Memory management options
196#
197CONFIG_MMU=y
198CONFIG_PAGE_OFFSET=0x80000000
199CONFIG_MEMORY_START=0x08000000
200CONFIG_MEMORY_SIZE=0x08000000
201CONFIG_32BIT=y
202# CONFIG_X2TLB is not set
203CONFIG_VSYSCALL=y
204CONFIG_PAGE_SIZE_4KB=y
205# CONFIG_PAGE_SIZE_8KB is not set
206# CONFIG_PAGE_SIZE_64KB is not set
207# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
208# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
209CONFIG_HUGETLB_PAGE_SIZE_1MB=y
210# CONFIG_HUGETLB_PAGE_SIZE_4MB is not set
211# CONFIG_HUGETLB_PAGE_SIZE_64MB is not set
212CONFIG_SELECT_MEMORY_MODEL=y
213CONFIG_FLATMEM_MANUAL=y
214# CONFIG_DISCONTIGMEM_MANUAL is not set
215# CONFIG_SPARSEMEM_MANUAL is not set
216CONFIG_FLATMEM=y
217CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_STATIC is not set
219CONFIG_SPLIT_PTLOCK_CPUS=4
220# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=0
222
223#
224# Cache configuration
225#
226# CONFIG_SH_DIRECT_MAPPED is not set
227# CONFIG_SH_WRITETHROUGH is not set
228# CONFIG_SH_OCRAM is not set
229
230#
231# Processor features
232#
233CONFIG_CPU_LITTLE_ENDIAN=y
234# CONFIG_CPU_BIG_ENDIAN is not set
235CONFIG_SH_FPU=y
236# CONFIG_SH_DSP is not set
237CONFIG_SH_STORE_QUEUES=y
238CONFIG_CPU_HAS_INTEVT=y
239CONFIG_CPU_HAS_INTC2_IRQ=y
240CONFIG_CPU_HAS_SR_RB=y
241CONFIG_CPU_HAS_PTEA=y
242
243#
244# Timer and clock configuration
245#
246CONFIG_SH_TMU=y
247CONFIG_SH_TIMER_IRQ=28
248CONFIG_NO_IDLE_HZ=y
249CONFIG_SH_PCLK_FREQ=50000000
250
251#
252# CPU Frequency scaling
253#
254# CONFIG_CPU_FREQ is not set
255
256#
257# DMA support
258#
259# CONFIG_SH_DMA is not set
260
261#
262# Companion Chips
263#
264# CONFIG_HD6446X_SERIES is not set
265
266#
267# Additional SuperH Device Drivers
268#
269CONFIG_HEARTBEAT=y
270CONFIG_PUSH_SWITCH=y
271
272#
273# Kernel features
274#
275# CONFIG_HZ_100 is not set
276CONFIG_HZ_250=y
277# CONFIG_HZ_300 is not set
278# CONFIG_HZ_1000 is not set
279CONFIG_HZ=250
280CONFIG_KEXEC=y
281# CONFIG_SMP is not set
282# CONFIG_PREEMPT_NONE is not set
283# CONFIG_PREEMPT_VOLUNTARY is not set
284CONFIG_PREEMPT=y
285CONFIG_PREEMPT_BKL=y
286
287#
288# Boot options
289#
290CONFIG_ZERO_PAGE_OFFSET=0x00001000
291CONFIG_BOOT_LINK_OFFSET=0x00800000
292# CONFIG_UBC_WAKEUP is not set
293CONFIG_CMDLINE_BOOL=y
294CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
295
296#
297# Bus options
298#
299CONFIG_PCI=y
300CONFIG_SH_PCIDMA_NONCOHERENT=y
301CONFIG_PCI_AUTO=y
302CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
303# CONFIG_PCI_DEBUG is not set
304
305#
306# PCCARD (PCMCIA/CardBus) support
307#
308# CONFIG_PCCARD is not set
309
310#
311# PCI Hotplug Support
312#
313# CONFIG_HOTPLUG_PCI is not set
314
315#
316# Executable file formats
317#
318CONFIG_BINFMT_ELF=y
319# CONFIG_BINFMT_FLAT is not set
320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326
327#
328# Networking
329#
330CONFIG_NET=y
331
332#
333# Networking options
334#
335# CONFIG_NETDEBUG is not set
336CONFIG_PACKET=y
337# CONFIG_PACKET_MMAP is not set
338CONFIG_UNIX=y
339CONFIG_XFRM=y
340# CONFIG_XFRM_USER is not set
341# CONFIG_XFRM_SUB_POLICY is not set
342# CONFIG_XFRM_MIGRATE is not set
343# CONFIG_NET_KEY is not set
344CONFIG_INET=y
345# CONFIG_IP_MULTICAST is not set
346CONFIG_IP_ADVANCED_ROUTER=y
347CONFIG_ASK_IP_FIB_HASH=y
348# CONFIG_IP_FIB_TRIE is not set
349CONFIG_IP_FIB_HASH=y
350# CONFIG_IP_MULTIPLE_TABLES is not set
351# CONFIG_IP_ROUTE_MULTIPATH is not set
352# CONFIG_IP_ROUTE_VERBOSE is not set
353CONFIG_IP_PNP=y
354CONFIG_IP_PNP_DHCP=y
355# CONFIG_IP_PNP_BOOTP is not set
356# CONFIG_IP_PNP_RARP is not set
357# CONFIG_NET_IPIP is not set
358# CONFIG_NET_IPGRE is not set
359# CONFIG_ARPD is not set
360# CONFIG_SYN_COOKIES is not set
361# CONFIG_INET_AH is not set
362# CONFIG_INET_ESP is not set
363# CONFIG_INET_IPCOMP is not set
364# CONFIG_INET_XFRM_TUNNEL is not set
365# CONFIG_INET_TUNNEL is not set
366CONFIG_INET_XFRM_MODE_TRANSPORT=y
367CONFIG_INET_XFRM_MODE_TUNNEL=y
368CONFIG_INET_XFRM_MODE_BEET=y
369CONFIG_INET_DIAG=y
370CONFIG_INET_TCP_DIAG=y
371# CONFIG_TCP_CONG_ADVANCED is not set
372CONFIG_TCP_CONG_CUBIC=y
373CONFIG_DEFAULT_TCP_CONG="cubic"
374# CONFIG_TCP_MD5SIG is not set
375# CONFIG_IPV6 is not set
376# CONFIG_INET6_XFRM_TUNNEL is not set
377# CONFIG_INET6_TUNNEL is not set
378# CONFIG_NETWORK_SECMARK is not set
379# CONFIG_NETFILTER is not set
380
381#
382# DCCP Configuration (EXPERIMENTAL)
383#
384# CONFIG_IP_DCCP is not set
385
386#
387# SCTP Configuration (EXPERIMENTAL)
388#
389# CONFIG_IP_SCTP is not set
390
391#
392# TIPC Configuration (EXPERIMENTAL)
393#
394# CONFIG_TIPC is not set
395# CONFIG_ATM is not set
396CONFIG_BRIDGE=m
397# CONFIG_VLAN_8021Q is not set
398# CONFIG_DECNET is not set
399CONFIG_LLC=m
400# CONFIG_LLC2 is not set
401# CONFIG_IPX is not set
402# CONFIG_ATALK is not set
403# CONFIG_X25 is not set
404# CONFIG_LAPB is not set
405# CONFIG_ECONET is not set
406# CONFIG_WAN_ROUTER is not set
407
408#
409# QoS and/or fair queueing
410#
411# CONFIG_NET_SCHED is not set
412
413#
414# Network testing
415#
416# CONFIG_NET_PKTGEN is not set
417# CONFIG_HAMRADIO is not set
418# CONFIG_IRDA is not set
419# CONFIG_BT is not set
420# CONFIG_IEEE80211 is not set
421CONFIG_WIRELESS_EXT=y
422
423#
424# Device Drivers
425#
426
427#
428# Generic Driver Options
429#
430CONFIG_STANDALONE=y
431CONFIG_PREVENT_FIRMWARE_BUILD=y
432CONFIG_FW_LOADER=m
433# CONFIG_DEBUG_DRIVER is not set
434# CONFIG_DEBUG_DEVRES is not set
435# CONFIG_SYS_HYPERVISOR is not set
436
437#
438# Connector - unified userspace <-> kernelspace linker
439#
440# CONFIG_CONNECTOR is not set
441
442#
443# Memory Technology Devices (MTD)
444#
445# CONFIG_MTD is not set
446
447#
448# Parallel port support
449#
450# CONFIG_PARPORT is not set
451
452#
453# Plug and Play support
454#
455# CONFIG_PNPACPI is not set
456
457#
458# Block devices
459#
460# CONFIG_BLK_CPQ_DA is not set
461# CONFIG_BLK_CPQ_CISS_DA is not set
462# CONFIG_BLK_DEV_DAC960 is not set
463# CONFIG_BLK_DEV_UMEM is not set
464# CONFIG_BLK_DEV_COW_COMMON is not set
465# CONFIG_BLK_DEV_LOOP is not set
466# CONFIG_BLK_DEV_NBD is not set
467# CONFIG_BLK_DEV_SX8 is not set
468CONFIG_BLK_DEV_RAM=y
469CONFIG_BLK_DEV_RAM_COUNT=16
470CONFIG_BLK_DEV_RAM_SIZE=4096
471CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
472# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set
474
475#
476# Misc devices
477#
478# CONFIG_SGI_IOC4 is not set
479# CONFIG_TIFM_CORE is not set
480
481#
482# ATA/ATAPI/MFM/RLL support
483#
484# CONFIG_IDE is not set
485
486#
487# SCSI device support
488#
489# CONFIG_RAID_ATTRS is not set
490CONFIG_SCSI=y
491# CONFIG_SCSI_TGT is not set
492# CONFIG_SCSI_NETLINK is not set
493CONFIG_SCSI_PROC_FS=y
494
495#
496# SCSI support type (disk, tape, CD-ROM)
497#
498CONFIG_BLK_DEV_SD=y
499# CONFIG_CHR_DEV_ST is not set
500# CONFIG_CHR_DEV_OSST is not set
501# CONFIG_BLK_DEV_SR is not set
502CONFIG_CHR_DEV_SG=m
503# CONFIG_CHR_DEV_SCH is not set
504
505#
506# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
507#
508# CONFIG_SCSI_MULTI_LUN is not set
509# CONFIG_SCSI_CONSTANTS is not set
510# CONFIG_SCSI_LOGGING is not set
511# CONFIG_SCSI_SCAN_ASYNC is not set
512
513#
514# SCSI Transports
515#
516# CONFIG_SCSI_SPI_ATTRS is not set
517# CONFIG_SCSI_FC_ATTRS is not set
518# CONFIG_SCSI_ISCSI_ATTRS is not set
519# CONFIG_SCSI_SAS_ATTRS is not set
520# CONFIG_SCSI_SAS_LIBSAS is not set
521
522#
523# SCSI low-level drivers
524#
525# CONFIG_ISCSI_TCP is not set
526# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
527# CONFIG_SCSI_3W_9XXX is not set
528# CONFIG_SCSI_ACARD is not set
529# CONFIG_SCSI_AACRAID is not set
530# CONFIG_SCSI_AIC7XXX is not set
531# CONFIG_SCSI_AIC7XXX_OLD is not set
532# CONFIG_SCSI_AIC79XX is not set
533# CONFIG_SCSI_AIC94XX is not set
534# CONFIG_SCSI_DPT_I2O is not set
535# CONFIG_SCSI_ARCMSR is not set
536# CONFIG_MEGARAID_NEWGEN is not set
537# CONFIG_MEGARAID_LEGACY is not set
538# CONFIG_MEGARAID_SAS is not set
539# CONFIG_SCSI_HPTIOP is not set
540# CONFIG_SCSI_DMX3191D is not set
541# CONFIG_SCSI_FUTURE_DOMAIN is not set
542# CONFIG_SCSI_IPS is not set
543# CONFIG_SCSI_INITIO is not set
544# CONFIG_SCSI_INIA100 is not set
545# CONFIG_SCSI_STEX is not set
546# CONFIG_SCSI_SYM53C8XX_2 is not set
547# CONFIG_SCSI_IPR is not set
548# CONFIG_SCSI_QLOGIC_1280 is not set
549# CONFIG_SCSI_QLA_FC is not set
550# CONFIG_SCSI_QLA_ISCSI is not set
551# CONFIG_SCSI_LPFC is not set
552# CONFIG_SCSI_DC395x is not set
553# CONFIG_SCSI_DC390T is not set
554# CONFIG_SCSI_NSP32 is not set
555# CONFIG_SCSI_DEBUG is not set
556# CONFIG_SCSI_SRP is not set
557
558#
559# Serial ATA (prod) and Parallel ATA (experimental) drivers
560#
561CONFIG_ATA=y
562# CONFIG_ATA_NONSTANDARD is not set
563# CONFIG_SATA_AHCI is not set
564# CONFIG_SATA_SVW is not set
565# CONFIG_ATA_PIIX is not set
566# CONFIG_SATA_MV is not set
567# CONFIG_SATA_NV is not set
568# CONFIG_PDC_ADMA is not set
569# CONFIG_SATA_QSTOR is not set
570# CONFIG_SATA_PROMISE is not set
571# CONFIG_SATA_SX4 is not set
572CONFIG_SATA_SIL=y
573# CONFIG_SATA_SIL24 is not set
574# CONFIG_SATA_SIS is not set
575# CONFIG_SATA_ULI is not set
576# CONFIG_SATA_VIA is not set
577# CONFIG_SATA_VITESSE is not set
578# CONFIG_SATA_INIC162X is not set
579# CONFIG_PATA_ALI is not set
580# CONFIG_PATA_AMD is not set
581# CONFIG_PATA_ARTOP is not set
582# CONFIG_PATA_ATIIXP is not set
583# CONFIG_PATA_CMD64X is not set
584# CONFIG_PATA_CS5520 is not set
585# CONFIG_PATA_CS5530 is not set
586# CONFIG_PATA_CYPRESS is not set
587# CONFIG_PATA_EFAR is not set
588# CONFIG_ATA_GENERIC is not set
589# CONFIG_PATA_HPT366 is not set
590# CONFIG_PATA_HPT37X is not set
591# CONFIG_PATA_HPT3X2N is not set
592# CONFIG_PATA_HPT3X3 is not set
593# CONFIG_PATA_IT821X is not set
594# CONFIG_PATA_IT8213 is not set
595# CONFIG_PATA_JMICRON is not set
596# CONFIG_PATA_TRIFLEX is not set
597# CONFIG_PATA_MARVELL is not set
598# CONFIG_PATA_MPIIX is not set
599# CONFIG_PATA_OLDPIIX is not set
600# CONFIG_PATA_NETCELL is not set
601# CONFIG_PATA_NS87410 is not set
602# CONFIG_PATA_OPTI is not set
603# CONFIG_PATA_OPTIDMA is not set
604# CONFIG_PATA_PDC_OLD is not set
605# CONFIG_PATA_RADISYS is not set
606# CONFIG_PATA_RZ1000 is not set
607# CONFIG_PATA_SC1200 is not set
608# CONFIG_PATA_SERVERWORKS is not set
609# CONFIG_PATA_PDC2027X is not set
610# CONFIG_PATA_SIL680 is not set
611# CONFIG_PATA_SIS is not set
612# CONFIG_PATA_VIA is not set
613# CONFIG_PATA_WINBOND is not set
614CONFIG_PATA_PLATFORM=y
615
616#
617# Multi-device support (RAID and LVM)
618#
619# CONFIG_MD is not set
620
621#
622# Fusion MPT device support
623#
624# CONFIG_FUSION is not set
625# CONFIG_FUSION_SPI is not set
626# CONFIG_FUSION_FC is not set
627# CONFIG_FUSION_SAS is not set
628
629#
630# IEEE 1394 (FireWire) support
631#
632# CONFIG_IEEE1394 is not set
633
634#
635# I2O device support
636#
637# CONFIG_I2O is not set
638
639#
640# Network device support
641#
642CONFIG_NETDEVICES=y
643# CONFIG_DUMMY is not set
644# CONFIG_BONDING is not set
645# CONFIG_EQUALIZER is not set
646# CONFIG_TUN is not set
647
648#
649# ARCnet devices
650#
651# CONFIG_ARCNET is not set
652
653#
654# PHY device support
655#
656# CONFIG_PHYLIB is not set
657
658#
659# Ethernet (10 or 100Mbit)
660#
661CONFIG_NET_ETHERNET=y
662CONFIG_MII=y
663# CONFIG_STNIC is not set
664# CONFIG_HAPPYMEAL is not set
665# CONFIG_SUNGEM is not set
666# CONFIG_CASSINI is not set
667# CONFIG_NET_VENDOR_3COM is not set
668# CONFIG_SMC91X is not set
669
670#
671# Tulip family network device support
672#
673# CONFIG_NET_TULIP is not set
674# CONFIG_HP100 is not set
675# CONFIG_NET_PCI is not set
676
677#
678# Ethernet (1000 Mbit)
679#
680# CONFIG_ACENIC is not set
681# CONFIG_DL2K is not set
682# CONFIG_E1000 is not set
683# CONFIG_NS83820 is not set
684# CONFIG_HAMACHI is not set
685# CONFIG_YELLOWFIN is not set
686CONFIG_R8169=y
687# CONFIG_R8169_NAPI is not set
688# CONFIG_SIS190 is not set
689# CONFIG_SKGE is not set
690# CONFIG_SKY2 is not set
691# CONFIG_SK98LIN is not set
692# CONFIG_TIGON3 is not set
693# CONFIG_BNX2 is not set
694# CONFIG_QLA3XXX is not set
695# CONFIG_ATL1 is not set
696
697#
698# Ethernet (10000 Mbit)
699#
700# CONFIG_CHELSIO_T1 is not set
701# CONFIG_CHELSIO_T3 is not set
702# CONFIG_IXGB is not set
703# CONFIG_S2IO is not set
704# CONFIG_MYRI10GE is not set
705# CONFIG_NETXEN_NIC is not set
706
707#
708# Token Ring devices
709#
710# CONFIG_TR is not set
711
712#
713# Wireless LAN (non-hamradio)
714#
715CONFIG_NET_RADIO=y
716# CONFIG_NET_WIRELESS_RTNETLINK is not set
717
718#
719# Obsolete Wireless cards support (pre-802.11)
720#
721# CONFIG_STRIP is not set
722
723#
724# Wireless 802.11b ISA/PCI cards support
725#
726# CONFIG_IPW2100 is not set
727# CONFIG_IPW2200 is not set
728# CONFIG_HERMES is not set
729# CONFIG_ATMEL is not set
730
731#
732# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
733#
734# CONFIG_PRISM54 is not set
735# CONFIG_HOSTAP is not set
736CONFIG_NET_WIRELESS=y
737
738#
739# Wan interfaces
740#
741# CONFIG_WAN is not set
742# CONFIG_FDDI is not set
743# CONFIG_HIPPI is not set
744# CONFIG_PPP is not set
745# CONFIG_SLIP is not set
746# CONFIG_NET_FC is not set
747# CONFIG_SHAPER is not set
748# CONFIG_NETCONSOLE is not set
749# CONFIG_NETPOLL is not set
750# CONFIG_NET_POLL_CONTROLLER is not set
751
752#
753# ISDN subsystem
754#
755# CONFIG_ISDN is not set
756
757#
758# Telephony Support
759#
760# CONFIG_PHONE is not set
761
762#
763# Input device support
764#
765CONFIG_INPUT=y
766# CONFIG_INPUT_FF_MEMLESS is not set
767
768#
769# Userland interfaces
770#
771CONFIG_INPUT_MOUSEDEV=y
772# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
773CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
774CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
775# CONFIG_INPUT_JOYDEV is not set
776# CONFIG_INPUT_TSDEV is not set
777# CONFIG_INPUT_EVDEV is not set
778# CONFIG_INPUT_EVBUG is not set
779
780#
781# Input Device Drivers
782#
783CONFIG_INPUT_KEYBOARD=y
784CONFIG_KEYBOARD_ATKBD=y
785# CONFIG_KEYBOARD_SUNKBD is not set
786# CONFIG_KEYBOARD_LKKBD is not set
787# CONFIG_KEYBOARD_XTKBD is not set
788# CONFIG_KEYBOARD_NEWTON is not set
789# CONFIG_KEYBOARD_STOWAWAY is not set
790# CONFIG_INPUT_MOUSE is not set
791# CONFIG_INPUT_JOYSTICK is not set
792# CONFIG_INPUT_TOUCHSCREEN is not set
793# CONFIG_INPUT_MISC is not set
794
795#
796# Hardware I/O ports
797#
798CONFIG_SERIO=y
799# CONFIG_SERIO_I8042 is not set
800# CONFIG_SERIO_SERPORT is not set
801# CONFIG_SERIO_PCIPS2 is not set
802CONFIG_SERIO_LIBPS2=y
803# CONFIG_SERIO_RAW is not set
804# CONFIG_GAMEPORT is not set
805
806#
807# Character devices
808#
809# CONFIG_VT is not set
810# CONFIG_SERIAL_NONSTANDARD is not set
811
812#
813# Serial drivers
814#
815# CONFIG_SERIAL_8250 is not set
816
817#
818# Non-8250 serial port support
819#
820CONFIG_SERIAL_SH_SCI=y
821CONFIG_SERIAL_SH_SCI_NR_UARTS=6
822CONFIG_SERIAL_SH_SCI_CONSOLE=y
823CONFIG_SERIAL_CORE=y
824CONFIG_SERIAL_CORE_CONSOLE=y
825# CONFIG_SERIAL_JSM is not set
826CONFIG_UNIX98_PTYS=y
827CONFIG_LEGACY_PTYS=y
828CONFIG_LEGACY_PTY_COUNT=256
829
830#
831# IPMI
832#
833# CONFIG_IPMI_HANDLER is not set
834
835#
836# Watchdog Cards
837#
838# CONFIG_WATCHDOG is not set
839CONFIG_HW_RANDOM=y
840# CONFIG_GEN_RTC is not set
841# CONFIG_DTLK is not set
842# CONFIG_R3964 is not set
843# CONFIG_APPLICOM is not set
844# CONFIG_DRM is not set
845# CONFIG_RAW_DRIVER is not set
846
847#
848# TPM devices
849#
850# CONFIG_TCG_TPM is not set
851
852#
853# I2C support
854#
855# CONFIG_I2C is not set
856
857#
858# SPI support
859#
860# CONFIG_SPI is not set
861# CONFIG_SPI_MASTER is not set
862
863#
864# Dallas's 1-wire bus
865#
866# CONFIG_W1 is not set
867
868#
869# Hardware Monitoring support
870#
871CONFIG_HWMON=y
872# CONFIG_HWMON_VID is not set
873# CONFIG_SENSORS_ABITUGURU is not set
874# CONFIG_SENSORS_F71805F is not set
875# CONFIG_SENSORS_PC87427 is not set
876# CONFIG_SENSORS_VT1211 is not set
877# CONFIG_HWMON_DEBUG_CHIP is not set
878
879#
880# Multifunction device drivers
881#
882# CONFIG_MFD_SM501 is not set
883
884#
885# Multimedia devices
886#
887# CONFIG_VIDEO_DEV is not set
888
889#
890# Digital Video Broadcasting Devices
891#
892# CONFIG_DVB is not set
893
894#
895# Graphics support
896#
897# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
898CONFIG_FB=y
899# CONFIG_FIRMWARE_EDID is not set
900# CONFIG_FB_DDC is not set
901# CONFIG_FB_CFB_FILLRECT is not set
902# CONFIG_FB_CFB_COPYAREA is not set
903# CONFIG_FB_CFB_IMAGEBLIT is not set
904# CONFIG_FB_SVGALIB is not set
905# CONFIG_FB_MACMODES is not set
906# CONFIG_FB_BACKLIGHT is not set
907# CONFIG_FB_MODE_HELPERS is not set
908# CONFIG_FB_TILEBLITTING is not set
909
910#
911# Frambuffer hardware drivers
912#
913# CONFIG_FB_CIRRUS is not set
914# CONFIG_FB_PM2 is not set
915# CONFIG_FB_CYBER2000 is not set
916# CONFIG_FB_ASILIANT is not set
917# CONFIG_FB_IMSTT is not set
918# CONFIG_FB_EPSON1355 is not set
919# CONFIG_FB_S1D13XXX is not set
920# CONFIG_FB_NVIDIA is not set
921# CONFIG_FB_RIVA is not set
922# CONFIG_FB_MATROX is not set
923# CONFIG_FB_RADEON is not set
924# CONFIG_FB_ATY128 is not set
925# CONFIG_FB_ATY is not set
926# CONFIG_FB_S3 is not set
927# CONFIG_FB_SAVAGE is not set
928# CONFIG_FB_SIS is not set
929# CONFIG_FB_NEOMAGIC is not set
930# CONFIG_FB_KYRO is not set
931# CONFIG_FB_3DFX is not set
932# CONFIG_FB_VOODOO1 is not set
933# CONFIG_FB_TRIDENT is not set
934# CONFIG_FB_VIRTUAL is not set
935
936#
937# Logo configuration
938#
939# CONFIG_LOGO is not set
940
941#
942# Sound
943#
944CONFIG_SOUND=m
945
946#
947# Advanced Linux Sound Architecture
948#
949# CONFIG_SND is not set
950
951#
952# Open Sound System
953#
954CONFIG_SOUND_PRIME=m
955# CONFIG_OBSOLETE_OSS is not set
956# CONFIG_SOUND_BT878 is not set
957# CONFIG_SOUND_ICH is not set
958# CONFIG_SOUND_TRIDENT is not set
959# CONFIG_SOUND_MSNDCLAS is not set
960# CONFIG_SOUND_MSNDPIN is not set
961# CONFIG_SOUND_VIA82CXXX is not set
962
963#
964# HID Devices
965#
966CONFIG_HID=y
967# CONFIG_HID_DEBUG is not set
968
969#
970# USB support
971#
972CONFIG_USB_ARCH_HAS_HCD=y
973CONFIG_USB_ARCH_HAS_OHCI=y
974CONFIG_USB_ARCH_HAS_EHCI=y
975# CONFIG_USB is not set
976
977#
978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
979#
980
981#
982# USB Gadget Support
983#
984# CONFIG_USB_GADGET is not set
985
986#
987# MMC/SD Card support
988#
989# CONFIG_MMC is not set
990
991#
992# LED devices
993#
994# CONFIG_NEW_LEDS is not set
995
996#
997# LED drivers
998#
999
1000#
1001# LED Triggers
1002#
1003
1004#
1005# InfiniBand support
1006#
1007# CONFIG_INFINIBAND is not set
1008
1009#
1010# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1011#
1012
1013#
1014# Real Time Clock
1015#
1016CONFIG_RTC_LIB=y
1017CONFIG_RTC_CLASS=y
1018CONFIG_RTC_HCTOSYS=y
1019CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1020# CONFIG_RTC_DEBUG is not set
1021
1022#
1023# RTC interfaces
1024#
1025CONFIG_RTC_INTF_SYSFS=y
1026CONFIG_RTC_INTF_PROC=y
1027CONFIG_RTC_INTF_DEV=y
1028# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1029
1030#
1031# RTC drivers
1032#
1033# CONFIG_RTC_DRV_DS1553 is not set
1034# CONFIG_RTC_DRV_DS1742 is not set
1035# CONFIG_RTC_DRV_M48T86 is not set
1036CONFIG_RTC_DRV_SH=y
1037# CONFIG_RTC_DRV_TEST is not set
1038# CONFIG_RTC_DRV_V3020 is not set
1039
1040#
1041# DMA Engine support
1042#
1043# CONFIG_DMA_ENGINE is not set
1044
1045#
1046# DMA Clients
1047#
1048
1049#
1050# DMA Devices
1051#
1052
1053#
1054# Auxiliary Display support
1055#
1056
1057#
1058# Virtualization
1059#
1060
1061#
1062# File systems
1063#
1064CONFIG_EXT2_FS=y
1065# CONFIG_EXT2_FS_XATTR is not set
1066# CONFIG_EXT2_FS_XIP is not set
1067CONFIG_EXT3_FS=y
1068CONFIG_EXT3_FS_XATTR=y
1069# CONFIG_EXT3_FS_POSIX_ACL is not set
1070# CONFIG_EXT3_FS_SECURITY is not set
1071# CONFIG_EXT4DEV_FS is not set
1072CONFIG_JBD=y
1073# CONFIG_JBD_DEBUG is not set
1074CONFIG_FS_MBCACHE=y
1075# CONFIG_REISERFS_FS is not set
1076# CONFIG_JFS_FS is not set
1077CONFIG_FS_POSIX_ACL=y
1078# CONFIG_XFS_FS is not set
1079# CONFIG_GFS2_FS is not set
1080# CONFIG_OCFS2_FS is not set
1081CONFIG_MINIX_FS=y
1082# CONFIG_ROMFS_FS is not set
1083CONFIG_INOTIFY=y
1084CONFIG_INOTIFY_USER=y
1085# CONFIG_QUOTA is not set
1086CONFIG_DNOTIFY=y
1087# CONFIG_AUTOFS_FS is not set
1088# CONFIG_AUTOFS4_FS is not set
1089CONFIG_FUSE_FS=m
1090
1091#
1092# CD-ROM/DVD Filesystems
1093#
1094# CONFIG_ISO9660_FS is not set
1095# CONFIG_UDF_FS is not set
1096
1097#
1098# DOS/FAT/NT Filesystems
1099#
1100CONFIG_FAT_FS=y
1101CONFIG_MSDOS_FS=y
1102CONFIG_VFAT_FS=y
1103CONFIG_FAT_DEFAULT_CODEPAGE=437
1104CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1105CONFIG_NTFS_FS=y
1106# CONFIG_NTFS_DEBUG is not set
1107CONFIG_NTFS_RW=y
1108
1109#
1110# Pseudo filesystems
1111#
1112CONFIG_PROC_FS=y
1113CONFIG_PROC_KCORE=y
1114CONFIG_PROC_SYSCTL=y
1115CONFIG_SYSFS=y
1116CONFIG_TMPFS=y
1117# CONFIG_TMPFS_POSIX_ACL is not set
1118CONFIG_HUGETLBFS=y
1119CONFIG_HUGETLB_PAGE=y
1120CONFIG_RAMFS=y
1121CONFIG_CONFIGFS_FS=m
1122
1123#
1124# Miscellaneous filesystems
1125#
1126# CONFIG_ADFS_FS is not set
1127# CONFIG_AFFS_FS is not set
1128# CONFIG_HFS_FS is not set
1129# CONFIG_HFSPLUS_FS is not set
1130# CONFIG_BEFS_FS is not set
1131# CONFIG_BFS_FS is not set
1132# CONFIG_EFS_FS is not set
1133# CONFIG_CRAMFS is not set
1134# CONFIG_VXFS_FS is not set
1135# CONFIG_HPFS_FS is not set
1136# CONFIG_QNX4FS_FS is not set
1137# CONFIG_SYSV_FS is not set
1138# CONFIG_UFS_FS is not set
1139
1140#
1141# Network File Systems
1142#
1143CONFIG_NFS_FS=y
1144CONFIG_NFS_V3=y
1145# CONFIG_NFS_V3_ACL is not set
1146CONFIG_NFS_V4=y
1147# CONFIG_NFS_DIRECTIO is not set
1148CONFIG_NFSD=y
1149CONFIG_NFSD_V3=y
1150# CONFIG_NFSD_V3_ACL is not set
1151CONFIG_NFSD_V4=y
1152CONFIG_NFSD_TCP=y
1153CONFIG_ROOT_NFS=y
1154CONFIG_LOCKD=y
1155CONFIG_LOCKD_V4=y
1156CONFIG_EXPORTFS=y
1157CONFIG_NFS_COMMON=y
1158CONFIG_SUNRPC=y
1159CONFIG_SUNRPC_GSS=y
1160CONFIG_RPCSEC_GSS_KRB5=y
1161# CONFIG_RPCSEC_GSS_SPKM3 is not set
1162# CONFIG_SMB_FS is not set
1163# CONFIG_CIFS is not set
1164# CONFIG_NCP_FS is not set
1165# CONFIG_CODA_FS is not set
1166# CONFIG_AFS_FS is not set
1167# CONFIG_9P_FS is not set
1168
1169#
1170# Partition Types
1171#
1172# CONFIG_PARTITION_ADVANCED is not set
1173CONFIG_MSDOS_PARTITION=y
1174
1175#
1176# Native Language Support
1177#
1178CONFIG_NLS=y
1179CONFIG_NLS_DEFAULT="iso8859-1"
1180CONFIG_NLS_CODEPAGE_437=y
1181# CONFIG_NLS_CODEPAGE_737 is not set
1182# CONFIG_NLS_CODEPAGE_775 is not set
1183# CONFIG_NLS_CODEPAGE_850 is not set
1184# CONFIG_NLS_CODEPAGE_852 is not set
1185# CONFIG_NLS_CODEPAGE_855 is not set
1186# CONFIG_NLS_CODEPAGE_857 is not set
1187# CONFIG_NLS_CODEPAGE_860 is not set
1188# CONFIG_NLS_CODEPAGE_861 is not set
1189# CONFIG_NLS_CODEPAGE_862 is not set
1190# CONFIG_NLS_CODEPAGE_863 is not set
1191# CONFIG_NLS_CODEPAGE_864 is not set
1192# CONFIG_NLS_CODEPAGE_865 is not set
1193# CONFIG_NLS_CODEPAGE_866 is not set
1194# CONFIG_NLS_CODEPAGE_869 is not set
1195# CONFIG_NLS_CODEPAGE_936 is not set
1196# CONFIG_NLS_CODEPAGE_950 is not set
1197CONFIG_NLS_CODEPAGE_932=y
1198# CONFIG_NLS_CODEPAGE_949 is not set
1199# CONFIG_NLS_CODEPAGE_874 is not set
1200# CONFIG_NLS_ISO8859_8 is not set
1201# CONFIG_NLS_CODEPAGE_1250 is not set
1202# CONFIG_NLS_CODEPAGE_1251 is not set
1203# CONFIG_NLS_ASCII is not set
1204CONFIG_NLS_ISO8859_1=y
1205# CONFIG_NLS_ISO8859_2 is not set
1206# CONFIG_NLS_ISO8859_3 is not set
1207# CONFIG_NLS_ISO8859_4 is not set
1208# CONFIG_NLS_ISO8859_5 is not set
1209# CONFIG_NLS_ISO8859_6 is not set
1210# CONFIG_NLS_ISO8859_7 is not set
1211# CONFIG_NLS_ISO8859_9 is not set
1212# CONFIG_NLS_ISO8859_13 is not set
1213# CONFIG_NLS_ISO8859_14 is not set
1214# CONFIG_NLS_ISO8859_15 is not set
1215# CONFIG_NLS_KOI8_R is not set
1216# CONFIG_NLS_KOI8_U is not set
1217# CONFIG_NLS_UTF8 is not set
1218
1219#
1220# Distributed Lock Manager
1221#
1222# CONFIG_DLM is not set
1223
1224#
1225# Profiling support
1226#
1227CONFIG_PROFILING=y
1228CONFIG_OPROFILE=m
1229
1230#
1231# Kernel hacking
1232#
1233CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1234# CONFIG_PRINTK_TIME is not set
1235CONFIG_ENABLE_MUST_CHECK=y
1236CONFIG_MAGIC_SYSRQ=y
1237# CONFIG_UNUSED_SYMBOLS is not set
1238CONFIG_DEBUG_FS=y
1239# CONFIG_HEADERS_CHECK is not set
1240CONFIG_DEBUG_KERNEL=y
1241# CONFIG_DEBUG_SHIRQ is not set
1242CONFIG_LOG_BUF_SHIFT=14
1243# CONFIG_DETECT_SOFTLOCKUP is not set
1244# CONFIG_SCHEDSTATS is not set
1245# CONFIG_TIMER_STATS is not set
1246# CONFIG_DEBUG_SLAB is not set
1247# CONFIG_DEBUG_PREEMPT is not set
1248CONFIG_DEBUG_SPINLOCK=y
1249CONFIG_DEBUG_MUTEXES=y
1250CONFIG_DEBUG_LOCK_ALLOC=y
1251# CONFIG_PROVE_LOCKING is not set
1252CONFIG_LOCKDEP=y
1253# CONFIG_DEBUG_LOCKDEP is not set
1254# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1255CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
1256CONFIG_STACKTRACE=y
1257# CONFIG_DEBUG_KOBJECT is not set
1258CONFIG_DEBUG_BUGVERBOSE=y
1259CONFIG_DEBUG_INFO=y
1260# CONFIG_DEBUG_VM is not set
1261# CONFIG_DEBUG_LIST is not set
1262CONFIG_FRAME_POINTER=y
1263CONFIG_FORCED_INLINING=y
1264# CONFIG_RCU_TORTURE_TEST is not set
1265# CONFIG_FAULT_INJECTION is not set
1266CONFIG_SH_STANDARD_BIOS=y
1267# CONFIG_EARLY_SCIF_CONSOLE is not set
1268CONFIG_EARLY_PRINTK=y
1269CONFIG_DEBUG_STACKOVERFLOW=y
1270CONFIG_DEBUG_STACK_USAGE=y
1271# CONFIG_4KSTACKS is not set
1272# CONFIG_SH_KGDB is not set
1273
1274#
1275# Security options
1276#
1277# CONFIG_KEYS is not set
1278# CONFIG_SECURITY is not set
1279
1280#
1281# Cryptographic options
1282#
1283CONFIG_CRYPTO=y
1284CONFIG_CRYPTO_ALGAPI=y
1285CONFIG_CRYPTO_BLKCIPHER=y
1286CONFIG_CRYPTO_HASH=y
1287CONFIG_CRYPTO_MANAGER=y
1288CONFIG_CRYPTO_HMAC=y
1289# CONFIG_CRYPTO_XCBC is not set
1290# CONFIG_CRYPTO_NULL is not set
1291# CONFIG_CRYPTO_MD4 is not set
1292CONFIG_CRYPTO_MD5=y
1293# CONFIG_CRYPTO_SHA1 is not set
1294# CONFIG_CRYPTO_SHA256 is not set
1295# CONFIG_CRYPTO_SHA512 is not set
1296# CONFIG_CRYPTO_WP512 is not set
1297# CONFIG_CRYPTO_TGR192 is not set
1298# CONFIG_CRYPTO_GF128MUL is not set
1299CONFIG_CRYPTO_ECB=m
1300CONFIG_CRYPTO_CBC=y
1301CONFIG_CRYPTO_PCBC=m
1302# CONFIG_CRYPTO_LRW is not set
1303CONFIG_CRYPTO_DES=y
1304# CONFIG_CRYPTO_FCRYPT is not set
1305# CONFIG_CRYPTO_BLOWFISH is not set
1306# CONFIG_CRYPTO_TWOFISH is not set
1307# CONFIG_CRYPTO_SERPENT is not set
1308# CONFIG_CRYPTO_AES is not set
1309# CONFIG_CRYPTO_CAST5 is not set
1310# CONFIG_CRYPTO_CAST6 is not set
1311# CONFIG_CRYPTO_TEA is not set
1312# CONFIG_CRYPTO_ARC4 is not set
1313# CONFIG_CRYPTO_KHAZAD is not set
1314# CONFIG_CRYPTO_ANUBIS is not set
1315# CONFIG_CRYPTO_DEFLATE is not set
1316# CONFIG_CRYPTO_MICHAEL_MIC is not set
1317# CONFIG_CRYPTO_CRC32C is not set
1318# CONFIG_CRYPTO_CAMELLIA is not set
1319# CONFIG_CRYPTO_TEST is not set
1320
1321#
1322# Hardware crypto devices
1323#
1324
1325#
1326# Library routines
1327#
1328CONFIG_BITREVERSE=y
1329# CONFIG_CRC_CCITT is not set
1330# CONFIG_CRC16 is not set
1331CONFIG_CRC32=y
1332# CONFIG_LIBCRC32C is not set
1333CONFIG_HAS_IOMEM=y
1334CONFIG_HAS_IOPORT=y
diff --git a/arch/sh/drivers/Kconfig b/arch/sh/drivers/Kconfig
index c54c758e6243..420c6b2f33a5 100644
--- a/arch/sh/drivers/Kconfig
+++ b/arch/sh/drivers/Kconfig
@@ -1,5 +1,15 @@
1source "arch/sh/drivers/dma/Kconfig"
2source "arch/sh/cchips/Kconfig"
3
1menu "Additional SuperH Device Drivers" 4menu "Additional SuperH Device Drivers"
2 5
6config HEARTBEAT
7 bool "Heartbeat LED"
8 help
9 Use the power-on LED on your machine as a load meter. The exact
10 behavior is platform-dependent, but normally the flash frequency is
11 a hyperbolic function of the 5-minute load average.
12
3config PUSH_SWITCH 13config PUSH_SWITCH
4 tristate "Push switch support" 14 tristate "Push switch support"
5 help 15 help
diff --git a/arch/sh/drivers/pci/Makefile b/arch/sh/drivers/pci/Makefile
index cc8d0d0b1427..8a7e70651939 100644
--- a/arch/sh/drivers/pci/Makefile
+++ b/arch/sh/drivers/pci/Makefile
@@ -8,12 +8,13 @@ obj-$(CONFIG_PCI_AUTO) += pci-auto.o
8obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o 8obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o
9obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o 9obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o
10obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o 10obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o
11obj-$(CONFIG_CPU_SUBTYPE_SH7785) += pci-sh7780.o ops-sh4.o
11 12
12obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \ 13obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \
13 dma-dreamcast.o 14 dma-dreamcast.o
14obj-$(CONFIG_SH_SECUREEDGE5410) += ops-snapgear.o 15obj-$(CONFIG_SH_SECUREEDGE5410) += ops-snapgear.o
15obj-$(CONFIG_SH_RTS7751R2D) += ops-rts7751r2d.o fixups-rts7751r2d.o 16obj-$(CONFIG_SH_RTS7751R2D) += ops-rts7751r2d.o fixups-rts7751r2d.o
16obj-$(CONFIG_SH_SH03) += ops-sh03.o fixups-sh03.o 17obj-$(CONFIG_SH_SH03) += ops-sh03.o fixups-sh03.o
17obj-$(CONFIG_SH_R7780RP) += ops-r7780rp.o fixups-r7780rp.o 18obj-$(CONFIG_SH_HIGHLANDER) += ops-r7780rp.o fixups-r7780rp.o
18obj-$(CONFIG_SH_TITAN) += ops-titan.o 19obj-$(CONFIG_SH_TITAN) += ops-titan.o
19obj-$(CONFIG_SH_LANDISK) += ops-landisk.o 20obj-$(CONFIG_SH_LANDISK) += ops-landisk.o
diff --git a/arch/sh/drivers/pci/ops-r7780rp.c b/arch/sh/drivers/pci/ops-r7780rp.c
index eeea1577e112..6f4fb38bafa2 100644
--- a/arch/sh/drivers/pci/ops-r7780rp.c
+++ b/arch/sh/drivers/pci/ops-r7780rp.c
@@ -17,18 +17,35 @@
17#include <asm/io.h> 17#include <asm/io.h>
18#include "pci-sh4.h" 18#include "pci-sh4.h"
19 19
20static char r7780rp_irq_tab[] __initdata = {
21 0, 1, 2, 3,
22};
23
24static char r7780mp_irq_tab[] __initdata = {
25 65, 66, 67, 68,
26};
27
28static char r7785rp_irq_tab[][4] __initdata = {
29 { 65, 66, 67, 68 }, /* INT ABCD */
30 { 66, 67, 68, 65 }, /* INT BCDA */
31 { 67, 68, 65, 66 }, /* INT CDAB */
32 { 68, 65, 66, 67 }, /* INT DABC */
33 { 64, 64, 64, 64 }, /* PCI Host */
34};
35
20int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) 36int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
21{ 37{
22 switch (slot) { 38 if (mach_is_r7780rp())
23 case 0: return IRQ_PCISLOT1; /* PCI Interrupt #1 */ 39 return r7780rp_irq_tab[slot];
24 case 1: return IRQ_PCISLOT2; /* PCI Interrupt #2 */ 40 if (mach_is_r7780mp())
25 case 2: return IRQ_PCISLOT3; /* PCI Interrupt #3 */ 41 return r7780mp_irq_tab[slot];
26 case 3: return IRQ_PCISLOT4; /* PCI Interrupt E4 */ 42 if (mach_is_r7785rp())
27 default: 43 return r7785rp_irq_tab[slot][pin];
28 printk(KERN_ERR "PCI: Bad IRQ mapping " 44
29 "request for slot %d, func %d\n", slot, pin-1); 45 printk(KERN_ERR "PCI: Bad IRQ mapping "
30 return -1; 46 "request for slot %d, func %d\n", slot, pin-1);
31 } 47
48 return -1;
32} 49}
33 50
34static struct resource sh7780_io_resource = { 51static struct resource sh7780_io_resource = {
diff --git a/arch/sh/drivers/pci/pci-sh4.h b/arch/sh/drivers/pci/pci-sh4.h
index 5a61d6041f2c..1901c33cde6a 100644
--- a/arch/sh/drivers/pci/pci-sh4.h
+++ b/arch/sh/drivers/pci/pci-sh4.h
@@ -1,7 +1,7 @@
1#ifndef __PCI_SH4_H 1#ifndef __PCI_SH4_H
2#define __PCI_SH4_H 2#define __PCI_SH4_H
3 3
4#ifdef CONFIG_CPU_SUBTYPE_SH7780 4#if defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785)
5#include "pci-sh7780.h" 5#include "pci-sh7780.h"
6#else 6#else
7#include "pci-sh7751.h" 7#include "pci-sh7751.h"
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c
index 602b644c35ad..16b30a9e94bb 100644
--- a/arch/sh/drivers/pci/pci-sh7780.c
+++ b/arch/sh/drivers/pci/pci-sh7780.c
@@ -48,7 +48,7 @@
48static int __init sh7780_pci_init(void) 48static int __init sh7780_pci_init(void)
49{ 49{
50 unsigned int id; 50 unsigned int id;
51 int ret; 51 int ret, match = 0;
52 52
53 pr_debug("PCI: Starting intialization.\n"); 53 pr_debug("PCI: Starting intialization.\n");
54 54
@@ -56,8 +56,17 @@ static int __init sh7780_pci_init(void)
56 56
57 /* check for SH7780/SH7780R hardware */ 57 /* check for SH7780/SH7780R hardware */
58 id = pci_read_reg(SH7780_PCIVID); 58 id = pci_read_reg(SH7780_PCIVID);
59 if ((id != ((SH7780_DEVICE_ID << 16) | SH7780_VENDOR_ID)) && 59 if ((id & 0xffff) == SH7780_VENDOR_ID) {
60 (id != ((SH7781_DEVICE_ID << 16) | SH7780_VENDOR_ID))) { 60 switch ((id >> 16) & 0xffff) {
61 case SH7780_DEVICE_ID:
62 case SH7781_DEVICE_ID:
63 case SH7785_DEVICE_ID:
64 match = 1;
65 break;
66 }
67 }
68
69 if (unlikely(!match)) {
61 printk(KERN_ERR "PCI: This is not an SH7780 (%x)\n", id); 70 printk(KERN_ERR "PCI: This is not an SH7780 (%x)\n", id);
62 return -ENODEV; 71 return -ENODEV;
63 } 72 }
@@ -138,7 +147,7 @@ int __init sh7780_pcic_init(struct sh4_pci_address_map *map)
138 * DMA interrupts... 147 * DMA interrupts...
139 */ 148 */
140 149
141#ifdef CONFIG_SH_R7780RP 150#ifdef CONFIG_SH_HIGHLANDER
142 pci_fixup_pcic(); 151 pci_fixup_pcic();
143#endif 152#endif
144 153
diff --git a/arch/sh/drivers/pci/pci-sh7780.h b/arch/sh/drivers/pci/pci-sh7780.h
index f02d2180a4bc..bd44255509e6 100644
--- a/arch/sh/drivers/pci/pci-sh7780.h
+++ b/arch/sh/drivers/pci/pci-sh7780.h
@@ -14,8 +14,9 @@
14 14
15/* Platform Specific Values */ 15/* Platform Specific Values */
16#define SH7780_VENDOR_ID 0x1912 16#define SH7780_VENDOR_ID 0x1912
17#define SH7780_DEVICE_ID 0x0002
18#define SH7781_DEVICE_ID 0x0001 17#define SH7781_DEVICE_ID 0x0001
18#define SH7780_DEVICE_ID 0x0002
19#define SH7785_DEVICE_ID 0x0007
19 20
20/* SH7780 Control Registers */ 21/* SH7780 Control Registers */
21#define SH7780_PCI_VCR0 0xFE000000 22#define SH7780_PCI_VCR0 0xFE000000
diff --git a/arch/sh/kernel/cpu/irq/intc2.c b/arch/sh/kernel/cpu/irq/intc2.c
index 74defe76a058..d8e22f4ff0f0 100644
--- a/arch/sh/kernel/cpu/irq/intc2.c
+++ b/arch/sh/kernel/cpu/irq/intc2.c
@@ -18,7 +18,8 @@
18#define INTC2_BASE 0xfe080000 18#define INTC2_BASE 0xfe080000
19#define INTC2_INTMSK (INTC2_BASE + 0x40) 19#define INTC2_INTMSK (INTC2_BASE + 0x40)
20#define INTC2_INTMSKCLR (INTC2_BASE + 0x60) 20#define INTC2_INTMSKCLR (INTC2_BASE + 0x60)
21#elif defined(CONFIG_CPU_SUBTYPE_SH7780) 21#elif defined(CONFIG_CPU_SUBTYPE_SH7780) || \
22 defined(CONFIG_CPU_SUBTYPE_SH7785)
22#define INTC2_BASE 0xffd40000 23#define INTC2_BASE 0xffd40000
23#define INTC2_INTMSK (INTC2_BASE + 0x38) 24#define INTC2_INTMSK (INTC2_BASE + 0x38)
24#define INTC2_INTMSKCLR (INTC2_BASE + 0x3c) 25#define INTC2_INTMSKCLR (INTC2_BASE + 0x3c)
diff --git a/arch/sh/kernel/cpu/sh4/probe.c b/arch/sh/kernel/cpu/sh4/probe.c
index 58950de2696d..8cd04904c77a 100644
--- a/arch/sh/kernel/cpu/sh4/probe.c
+++ b/arch/sh/kernel/cpu/sh4/probe.c
@@ -124,6 +124,14 @@ int __init detect_cpu_and_cache_system(void)
124 current_cpu_data.dcache.ways = 4; 124 current_cpu_data.dcache.ways = 4;
125 current_cpu_data.flags |= CPU_HAS_LLSC; 125 current_cpu_data.flags |= CPU_HAS_LLSC;
126 break; 126 break;
127 case 0x3004:
128 case 0x3007:
129 current_cpu_data.type = CPU_SH7785;
130 current_cpu_data.icache.ways = 4;
131 current_cpu_data.dcache.ways = 4;
132 current_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_PERF_COUNTER |
133 CPU_HAS_LLSC;
134 break;
127 case 0x3008: 135 case 0x3008:
128 if (prr == 0xa0) { 136 if (prr == 0xa0) {
129 current_cpu_data.type = CPU_SH7722; 137 current_cpu_data.type = CPU_SH7722;
diff --git a/arch/sh/kernel/cpu/sh4a/Makefile b/arch/sh/kernel/cpu/sh4a/Makefile
index a8f493f2f21f..1efeda0e1829 100644
--- a/arch/sh/kernel/cpu/sh4a/Makefile
+++ b/arch/sh/kernel/cpu/sh4a/Makefile
@@ -5,6 +5,7 @@
5# CPU subtype setup 5# CPU subtype setup
6obj-$(CONFIG_CPU_SUBTYPE_SH7770) += setup-sh7770.o 6obj-$(CONFIG_CPU_SUBTYPE_SH7770) += setup-sh7770.o
7obj-$(CONFIG_CPU_SUBTYPE_SH7780) += setup-sh7780.o 7obj-$(CONFIG_CPU_SUBTYPE_SH7780) += setup-sh7780.o
8obj-$(CONFIG_CPU_SUBTYPE_SH7785) += setup-sh7785.o
8obj-$(CONFIG_CPU_SUBTYPE_SH73180) += setup-sh73180.o 9obj-$(CONFIG_CPU_SUBTYPE_SH73180) += setup-sh73180.o
9obj-$(CONFIG_CPU_SUBTYPE_SH7343) += setup-sh7343.o 10obj-$(CONFIG_CPU_SUBTYPE_SH7343) += setup-sh7343.o
10obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o 11obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o
@@ -13,6 +14,7 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7722) += setup-sh7722.o
13clock-$(CONFIG_CPU_SUBTYPE_SH73180) := clock-sh73180.o 14clock-$(CONFIG_CPU_SUBTYPE_SH73180) := clock-sh73180.o
14clock-$(CONFIG_CPU_SUBTYPE_SH7770) := clock-sh7770.o 15clock-$(CONFIG_CPU_SUBTYPE_SH7770) := clock-sh7770.o
15clock-$(CONFIG_CPU_SUBTYPE_SH7780) := clock-sh7780.o 16clock-$(CONFIG_CPU_SUBTYPE_SH7780) := clock-sh7780.o
17clock-$(CONFIG_CPU_SUBTYPE_SH7785) := clock-sh7785.o
16clock-$(CONFIG_CPU_SUBTYPE_SH7343) := clock-sh7343.o 18clock-$(CONFIG_CPU_SUBTYPE_SH7343) := clock-sh7343.o
17clock-$(CONFIG_CPU_SUBTYPE_SH7722) := clock-sh7343.o 19clock-$(CONFIG_CPU_SUBTYPE_SH7722) := clock-sh7343.o
18 20
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c
new file mode 100644
index 000000000000..805535aa505e
--- /dev/null
+++ b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c
@@ -0,0 +1,162 @@
1/*
2 * arch/sh/kernel/cpu/sh4a/clock-sh7785.c
3 *
4 * SH7785 support for the clock framework
5 *
6 * Copyright (C) 2007 Paul Mundt
7 *
8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive
10 * for more details.
11 */
12#include <linux/init.h>
13#include <linux/kernel.h>
14#include <asm/clock.h>
15#include <asm/freq.h>
16#include <asm/io.h>
17
18static int ifc_divisors[] = { 1, 2, 4, 6 };
19static int ufc_divisors[] = { 1, 1, 4, 6 };
20static int sfc_divisors[] = { 1, 1, 4, 6 };
21static int bfc_divisors[] = { 1, 1, 1, 1, 1, 12, 16, 18,
22 24, 32, 36, 48, 1, 1, 1, 1 };
23static int mfc_divisors[] = { 1, 1, 4, 6 };
24static int pfc_divisors[] = { 1, 1, 1, 1, 1, 1, 1, 18,
25 24, 32, 36, 48, 1, 1, 1, 1 };
26
27static void master_clk_init(struct clk *clk)
28{
29 clk->rate *= 36;
30}
31
32static struct clk_ops sh7785_master_clk_ops = {
33 .init = master_clk_init,
34};
35
36static void module_clk_recalc(struct clk *clk)
37{
38 int idx = (ctrl_inl(FRQMR1) & 0x000f);
39 clk->rate = clk->parent->rate / pfc_divisors[idx];
40}
41
42static struct clk_ops sh7785_module_clk_ops = {
43 .recalc = module_clk_recalc,
44};
45
46static void bus_clk_recalc(struct clk *clk)
47{
48 int idx = ((ctrl_inl(FRQMR1) >> 16) & 0x000f);
49 clk->rate = clk->parent->rate / bfc_divisors[idx];
50}
51
52static struct clk_ops sh7785_bus_clk_ops = {
53 .recalc = bus_clk_recalc,
54};
55
56static void cpu_clk_recalc(struct clk *clk)
57{
58 int idx = ((ctrl_inl(FRQMR1) >> 28) & 0x0003);
59 clk->rate = clk->parent->rate / ifc_divisors[idx];
60}
61
62static struct clk_ops sh7785_cpu_clk_ops = {
63 .recalc = cpu_clk_recalc,
64};
65
66static struct clk_ops *sh7785_clk_ops[] = {
67 &sh7785_master_clk_ops,
68 &sh7785_module_clk_ops,
69 &sh7785_bus_clk_ops,
70 &sh7785_cpu_clk_ops,
71};
72
73void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
74{
75 if (idx < ARRAY_SIZE(sh7785_clk_ops))
76 *ops = sh7785_clk_ops[idx];
77}
78
79static void shyway_clk_recalc(struct clk *clk)
80{
81 int idx = ((ctrl_inl(FRQMR1) >> 20) & 0x0003);
82 clk->rate = clk->parent->rate / sfc_divisors[idx];
83}
84
85static struct clk_ops sh7785_shyway_clk_ops = {
86 .recalc = shyway_clk_recalc,
87};
88
89static struct clk sh7785_shyway_clk = {
90 .name = "shyway_clk",
91 .flags = CLK_ALWAYS_ENABLED,
92 .ops = &sh7785_shyway_clk_ops,
93};
94
95static void ddr_clk_recalc(struct clk *clk)
96{
97 int idx = ((ctrl_inl(FRQMR1) >> 12) & 0x0003);
98 clk->rate = clk->parent->rate / mfc_divisors[idx];
99}
100
101static struct clk_ops sh7785_ddr_clk_ops = {
102 .recalc = ddr_clk_recalc,
103};
104
105static struct clk sh7785_ddr_clk = {
106 .name = "ddr_clk",
107 .flags = CLK_ALWAYS_ENABLED,
108 .ops = &sh7785_ddr_clk_ops,
109};
110
111static void ram_clk_recalc(struct clk *clk)
112{
113 int idx = ((ctrl_inl(FRQMR1) >> 24) & 0x0003);
114 clk->rate = clk->parent->rate / ufc_divisors[idx];
115}
116
117static struct clk_ops sh7785_ram_clk_ops = {
118 .recalc = ram_clk_recalc,
119};
120
121static struct clk sh7785_ram_clk = {
122 .name = "ram_clk",
123 .flags = CLK_ALWAYS_ENABLED,
124 .ops = &sh7785_ram_clk_ops,
125};
126
127/*
128 * Additional SH7785-specific on-chip clocks that aren't already part of the
129 * clock framework
130 */
131static struct clk *sh7785_onchip_clocks[] = {
132 &sh7785_shyway_clk,
133 &sh7785_ddr_clk,
134 &sh7785_ram_clk,
135};
136
137static int __init sh7785_clk_init(void)
138{
139 struct clk *clk = clk_get(NULL, "master_clk");
140 int i;
141
142 for (i = 0; i < ARRAY_SIZE(sh7785_onchip_clocks); i++) {
143 struct clk *clkp = sh7785_onchip_clocks[i];
144
145 clkp->parent = clk;
146 clk_register(clkp);
147 clk_enable(clkp);
148 }
149
150 /*
151 * Now that we have the rest of the clocks registered, we need to
152 * force the parent clock to propagate so that these clocks will
153 * automatically figure out their rate. We cheat by handing the
154 * parent clock its current rate and forcing child propagation.
155 */
156 clk_set_rate(clk, clk_get_rate(clk));
157
158 clk_put(clk);
159
160 return 0;
161}
162arch_initcall(sh7785_clk_init);
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
new file mode 100644
index 000000000000..c9ae6592f098
--- /dev/null
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
@@ -0,0 +1,98 @@
1/*
2 * SH7785 Setup
3 *
4 * Copyright (C) 2007 Paul Mundt
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10#include <linux/platform_device.h>
11#include <linux/init.h>
12#include <linux/serial.h>
13#include <asm/sci.h>
14
15static struct plat_sci_port sci_platform_data[] = {
16 {
17 .mapbase = 0xffea0000,
18 .flags = UPF_BOOT_AUTOCONF,
19 .type = PORT_SCIF,
20 .irqs = { 40, 41, 43, 42 },
21 }, {
22 .mapbase = 0xffeb0000,
23 .flags = UPF_BOOT_AUTOCONF,
24 .type = PORT_SCIF,
25 .irqs = { 44, 45, 47, 46 },
26 },
27
28 /*
29 * The rest of these all have multiplexed IRQs
30 */
31 {
32 .mapbase = 0xffec0000,
33 .flags = UPF_BOOT_AUTOCONF,
34 .type = PORT_SCIF,
35 .irqs = { 60, 60, 60, 60 },
36 }, {
37 .mapbase = 0xffed0000,
38 .flags = UPF_BOOT_AUTOCONF,
39 .type = PORT_SCIF,
40 .irqs = { 61, 61, 61, 61 },
41 }, {
42 .mapbase = 0xffee0000,
43 .flags = UPF_BOOT_AUTOCONF,
44 .type = PORT_SCIF,
45 .irqs = { 62, 62, 62, 62 },
46 }, {
47 .mapbase = 0xffef0000,
48 .flags = UPF_BOOT_AUTOCONF,
49 .type = PORT_SCIF,
50 .irqs = { 63, 63, 63, 63 },
51 }, {
52 .flags = 0,
53 }
54};
55
56static struct platform_device sci_device = {
57 .name = "sh-sci",
58 .id = -1,
59 .dev = {
60 .platform_data = sci_platform_data,
61 },
62};
63
64static struct platform_device *sh7785_devices[] __initdata = {
65 &sci_device,
66};
67
68static int __init sh7785_devices_setup(void)
69{
70 return platform_add_devices(sh7785_devices,
71 ARRAY_SIZE(sh7785_devices));
72}
73__initcall(sh7785_devices_setup);
74
75static struct intc2_data intc2_irq_table[] = {
76 { 28, 0, 24, 0, 0, 2 }, /* TMU0 */
77
78 { 40, 8, 24, 0, 3, 3 }, /* SCIF0 ERI */
79 { 41, 8, 24, 0, 3, 3 }, /* SCIF0 RXI */
80 { 42, 8, 24, 0, 3, 3 }, /* SCIF0 BRI */
81 { 43, 8, 24, 0, 3, 3 }, /* SCIF0 TXI */
82
83 { 76, 8, 16, 0, 4, 3 }, /* SCIF1 ERI */
84 { 77, 8, 16, 0, 4, 3 }, /* SCIF1 RXI */
85 { 78, 8, 16, 0, 4, 3 }, /* SCIF1 BRI */
86 { 79, 8, 16, 0, 4, 3 }, /* SCIF1 TXI */
87
88 { 64, 0x14, 8, 0, 14, 2 }, /* PCIC0 */
89 { 65, 0x14, 0, 0, 15, 2 }, /* PCIC1 */
90 { 66, 0x18, 24, 0, 16, 2 }, /* PCIC2 */
91 { 67, 0x18, 16, 0, 17, 2 }, /* PCIC3 */
92 { 68, 0x18, 8, 0, 18, 2 }, /* PCIC4 */
93};
94
95void __init init_IRQ_intc2(void)
96{
97 make_intc2_irq(intc2_irq_table, ARRAY_SIZE(intc2_irq_table));
98}
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c
index e060e71d0785..ad1ede52fc9c 100644
--- a/arch/sh/kernel/timers/timer-tmu.c
+++ b/arch/sh/kernel/timers/timer-tmu.c
@@ -148,7 +148,9 @@ static int tmu_timer_init(void)
148 148
149 /* Start TMU0 */ 149 /* Start TMU0 */
150 tmu_timer_stop(); 150 tmu_timer_stop();
151#if !defined(CONFIG_CPU_SUBTYPE_SH7300) && !defined(CONFIG_CPU_SUBTYPE_SH7760) 151#if !defined(CONFIG_CPU_SUBTYPE_SH7300) && \
152 !defined(CONFIG_CPU_SUBTYPE_SH7760) && \
153 !defined(CONFIG_CPU_SUBTYPE_SH7785)
152 ctrl_outb(TMU_TOCR_INIT, TMU_TOCR); 154 ctrl_outb(TMU_TOCR_INIT, TMU_TOCR);
153#endif 155#endif
154 156
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types
index 4fe0f94cbf42..5b1236c2cfec 100644
--- a/arch/sh/tools/mach-types
+++ b/arch/sh/tools/mach-types
@@ -26,6 +26,7 @@ SH03 SH_SH03
26LANDISK SH_LANDISK 26LANDISK SH_LANDISK
27R7780RP SH_R7780RP 27R7780RP SH_R7780RP
28R7780MP SH_R7780MP 28R7780MP SH_R7780MP
29R7785RP SH_R7785RP
29TITAN SH_TITAN 30TITAN SH_TITAN
30SHMIN SH_SHMIN 31SHMIN SH_SHMIN
317710VOIPGW SH_7710VOIPGW 327710VOIPGW SH_7710VOIPGW
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 4b17f845f5cd..94deebda6da0 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -62,7 +62,7 @@ struct sci_port {
62 unsigned int type; 62 unsigned int type;
63 63
64 /* Port IRQs: ERI, RXI, TXI, BRI (optional) */ 64 /* Port IRQs: ERI, RXI, TXI, BRI (optional) */
65 unsigned int irqs[SCIx_NR_IRQS]; 65 unsigned int irqs[SCIx_NR_IRQS];
66 66
67 /* Port pin configuration */ 67 /* Port pin configuration */
68 void (*init_pins)(struct uart_port *port, 68 void (*init_pins)(struct uart_port *port,
@@ -351,7 +351,7 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag)
351 } else { 351 } else {
352#ifdef CONFIG_CPU_SUBTYPE_SH7343 352#ifdef CONFIG_CPU_SUBTYPE_SH7343
353 /* Nothing */ 353 /* Nothing */
354#elif defined(CONFIG_CPU_SUBTYPE_SH7780) 354#elif defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785)
355 ctrl_outw(0x0080, SCSPTR0); /* Set RTS = 1 */ 355 ctrl_outw(0x0080, SCSPTR0); /* Set RTS = 1 */
356#else 356#else
357 ctrl_outw(0x0080, SCSPTR2); /* Set RTS = 1 */ 357 ctrl_outw(0x0080, SCSPTR2); /* Set RTS = 1 */
@@ -361,7 +361,9 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag)
361} 361}
362#endif 362#endif
363 363
364#if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780) 364#if defined(CONFIG_CPU_SUBTYPE_SH7760) || \
365 defined(CONFIG_CPU_SUBTYPE_SH7780) || \
366 defined(CONFIG_CPU_SUBTYPE_SH7785)
365static inline int scif_txroom(struct uart_port *port) 367static inline int scif_txroom(struct uart_port *port)
366{ 368{
367 return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f); 369 return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f);
@@ -1368,9 +1370,19 @@ static int __devinit sci_probe(struct platform_device *dev)
1368 struct plat_sci_port *p = dev->dev.platform_data; 1370 struct plat_sci_port *p = dev->dev.platform_data;
1369 int i; 1371 int i;
1370 1372
1371 for (i = 0; p && p->flags != 0 && i < SCI_NPORTS; p++, i++) { 1373 for (i = 0; p && p->flags != 0; p++, i++) {
1372 struct sci_port *sciport = &sci_ports[i]; 1374 struct sci_port *sciport = &sci_ports[i];
1373 1375
1376 /* Sanity check */
1377 if (unlikely(i == SCI_NPORTS)) {
1378 dev_notice(&dev->dev, "Attempting to register port "
1379 "%d when only %d are available.\n",
1380 i+1, SCI_NPORTS);
1381 dev_notice(&dev->dev, "Consider bumping "
1382 "CONFIG_SERIAL_SH_SCI_NR_UARTS!\n");
1383 break;
1384 }
1385
1374 sciport->port.mapbase = p->mapbase; 1386 sciport->port.mapbase = p->mapbase;
1375 1387
1376 /* 1388 /*
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h
index 77f7d6351ab1..854153a1d60a 100644
--- a/drivers/serial/sh-sci.h
+++ b/drivers/serial/sh-sci.h
@@ -140,6 +140,16 @@
140# define SCIF_ORER 0x0001 /* Overrun error bit */ 140# define SCIF_ORER 0x0001 /* Overrun error bit */
141# define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ 141# define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */
142# define SCIF_ONLY 142# define SCIF_ONLY
143#elif defined(CONFIG_CPU_SUBTYPE_SH7785)
144# define SCSPTR0 0xffea0024 /* 16 bit SCIF */
145# define SCSPTR1 0xffeb0024 /* 16 bit SCIF */
146# define SCSPTR2 0xffec0024 /* 16 bit SCIF */
147# define SCSPTR3 0xffed0024 /* 16 bit SCIF */
148# define SCSPTR4 0xffee0024 /* 16 bit SCIF */
149# define SCSPTR5 0xffef0024 /* 16 bit SCIF */
150# define SCIF_OPER 0x0001 /* Overrun error bit */
151# define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */
152# define SCIF_ONLY
143#elif defined(CONFIG_CPU_SUBTYPE_SH7206) 153#elif defined(CONFIG_CPU_SUBTYPE_SH7206)
144# define SCSPTR0 0xfffe8020 /* 16 bit SCIF */ 154# define SCSPTR0 0xfffe8020 /* 16 bit SCIF */
145# define SCSPTR1 0xfffe8820 /* 16 bit SCIF */ 155# define SCSPTR1 0xfffe8820 /* 16 bit SCIF */
@@ -163,7 +173,10 @@
163#define SCI_CTRL_FLAGS_RIE 0x40 /* all */ 173#define SCI_CTRL_FLAGS_RIE 0x40 /* all */
164#define SCI_CTRL_FLAGS_TE 0x20 /* all */ 174#define SCI_CTRL_FLAGS_TE 0x20 /* all */
165#define SCI_CTRL_FLAGS_RE 0x10 /* all */ 175#define SCI_CTRL_FLAGS_RE 0x10 /* all */
166#if defined(CONFIG_CPU_SUBTYPE_SH7750) || defined(CONFIG_CPU_SUBTYPE_SH7751) || defined(CONFIG_CPU_SUBTYPE_SH7780) 176#if defined(CONFIG_CPU_SUBTYPE_SH7750) || \
177 defined(CONFIG_CPU_SUBTYPE_SH7751) || \
178 defined(CONFIG_CPU_SUBTYPE_SH7780) || \
179 defined(CONFIG_CPU_SUBTYPE_SH7785)
167#define SCI_CTRL_FLAGS_REIE 0x08 /* 7750 SCIF */ 180#define SCI_CTRL_FLAGS_REIE 0x08 /* 7750 SCIF */
168#else 181#else
169#define SCI_CTRL_FLAGS_REIE 0 182#define SCI_CTRL_FLAGS_REIE 0
@@ -385,7 +398,9 @@ SCIx_FNS(SCxTDR, 0x06, 8, 0x0c, 8, 0x06, 8, 0x0C, 8, 0x03, 8)
385SCIx_FNS(SCxSR, 0x08, 8, 0x10, 8, 0x08, 16, 0x10, 16, 0x04, 8) 398SCIx_FNS(SCxSR, 0x08, 8, 0x10, 8, 0x08, 16, 0x10, 16, 0x04, 8)
386SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8) 399SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8)
387SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16) 400SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16)
388#if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780) 401#if defined(CONFIG_CPU_SUBTYPE_SH7760) || \
402 defined(CONFIG_CPU_SUBTYPE_SH7780) || \
403 defined(CONFIG_CPU_SUBTYPE_SH7785)
389SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) 404SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16)
390SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16) 405SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16)
391SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) 406SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16)
@@ -576,6 +591,23 @@ static inline int sci_rxd_in(struct uart_port *port)
576 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 591 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
577 return 1; 592 return 1;
578} 593}
594#elif defined(CONFIG_CPU_SUBTYPE_SH7785)
595static inline int sci_rxd_in(struct uart_port *port)
596{
597 if (port->mapbase == 0xffea0000)
598 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
599 if (port->mapbase == 0xffeb0000)
600 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
601 if (port->mapbase == 0xffec0000)
602 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
603 if (port->mapbase == 0xffed0000)
604 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
605 if (port->mapbase == 0xffee0000)
606 return ctrl_inw(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF */
607 if (port->mapbase == 0xffef0000)
608 return ctrl_inw(SCSPTR5) & 0x0001 ? 1 : 0; /* SCIF */
609 return 1;
610}
579#elif defined(CONFIG_CPU_SUBTYPE_SH7206) 611#elif defined(CONFIG_CPU_SUBTYPE_SH7206)
580static inline int sci_rxd_in(struct uart_port *port) 612static inline int sci_rxd_in(struct uart_port *port)
581{ 613{
@@ -634,7 +666,9 @@ static inline int sci_rxd_in(struct uart_port *port)
634 * -- Mitch Davis - 15 Jul 2000 666 * -- Mitch Davis - 15 Jul 2000
635 */ 667 */
636 668
637#if defined(CONFIG_CPU_SUBTYPE_SH7300) || defined(CONFIG_CPU_SUBTYPE_SH7780) 669#if defined(CONFIG_CPU_SUBTYPE_SH7300) || \
670 defined(CONFIG_CPU_SUBTYPE_SH7780) || \
671 defined(CONFIG_CPU_SUBTYPE_SH7785)
638#define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) 672#define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1)
639#elif defined(CONFIG_CPU_SUBTYPE_SH7705) 673#elif defined(CONFIG_CPU_SUBTYPE_SH7705)
640#define SCBRR_VALUE(bps, clk) (((clk*2)+16*bps)/(32*bps)-1) 674#define SCBRR_VALUE(bps, clk) (((clk*2)+16*bps)/(32*bps)-1)
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h
index 602d061ca2dc..99402547ed06 100644
--- a/include/asm-sh/cpu-sh4/freq.h
+++ b/include/asm-sh/cpu-sh4/freq.h
@@ -14,6 +14,10 @@
14#define FRQCR 0xa4150000 14#define FRQCR 0xa4150000
15#elif defined(CONFIG_CPU_SUBTYPE_SH7780) 15#elif defined(CONFIG_CPU_SUBTYPE_SH7780)
16#define FRQCR 0xffc80000 16#define FRQCR 0xffc80000
17#elif defined(CONFIG_CPU_SUBTYPE_SH7785)
18#define FRQCR0 0xffc80000
19#define FRQCR1 0xffc80004
20#define FRQMR1 0xffc80014
17#else 21#else
18#define FRQCR 0xffc00000 22#define FRQCR 0xffc00000
19#endif 23#endif
diff --git a/include/asm-sh/pci.h b/include/asm-sh/pci.h
index 6ccc948fe216..b1f9a9e0231e 100644
--- a/include/asm-sh/pci.h
+++ b/include/asm-sh/pci.h
@@ -35,7 +35,7 @@ extern struct pci_channel board_pci_channels[];
35/* 35/*
36 * I/O routine helpers 36 * I/O routine helpers
37 */ 37 */
38#ifdef CONFIG_CPU_SUBTYPE_SH7780 38#if defined(CONFIG_CPU_SUBTYPE_SH7780) || defined(CONFIG_CPU_SUBTYPE_SH7785)
39#define PCI_IO_AREA 0xFE400000 39#define PCI_IO_AREA 0xFE400000
40#define PCI_IO_SIZE 0x00400000 40#define PCI_IO_SIZE 0x00400000
41#else 41#else
diff --git a/include/asm-sh/r7780rp.h b/include/asm-sh/r7780rp.h
index c18f648a7995..8c0721965a5e 100644
--- a/include/asm-sh/r7780rp.h
+++ b/include/asm-sh/r7780rp.h
@@ -1,17 +1,11 @@
1#ifndef __ASM_SH_RENESAS_R7780RP_H 1#ifndef __ASM_SH_RENESAS_R7780RP_H
2#define __ASM_SH_RENESAS_R7780RP_H 2#define __ASM_SH_RENESAS_R7780RP_H
3 3
4/*
5 * linux/include/asm-sh/r7780rp.h
6 *
7 * Copyright (C) 2000 Atom Create Engineering Co., Ltd.
8 *
9 * Renesas Solutions Highlander R7780RP support
10 */
11
12/* Box specific addresses. */ 4/* Box specific addresses. */
13#if defined(CONFIG_SH_R7780MP) 5#if defined(CONFIG_SH_R7780MP)
14#define PA_BCR 0xa4000000 /* FPGA */ 6#define PA_BCR 0xa4000000 /* FPGA */
7#define PA_SDPOW (-1)
8
15#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ 9#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */
16#define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */ 10#define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */
17#define PA_IRLPRI1 (PA_BCR+0x0004) /* Interrupt Priorty 1 */ 11#define PA_IRLPRI1 (PA_BCR+0x0004) /* Interrupt Priorty 1 */
@@ -70,18 +64,12 @@
70#define PA_POFF (PA_BCR+0x0800) /* System Power Off control */ 64#define PA_POFF (PA_BCR+0x0800) /* System Power Off control */
71#define PA_PMR (PA_BCR+0x0900) /* */ 65#define PA_PMR (PA_BCR+0x0900) /* */
72 66
73#define PA_AX88796L 0xa4100400 /* AX88796L Area */
74#define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */
75#define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
76#define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
77
78#define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */ 67#define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */
79 68
80#define IRQ_PCISLOT1 65 /* PCI Slot #1 IRQ */ 69#define IRQ_PCISLOT1 65 /* PCI Slot #1 IRQ */
81#define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */ 70#define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */
82#define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */ 71#define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */
83#define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */ 72#define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */
84// #define IRQ_CFINST 0 /* CF Card Insert IRQ */
85#define IRQ_TP 2 /* Touch Panel IRQ */ 73#define IRQ_TP 2 /* Touch Panel IRQ */
86#define IRQ_SCI1 3 /* SCI1 IRQ */ 74#define IRQ_SCI1 3 /* SCI1 IRQ */
87#define IRQ_SCI0 4 /* SCI0 IRQ */ 75#define IRQ_SCI0 4 /* SCI0 IRQ */
@@ -95,7 +83,7 @@
95#define IRQ_ONETH 13 /* On board Ethernet IRQ */ 83#define IRQ_ONETH 13 /* On board Ethernet IRQ */
96#define IRQ_PSW 14 /* Push Switch IRQ */ 84#define IRQ_PSW 14 /* Push Switch IRQ */
97 85
98#else /* R7780RP */ 86#elif defined(CONFIG_SH_R7780RP)
99 87
100#define PA_BCR 0xa5000000 /* FPGA */ 88#define PA_BCR 0xa5000000 /* FPGA */
101#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */ 89#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */
@@ -163,7 +151,55 @@
163#define IRQ_PSW 13 /* Push Switch IRQ */ 151#define IRQ_PSW 13 /* Push Switch IRQ */
164#define IRQ_ZIGBEE 14 /* Ziggbee IO IRQ */ 152#define IRQ_ZIGBEE 14 /* Ziggbee IO IRQ */
165 153
166#endif /* CONFIG_SH_R7780MP */ 154#elif defined(CONFIG_SH_R7785RP)
155#define PA_BCR 0xa4000000 /* FPGA */
156#define PA_SDPOW (-1)
157
158#define PA_PCISCR (PA_BCR+0x0000)
159#define PA_IRLPRA (PA_BCR+0x0002)
160#define PA_IRLPRB (PA_BCR+0x0004)
161#define PA_IRLPRC (PA_BCR+0x0006)
162#define PA_IRLPRD (PA_BCR+0x0008)
163#define IRLCNTR1 (PA_BCR+0x0010)
164#define PA_IRLPRE (PA_BCR+0x000a)
165#define PA_IRLPRF (PA_BCR+0x000c)
166#define PA_EXIRLCR (PA_BCR+0x000e)
167#define PA_IRLMCR1 (PA_BCR+0x0010)
168#define PA_IRLMCR2 (PA_BCR+0x0012)
169#define PA_IRLSSR1 (PA_BCR+0x0014)
170#define PA_IRLSSR2 (PA_BCR+0x0016)
171#define PA_CFTCR (PA_BCR+0x0100)
172#define PA_CFPCR (PA_BCR+0x0102)
173#define PA_PCICR (PA_BCR+0x0110)
174#define PA_IVDRCTL (PA_BCR+0x0112)
175#define PA_IVDRSR (PA_BCR+0x0114)
176#define PA_PDRSTCR (PA_BCR+0x0116)
177#define PA_POFF (PA_BCR+0x0120)
178#define PA_LCDCR (PA_BCR+0x0130)
179#define PA_TPCR (PA_BCR+0x0140)
180#define PA_TPCKCR (PA_BCR+0x0142)
181#define PA_TPRSTR (PA_BCR+0x0144)
182#define PA_TPXPDR (PA_BCR+0x0146)
183#define PA_TPYPDR (PA_BCR+0x0148)
184#define PA_GPIOPFR (PA_BCR+0x0150)
185#define PA_GPIODR (PA_BCR+0x0152)
186#define PA_OBLED (PA_BCR+0x0154)
187#define PA_SWSR (PA_BCR+0x0156)
188#define PA_VERREG (PA_BCR+0x0158)
189#define PA_SMCR (PA_BCR+0x0200)
190#define PA_SMSMADR (PA_BCR+0x0202)
191#define PA_SMMR (PA_BCR+0x0204)
192#define PA_SMSADR1 (PA_BCR+0x0206)
193#define PA_SMSADR32 (PA_BCR+0x0244)
194#define PA_SMTRDR1 (PA_BCR+0x0246)
195#define PA_SMTRDR16 (PA_BCR+0x0264)
196#define PA_CU3MDR (PA_BCR+0x0300)
197#define PA_CU5MDR (PA_BCR+0x0302)
198#define PA_MMSR (PA_BCR+0x0400)
199#endif
200
201void make_r7780rp_irq(unsigned int irq);
202void highlander_init_irq(void);
167 203
168#define __IO_PREFIX r7780rp 204#define __IO_PREFIX r7780rp
169#include <asm/io_generic.h> 205#include <asm/io_generic.h>