Commit 9c57548f17806ffd8e4dc4f7973ce78bbfbc2079

Authored by Paul Mundt
1 parent e65fa9f59e

sh: rts7751r2d board updates.

This tidies up some of the rts7751r2d mess and gets it booting
again. Update the defconfig, too.

Signed-off-by: Masayuki Hosokawa <hosokawa@ace-jp.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Showing 12 changed files with 395 additions and 522 deletions Side-by-side Diff

arch/sh/boards/renesas/rts7751r2d/Makefile
... ... @@ -2,5 +2,5 @@
2 2 # Makefile for the RTS7751R2D specific parts of the kernel
3 3 #
4 4  
5   -obj-y := setup.o io.o irq.o
  5 +obj-y := setup.o irq.o
arch/sh/boards/renesas/rts7751r2d/io.c
1   -/*
2   - * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
3   - * Based largely on io_se.c.
4   - *
5   - * I/O routine for Renesas Technology sales RTS7751R2D.
6   - *
7   - * Initial version only to support LAN access; some
8   - * placeholder code from io_rts7751r2d.c left in with the
9   - * expectation of later SuperIO and PCMCIA access.
10   - */
11   -#include <linux/kernel.h>
12   -#include <linux/types.h>
13   -#include <linux/pci.h>
14   -#include <linux/io.h>
15   -#include <asm/rts7751r2d.h>
16   -#include <asm/addrspace.h>
17   -
18   -/*
19   - * The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)
20   - * of the 7751R processor, and has a SuperIO accessible via the PCI.
21   - * The board also includes a PCMCIA controller on its memory bus,
22   - * like the other Solution Engine boards.
23   - */
24   -
25   -static inline unsigned long port2adr(unsigned int port)
26   -{
27   - if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
28   - if (port == 0x3f6)
29   - return (PA_AREA5_IO + 0x80c);
30   - else
31   - return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));
32   - else
33   - maybebadio((unsigned long)port);
34   -
35   - return port;
36   -}
37   -
38   -static inline unsigned long port88796l(unsigned int port, int flag)
39   -{
40   - unsigned long addr;
41   -
42   - if (flag)
43   - addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1);
44   - else
45   - addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1) + 0x1000;
46   -
47   - return addr;
48   -}
49   -
50   -/* The 7751R RTS7751R2D seems to have everything hooked */
51   -/* up pretty normally (nothing on high-bytes only...) so this */
52   -/* shouldn't be needed */
53   -static inline int shifted_port(unsigned long port)
54   -{
55   - /* For IDE registers, value is not shifted */
56   - if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
57   - return 0;
58   - else
59   - return 1;
60   -}
61   -
62   -#if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE)
63   -#define CHECK_AX88796L_PORT(port) \
64   - ((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20)))
65   -#else
66   -#define CHECK_AX88796L_PORT(port) (0)
67   -#endif
68   -
69   -/*
70   - * General outline: remap really low stuff [eventually] to SuperIO,
71   - * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
72   - * is mapped through the PCI IO window. Stuff with high bits (PXSEG)
73   - * should be way beyond the window, and is used w/o translation for
74   - * compatibility.
75   - */
76   -unsigned char rts7751r2d_inb(unsigned long port)
77   -{
78   - if (CHECK_AX88796L_PORT(port))
79   - return (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
80   - else if (PXSEG(port))
81   - return *(volatile unsigned char *)port;
82   - else if (is_pci_ioaddr(port) || shifted_port(port))
83   - return *(volatile unsigned char *)pci_ioaddr(port);
84   - else
85   - return (*(volatile unsigned short *)port2adr(port) & 0xff);
86   -}
87   -
88   -unsigned char rts7751r2d_inb_p(unsigned long port)
89   -{
90   - unsigned char v;
91   -
92   - if (CHECK_AX88796L_PORT(port))
93   - v = (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
94   - else if (PXSEG(port))
95   - v = *(volatile unsigned char *)port;
96   - else if (is_pci_ioaddr(port) || shifted_port(port))
97   - v = *(volatile unsigned char *)pci_ioaddr(port);
98   - else
99   - v = (*(volatile unsigned short *)port2adr(port) & 0xff);
100   -
101   - ctrl_delay();
102   -
103   - return v;
104   -}
105   -
106   -unsigned short rts7751r2d_inw(unsigned long port)
107   -{
108   - if (CHECK_AX88796L_PORT(port))
109   - maybebadio(port);
110   - else if (PXSEG(port))
111   - return *(volatile unsigned short *)port;
112   - else if (is_pci_ioaddr(port) || shifted_port(port))
113   - return *(volatile unsigned short *)pci_ioaddr(port);
114   - else
115   - maybebadio(port);
116   -
117   - return 0;
118   -}
119   -
120   -unsigned int rts7751r2d_inl(unsigned long port)
121   -{
122   - if (CHECK_AX88796L_PORT(port))
123   - maybebadio(port);
124   - else if (PXSEG(port))
125   - return *(volatile unsigned long *)port;
126   - else if (is_pci_ioaddr(port) || shifted_port(port))
127   - return *(volatile unsigned long *)pci_ioaddr(port);
128   - else
129   - maybebadio(port);
130   -
131   - return 0;
132   -}
133   -
134   -void rts7751r2d_outb(unsigned char value, unsigned long port)
135   -{
136   - if (CHECK_AX88796L_PORT(port))
137   - *((volatile unsigned short *)port88796l(port, 0)) = value;
138   - else if (PXSEG(port))
139   - *(volatile unsigned char *)port = value;
140   - else if (is_pci_ioaddr(port) || shifted_port(port))
141   - *(volatile unsigned char *)pci_ioaddr(port) = value;
142   - else
143   - *(volatile unsigned short *)port2adr(port) = value;
144   -}
145   -
146   -void rts7751r2d_outb_p(unsigned char value, unsigned long port)
147   -{
148   - if (CHECK_AX88796L_PORT(port))
149   - *((volatile unsigned short *)port88796l(port, 0)) = value;
150   - else if (PXSEG(port))
151   - *(volatile unsigned char *)port = value;
152   - else if (is_pci_ioaddr(port) || shifted_port(port))
153   - *(volatile unsigned char *)pci_ioaddr(port) = value;
154   - else
155   - *(volatile unsigned short *)port2adr(port) = value;
156   -
157   - ctrl_delay();
158   -}
159   -
160   -void rts7751r2d_outw(unsigned short value, unsigned long port)
161   -{
162   - if (CHECK_AX88796L_PORT(port))
163   - maybebadio(port);
164   - else if (PXSEG(port))
165   - *(volatile unsigned short *)port = value;
166   - else if (is_pci_ioaddr(port) || shifted_port(port))
167   - *(volatile unsigned short *)pci_ioaddr(port) = value;
168   - else
169   - maybebadio(port);
170   -}
171   -
172   -void rts7751r2d_outl(unsigned int value, unsigned long port)
173   -{
174   - if (CHECK_AX88796L_PORT(port))
175   - maybebadio(port);
176   - else if (PXSEG(port))
177   - *(volatile unsigned long *)port = value;
178   - else if (is_pci_ioaddr(port) || shifted_port(port))
179   - *(volatile unsigned long *)pci_ioaddr(port) = value;
180   - else
181   - maybebadio(port);
182   -}
183   -
184   -void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)
185   -{
186   - unsigned long a = (unsigned long)addr;
187   - volatile __u8 *bp;
188   - volatile __u16 *p;
189   -
190   - if (CHECK_AX88796L_PORT(port)) {
191   - p = (volatile unsigned short *)port88796l(port, 0);
192   - while (count--)
193   - ctrl_outb(*p & 0xff, a++);
194   - } else if (PXSEG(port))
195   - while (count--)
196   - ctrl_outb(ctrl_inb(port), a++);
197   - else if (is_pci_ioaddr(port) || shifted_port(port)) {
198   - bp = (__u8 *)pci_ioaddr(port);
199   - while (count--)
200   - ctrl_outb(*bp, a++);
201   - } else {
202   - p = (volatile unsigned short *)port2adr(port);
203   - while (count--)
204   - ctrl_outb(*p & 0xff, a++);
205   - }
206   -}
207   -
208   -void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)
209   -{
210   - unsigned long a = (unsigned long)addr;
211   - volatile __u16 *p;
212   -
213   - if (CHECK_AX88796L_PORT(port))
214   - p = (volatile unsigned short *)port88796l(port, 1);
215   - else if (PXSEG(port))
216   - p = (volatile unsigned short *)port;
217   - else if (is_pci_ioaddr(port) || shifted_port(port))
218   - p = (volatile unsigned short *)pci_ioaddr(port);
219   - else
220   - p = (volatile unsigned short *)port2adr(port);
221   - while (count--)
222   - ctrl_outw(*p, a++);
223   -}
224   -
225   -void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)
226   -{
227   - if (CHECK_AX88796L_PORT(port))
228   - maybebadio(port);
229   - else if (is_pci_ioaddr(port) || shifted_port(port)) {
230   - unsigned long a = (unsigned long)addr;
231   -
232   - while (count--) {
233   - ctrl_outl(ctrl_inl(pci_ioaddr(port)), a);
234   - a += 4;
235   - }
236   - } else
237   - maybebadio(port);
238   -}
239   -
240   -void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)
241   -{
242   - unsigned long a = (unsigned long)addr;
243   - volatile __u8 *bp;
244   - volatile __u16 *p;
245   -
246   - if (CHECK_AX88796L_PORT(port)) {
247   - p = (volatile unsigned short *)port88796l(port, 0);
248   - while (count--)
249   - *p = ctrl_inb(a++);
250   - } else if (PXSEG(port))
251   - while (count--)
252   - ctrl_outb(a++, port);
253   - else if (is_pci_ioaddr(port) || shifted_port(port)) {
254   - bp = (__u8 *)pci_ioaddr(port);
255   - while (count--)
256   - *bp = ctrl_inb(a++);
257   - } else {
258   - p = (volatile unsigned short *)port2adr(port);
259   - while (count--)
260   - *p = ctrl_inb(a++);
261   - }
262   -}
263   -
264   -void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)
265   -{
266   - unsigned long a = (unsigned long)addr;
267   - volatile __u16 *p;
268   -
269   - if (CHECK_AX88796L_PORT(port))
270   - p = (volatile unsigned short *)port88796l(port, 1);
271   - else if (PXSEG(port))
272   - p = (volatile unsigned short *)port;
273   - else if (is_pci_ioaddr(port) || shifted_port(port))
274   - p = (volatile unsigned short *)pci_ioaddr(port);
275   - else
276   - p = (volatile unsigned short *)port2adr(port);
277   -
278   - while (count--) {
279   - ctrl_outw(*p, a);
280   - a += 2;
281   - }
282   -}
283   -
284   -void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)
285   -{
286   - if (CHECK_AX88796L_PORT(port))
287   - maybebadio(port);
288   - else if (is_pci_ioaddr(port) || shifted_port(port)) {
289   - unsigned long a = (unsigned long)addr;
290   -
291   - while (count--) {
292   - ctrl_outl(ctrl_inl(a), pci_ioaddr(port));
293   - a += 4;
294   - }
295   - } else
296   - maybebadio(port);
297   -}
298   -
299   -unsigned long rts7751r2d_isa_port2addr(unsigned long offset)
300   -{
301   - return port2adr(offset);
302   -}
arch/sh/boards/renesas/rts7751r2d/irq.c
... ... @@ -9,7 +9,9 @@
9 9 * Atom Create Engineering Co., Ltd. 2002.
10 10 */
11 11 #include <linux/init.h>
  12 +#include <linux/interrupt.h>
12 13 #include <linux/irq.h>
  14 +#include <linux/interrupt.h>
13 15 #include <linux/io.h>
14 16 #include <asm/rts7751r2d.h>
15 17  
16 18  
17 19  
18 20  
19 21  
20 22  
21 23  
22 24  
... ... @@ -22,79 +24,31 @@
22 24 extern int voyagergx_irq_demux(int irq);
23 25 extern void setup_voyagergx_irq(void);
24 26  
25   -static void enable_rts7751r2d_irq(unsigned int irq);
26   -static void disable_rts7751r2d_irq(unsigned int irq);
27   -
28   -/* shutdown is same as "disable" */
29   -#define shutdown_rts7751r2d_irq disable_rts7751r2d_irq
30   -
31   -static void ack_rts7751r2d_irq(unsigned int irq);
32   -static void end_rts7751r2d_irq(unsigned int irq);
33   -
34   -static unsigned int startup_rts7751r2d_irq(unsigned int irq)
  27 +static void enable_rts7751r2d_irq(unsigned int irq)
35 28 {
36   - enable_rts7751r2d_irq(irq);
37   - return 0; /* never anything pending */
  29 + /* Set priority in IPR back to original value */
  30 + ctrl_outw(ctrl_inw(IRLCNTR1) | (1 << mask_pos[irq]), IRLCNTR1);
38 31 }
39 32  
40 33 static void disable_rts7751r2d_irq(unsigned int irq)
41 34 {
42   - unsigned short val;
43   - unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]);
44   -
45 35 /* Set the priority in IPR to 0 */
46   - val = ctrl_inw(IRLCNTR1);
47   - val &= mask;
48   - ctrl_outw(val, IRLCNTR1);
  36 + ctrl_outw(ctrl_inw(IRLCNTR1) & (0xffff ^ (1 << mask_pos[irq])),
  37 + IRLCNTR1);
49 38 }
50 39  
51   -static void enable_rts7751r2d_irq(unsigned int irq)
52   -{
53   - unsigned short val;
54   - unsigned short value = (0x0001 << mask_pos[irq]);
55   -
56   - /* Set priority in IPR back to original value */
57   - val = ctrl_inw(IRLCNTR1);
58   - val |= value;
59   - ctrl_outw(val, IRLCNTR1);
60   -}
61   -
62 40 int rts7751r2d_irq_demux(int irq)
63 41 {
64   - int demux_irq;
65   -
66   - demux_irq = voyagergx_irq_demux(irq);
67   - return demux_irq;
  42 + return voyagergx_irq_demux(irq);
68 43 }
69 44  
70   -static void ack_rts7751r2d_irq(unsigned int irq)
71   -{
72   - disable_rts7751r2d_irq(irq);
73   -}
74   -
75   -static void end_rts7751r2d_irq(unsigned int irq)
76   -{
77   - if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
78   - enable_rts7751r2d_irq(irq);
79   -}
80   -
81   -static struct hw_interrupt_type rts7751r2d_irq_type = {
82   - .typename = "RTS7751R2D IRQ",
83   - .startup = startup_rts7751r2d_irq,
84   - .shutdown = shutdown_rts7751r2d_irq,
85   - .enable = enable_rts7751r2d_irq,
86   - .disable = disable_rts7751r2d_irq,
87   - .ack = ack_rts7751r2d_irq,
88   - .end = end_rts7751r2d_irq,
  45 +static struct irq_chip rts7751r2d_irq_chip __read_mostly = {
  46 + .name = "rts7751r2d",
  47 + .mask = disable_rts7751r2d_irq,
  48 + .unmask = enable_rts7751r2d_irq,
  49 + .mask_ack = disable_rts7751r2d_irq,
89 50 };
90 51  
91   -static void make_rts7751r2d_irq(unsigned int irq)
92   -{
93   - disable_irq_nosync(irq);
94   - irq_desc[irq].chip = &rts7751r2d_irq_type;
95   - disable_rts7751r2d_irq(irq);
96   -}
97   -
98 52 /*
99 53 * Initialize IRQ setting
100 54 */
... ... @@ -119,8 +73,12 @@
119 73 * IRL14=Extention #3
120 74 */
121 75  
122   - for (i=0; i<15; i++)
123   - make_rts7751r2d_irq(i);
  76 + for (i=0; i<15; i++) {
  77 + disable_irq_nosync(i);
  78 + set_irq_chip_and_handler_name(i, &rts7751r2d_irq_chip,
  79 + handle_level_irq, "level");
  80 + enable_rts7751r2d_irq(i);
  81 + }
124 82  
125 83 setup_voyagergx_irq();
126 84 }
arch/sh/boards/renesas/rts7751r2d/setup.c
1 1 /*
2 2 * Renesas Technology Sales RTS7751R2D Support.
3 3 *
4   - * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
5   - * Copyright (C) 2004 - 2006 Paul Mundt
  4 + * Copyright (C) 2002 - 2006 Atom Create Engineering Co., Ltd.
  5 + * Copyright (C) 2004 - 2007 Paul Mundt
6 6 *
7 7 * This file is subject to the terms and conditions of the GNU General Public
8 8 * License. See the file "COPYING" in the main directory of this archive
9 9  
10 10  
11 11  
... ... @@ -10,34 +10,14 @@
10 10 */
11 11 #include <linux/init.h>
12 12 #include <linux/platform_device.h>
  13 +#include <linux/pata_platform.h>
13 14 #include <linux/serial_8250.h>
14 15 #include <linux/pm.h>
15 16 #include <asm/machvec.h>
16   -#include <asm/mach/rts7751r2d.h>
17   -#include <asm/io.h>
  17 +#include <asm/rts7751r2d.h>
18 18 #include <asm/voyagergx.h>
  19 +#include <asm/io.h>
19 20  
20   -extern void heartbeat_rts7751r2d(void);
21   -extern void init_rts7751r2d_IRQ(void);
22   -extern int rts7751r2d_irq_demux(int irq);
23   -
24   -extern void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
25   -extern int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t);
26   -
27   -static struct plat_serial8250_port uart_platform_data[] = {
28   - {
29   - .membase = (void *)VOYAGER_UART_BASE,
30   - .mapbase = VOYAGER_UART_BASE,
31   - .iotype = UPIO_MEM,
32   - .irq = VOYAGER_UART0_IRQ,
33   - .flags = UPF_BOOT_AUTOCONF,
34   - .regshift = 2,
35   - .uartclk = (9600 * 16),
36   - }, {
37   - .flags = 0,
38   - },
39   -};
40   -
41 21 static void __init voyagergx_serial_init(void)
42 22 {
43 23 unsigned long val;
44 24  
45 25  
46 26  
47 27  
48 28  
49 29  
50 30  
... ... @@ -45,25 +25,72 @@
45 25 /*
46 26 * GPIO Control
47 27 */
48   - val = inl(GPIO_MUX_HIGH);
  28 + val = readl((void __iomem *)GPIO_MUX_HIGH);
49 29 val |= 0x00001fe0;
50   - outl(val, GPIO_MUX_HIGH);
  30 + writel(val, (void __iomem *)GPIO_MUX_HIGH);
51 31  
52 32 /*
53 33 * Power Mode Gate
54 34 */
55   - val = inl(POWER_MODE0_GATE);
  35 + val = readl((void __iomem *)POWER_MODE0_GATE);
56 36 val |= (POWER_MODE0_GATE_U0 | POWER_MODE0_GATE_U1);
57   - outl(val, POWER_MODE0_GATE);
  37 + writel(val, (void __iomem *)POWER_MODE0_GATE);
58 38  
59   - val = inl(POWER_MODE1_GATE);
  39 + val = readl((void __iomem *)POWER_MODE1_GATE);
60 40 val |= (POWER_MODE1_GATE_U0 | POWER_MODE1_GATE_U1);
61   - outl(val, POWER_MODE1_GATE);
  41 + writel(val, (void __iomem *)POWER_MODE1_GATE);
62 42 }
63 43  
  44 +static struct resource cf_ide_resources[] = {
  45 + [0] = {
  46 + .start = PA_AREA5_IO + 0x1000,
  47 + .end = PA_AREA5_IO + 0x1000 + 0x08 - 1,
  48 + .flags = IORESOURCE_MEM,
  49 + },
  50 + [1] = {
  51 + .start = PA_AREA5_IO + 0x80c,
  52 + .end = PA_AREA5_IO + 0x80c + 0x16 - 1,
  53 + .flags = IORESOURCE_MEM,
  54 + },
  55 + [2] = {
  56 +#ifdef CONFIG_RTS7751R2D_REV11
  57 + .start = 1,
  58 +#else
  59 + .start = 2,
  60 +#endif
  61 + .flags = IORESOURCE_IRQ,
  62 + },
  63 +};
  64 +
  65 +static struct pata_platform_info pata_info = {
  66 + .ioport_shift = 1,
  67 +};
  68 +
  69 +static struct platform_device cf_ide_device = {
  70 + .name = "pata_platform",
  71 + .id = -1,
  72 + .num_resources = ARRAY_SIZE(cf_ide_resources),
  73 + .resource = cf_ide_resources,
  74 + .dev = {
  75 + .platform_data = &pata_info,
  76 + },
  77 +};
  78 +
  79 +static struct plat_serial8250_port uart_platform_data[] = {
  80 + {
  81 + .membase = (void __iomem *)VOYAGER_UART_BASE,
  82 + .mapbase = VOYAGER_UART_BASE,
  83 + .iotype = UPIO_MEM,
  84 + .irq = VOYAGER_UART0_IRQ,
  85 + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
  86 + .regshift = 2,
  87 + .uartclk = (9600 * 16),
  88 + }
  89 +};
  90 +
64 91 static struct platform_device uart_device = {
65 92 .name = "serial8250",
66   - .id = -1,
  93 + .id = PLAT8250_DEV_PLATFORM,
67 94 .dev = {
68 95 .platform_data = uart_platform_data,
69 96 },
... ... @@ -87,6 +114,7 @@
87 114 static struct platform_device *rts7751r2d_devices[] __initdata = {
88 115 &uart_device,
89 116 &heartbeat_device,
  117 + &cf_ide_device,
90 118 };
91 119  
92 120 static int __init rts7751r2d_devices_setup(void)
... ... @@ -94,6 +122,7 @@
94 122 return platform_add_devices(rts7751r2d_devices,
95 123 ARRAY_SIZE(rts7751r2d_devices));
96 124 }
  125 +__initcall(rts7751r2d_devices_setup);
97 126  
98 127 static void rts7751r2d_power_off(void)
99 128 {
100 129  
101 130  
... ... @@ -105,14 +134,17 @@
105 134 */
106 135 static void __init rts7751r2d_setup(char **cmdline_p)
107 136 {
108   - device_initcall(rts7751r2d_devices_setup);
  137 + u16 ver = ctrl_inw(PA_VERREG);
109 138  
  139 + printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
  140 +
  141 + printk(KERN_INFO "FPGA version:%d (revision:%d)\n",
  142 + (ver >> 4) & 0xf, ver & 0xf);
  143 +
110 144 ctrl_outw(0x0000, PA_OUTPORT);
111 145 pm_power_off = rts7751r2d_power_off;
112 146  
113 147 voyagergx_serial_init();
114   -
115   - printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
116 148 }
117 149  
118 150 /*
... ... @@ -122,27 +154,6 @@
122 154 .mv_name = "RTS7751R2D",
123 155 .mv_setup = rts7751r2d_setup,
124 156 .mv_nr_irqs = 72,
125   -
126   - .mv_inb = rts7751r2d_inb,
127   - .mv_inw = rts7751r2d_inw,
128   - .mv_inl = rts7751r2d_inl,
129   - .mv_outb = rts7751r2d_outb,
130   - .mv_outw = rts7751r2d_outw,
131   - .mv_outl = rts7751r2d_outl,
132   -
133   - .mv_inb_p = rts7751r2d_inb_p,
134   - .mv_inw_p = rts7751r2d_inw,
135   - .mv_inl_p = rts7751r2d_inl,
136   - .mv_outb_p = rts7751r2d_outb_p,
137   - .mv_outw_p = rts7751r2d_outw,
138   - .mv_outl_p = rts7751r2d_outl,
139   -
140   - .mv_insb = rts7751r2d_insb,
141   - .mv_insw = rts7751r2d_insw,
142   - .mv_insl = rts7751r2d_insl,
143   - .mv_outsb = rts7751r2d_outsb,
144   - .mv_outsw = rts7751r2d_outsw,
145   - .mv_outsl = rts7751r2d_outsl,
146 157  
147 158 .mv_init_irq = init_rts7751r2d_IRQ,
148 159 .mv_irq_demux = rts7751r2d_irq_demux,
arch/sh/cchips/voyagergx/irq.c
... ... @@ -28,21 +28,21 @@
28 28 unsigned long val;
29 29 unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
30 30  
31   - pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
32   - val = inl(VOYAGER_INT_MASK);
33   - val &= ~mask;
34   - outl(val, VOYAGER_INT_MASK);
  31 + pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
  32 + val = readl((void __iomem *)VOYAGER_INT_MASK);
  33 + val &= ~mask;
  34 + writel(val, (void __iomem *)VOYAGER_INT_MASK);
35 35 }
36 36  
37 37 static void enable_voyagergx_irq(unsigned int irq)
38 38 {
39   - unsigned long val;
40   - unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
  39 + unsigned long val;
  40 + unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
41 41  
42   - pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
43   - val = inl(VOYAGER_INT_MASK);
44   - val |= mask;
45   - outl(val, VOYAGER_INT_MASK);
  42 + pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
  43 + val = readl((void __iomem *)VOYAGER_INT_MASK);
  44 + val |= mask;
  45 + writel(val, (void __iomem *)VOYAGER_INT_MASK);
46 46 }
47 47  
48 48 static void mask_and_ack_voyagergx(unsigned int irq)
49 49  
... ... @@ -68,20 +68,20 @@
68 68 }
69 69  
70 70 static struct hw_interrupt_type voyagergx_irq_type = {
71   - .typename = "VOYAGERGX-IRQ",
72   - .startup = startup_voyagergx_irq,
73   - .shutdown = shutdown_voyagergx_irq,
74   - .enable = enable_voyagergx_irq,
75   - .disable = disable_voyagergx_irq,
76   - .ack = mask_and_ack_voyagergx,
77   - .end = end_voyagergx_irq,
  71 + .typename = "VOYAGERGX-IRQ",
  72 + .startup = startup_voyagergx_irq,
  73 + .shutdown = shutdown_voyagergx_irq,
  74 + .enable = enable_voyagergx_irq,
  75 + .disable = disable_voyagergx_irq,
  76 + .ack = mask_and_ack_voyagergx,
  77 + .end = end_voyagergx_irq,
78 78 };
79 79  
80 80 static irqreturn_t voyagergx_interrupt(int irq, void *dev_id)
81 81 {
82 82 printk(KERN_INFO
83 83 "VoyagerGX: spurious interrupt, status: 0x%x\n",
84   - inl(INT_STATUS));
  84 + (unsigned int)readl((void __iomem *)INT_STATUS));
85 85 return IRQ_HANDLED;
86 86 }
87 87  
88 88  
... ... @@ -93,13 +93,13 @@
93 93 void voyagergx_register_irq_demux(int irq,
94 94 int (*demux)(int irq, void *dev), void *dev)
95 95 {
96   - voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;
97   - voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;
  96 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;
  97 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;
98 98 }
99 99  
100 100 void voyagergx_unregister_irq_demux(int irq)
101 101 {
102   - voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;
  102 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;
103 103 }
104 104  
105 105 int voyagergx_irq_demux(int irq)
106 106  
107 107  
108 108  
109 109  
110 110  
111 111  
112 112  
113 113  
... ... @@ -107,31 +107,25 @@
107 107  
108 108 if (irq == IRQ_VOYAGER ) {
109 109 unsigned long i = 0, bit __attribute__ ((unused));
110   - unsigned long val = inl(INT_STATUS);
111   -#if 1
112   - if ( val & ( 1 << 1 )){
  110 + unsigned long val = readl((void __iomem *)INT_STATUS);
  111 +
  112 + if (val & (1 << 1))
113 113 i = 1;
114   - } else if ( val & ( 1 << 2 )){
  114 + else if (val & (1 << 2))
115 115 i = 2;
116   - } else if ( val & ( 1 << 6 )){
  116 + else if (val & (1 << 6))
117 117 i = 6;
118   - } else if( val & ( 1 << 10 )){
  118 + else if (val & (1 << 10))
119 119 i = 10;
120   - } else if( val & ( 1 << 11 )){
  120 + else if (val & (1 << 11))
121 121 i = 11;
122   - } else if( val & ( 1 << 12 )){
  122 + else if (val & (1 << 12))
123 123 i = 12;
124   - } else if( val & ( 1 << 17 )){
  124 + else if (val & (1 << 17))
125 125 i = 17;
126   - } else {
  126 + else
127 127 printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val);
128   - }
129   - pr_debug("voyagergx_irq_demux %ld\n", i);
130   -#else
131   - for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++)
132   - if (val & bit)
133   - break;
134   -#endif
  128 + pr_debug("voyagergx_irq_demux %d \n", i);
135 129 if (i < VOYAGER_IRQ_NUM) {
136 130 irq = VOYAGER_IRQ_BASE + i;
137 131 if (voyagergx_demux[i].func != 0)
arch/sh/cchips/voyagergx/setup.c
... ... @@ -19,7 +19,7 @@
19 19 {
20 20 unsigned long val;
21 21  
22   - val = inl(DRAM_CTRL);
  22 + val = readl((void __iomem *)DRAM_CTRL);
23 23 val |= (DRAM_CTRL_CPU_COLUMN_SIZE_256 |
24 24 DRAM_CTRL_CPU_ACTIVE_PRECHARGE |
25 25 DRAM_CTRL_CPU_RESET |
... ... @@ -29,7 +29,7 @@
29 29 DRAM_CTRL_ACTIVE_PRECHARGE |
30 30 DRAM_CTRL_RESET |
31 31 DRAM_CTRL_REMAIN_ACTIVE);
32   - outl(val, DRAM_CTRL);
  32 + writel(val, (void __iomem *)DRAM_CTRL);
33 33  
34 34 return 0;
35 35 }
arch/sh/configs/rts7751r2d_defconfig
1 1 #
2 2 # Automatically generated make config: don't edit
3   -# Linux kernel version: 2.6.18
4   -# Tue Oct 3 11:38:36 2006
  3 +# Linux kernel version: 2.6.20
  4 +# Thu Feb 15 17:17:29 2007
5 5 #
6 6 CONFIG_SUPERH=y
7 7 CONFIG_RWSEM_GENERIC_SPINLOCK=y
8 8 CONFIG_GENERIC_FIND_NEXT_BIT=y
9 9 CONFIG_GENERIC_HWEIGHT=y
10 10 CONFIG_GENERIC_HARDIRQS=y
  11 +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
11 12 CONFIG_GENERIC_IRQ_PROBE=y
12 13 CONFIG_GENERIC_CALIBRATE_DELAY=y
  14 +# CONFIG_GENERIC_TIME is not set
  15 +CONFIG_STACKTRACE_SUPPORT=y
  16 +CONFIG_LOCKDEP_SUPPORT=y
  17 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
  18 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
13 19 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
14 20  
15 21 #
16 22  
... ... @@ -33,8 +39,8 @@
33 39 # CONFIG_UTS_NS is not set
34 40 # CONFIG_AUDIT is not set
35 41 # CONFIG_IKCONFIG is not set
  42 +CONFIG_SYSFS_DEPRECATED=y
36 43 # CONFIG_RELAY is not set
37   -CONFIG_INITRAMFS_SOURCE=""
38 44 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
39 45 CONFIG_SYSCTL=y
40 46 CONFIG_EMBEDDED=y
41 47  
... ... @@ -97,10 +103,8 @@
97 103 # CONFIG_SH_73180_SOLUTION_ENGINE is not set
98 104 # CONFIG_SH_7751_SYSTEMH is not set
99 105 # CONFIG_SH_HP6XX is not set
100   -# CONFIG_SH_EC3104 is not set
101 106 # CONFIG_SH_SATURN is not set
102 107 # CONFIG_SH_DREAMCAST is not set
103   -# CONFIG_SH_BIGSUR is not set
104 108 # CONFIG_SH_MPC1211 is not set
105 109 # CONFIG_SH_SH03 is not set
106 110 # CONFIG_SH_SECUREEDGE5410 is not set
... ... @@ -113,6 +117,9 @@
113 117 # CONFIG_SH_LANDISK is not set
114 118 # CONFIG_SH_TITAN is not set
115 119 # CONFIG_SH_SHMIN is not set
  120 +# CONFIG_SH_7206_SOLUTION_ENGINE is not set
  121 +# CONFIG_SH_7619_SOLUTION_ENGINE is not set
  122 +# CONFIG_SH_ASDAP310 is not set
116 123 # CONFIG_SH_UNKNOWN is not set
117 124  
118 125 #
119 126  
... ... @@ -124,8 +131,14 @@
124 131 # SH-2 Processor Support
125 132 #
126 133 # CONFIG_CPU_SUBTYPE_SH7604 is not set
  134 +# CONFIG_CPU_SUBTYPE_SH7619 is not set
127 135  
128 136 #
  137 +# SH-2A Processor Support
  138 +#
  139 +# CONFIG_CPU_SUBTYPE_SH7206 is not set
  140 +
  141 +#
129 142 # SH-3 Processor Support
130 143 #
131 144 # CONFIG_CPU_SUBTYPE_SH7300 is not set
132 145  
... ... @@ -159,12 +172,14 @@
159 172 #
160 173 # CONFIG_CPU_SUBTYPE_SH7770 is not set
161 174 # CONFIG_CPU_SUBTYPE_SH7780 is not set
  175 +# CONFIG_CPU_SUBTYPE_SH7785 is not set
162 176  
163 177 #
164 178 # SH4AL-DSP Processor Support
165 179 #
166 180 # CONFIG_CPU_SUBTYPE_SH73180 is not set
167 181 # CONFIG_CPU_SUBTYPE_SH7343 is not set
  182 +# CONFIG_CPU_SUBTYPE_SH7722 is not set
168 183  
169 184 #
170 185 # Memory management options
... ... @@ -174,6 +189,9 @@
174 189 CONFIG_MEMORY_START=0x0c000000
175 190 CONFIG_MEMORY_SIZE=0x04000000
176 191 CONFIG_VSYSCALL=y
  192 +CONFIG_PAGE_SIZE_4KB=y
  193 +# CONFIG_PAGE_SIZE_8KB is not set
  194 +# CONFIG_PAGE_SIZE_64KB is not set
177 195 CONFIG_SELECT_MEMORY_MODEL=y
178 196 CONFIG_FLATMEM_MANUAL=y
179 197 # CONFIG_DISCONTIGMEM_MANUAL is not set
... ... @@ -183,6 +201,7 @@
183 201 # CONFIG_SPARSEMEM_STATIC is not set
184 202 CONFIG_SPLIT_PTLOCK_CPUS=4
185 203 # CONFIG_RESOURCES_64BIT is not set
  204 +CONFIG_ZONE_DMA_FLAG=0
186 205  
187 206 #
188 207 # Cache configuration
189 208  
190 209  
... ... @@ -195,11 +214,14 @@
195 214 # Processor features
196 215 #
197 216 CONFIG_CPU_LITTLE_ENDIAN=y
  217 +# CONFIG_CPU_BIG_ENDIAN is not set
198 218 CONFIG_SH_FPU=y
199 219 # CONFIG_SH_DSP is not set
200 220 # CONFIG_SH_STORE_QUEUES is not set
201 221 CONFIG_CPU_HAS_INTEVT=y
  222 +CONFIG_CPU_HAS_IPR_IRQ=y
202 223 CONFIG_CPU_HAS_SR_RB=y
  224 +CONFIG_CPU_HAS_PTEA=y
203 225  
204 226 #
205 227 # Timer support
... ... @@ -210,6 +232,8 @@
210 232 # RTS7751R2D options
211 233 #
212 234 CONFIG_RTS7751R2D_REV11=y
  235 +CONFIG_SH_TIMER_IRQ=16
  236 +# CONFIG_NO_IDLE_HZ is not set
213 237 CONFIG_SH_PCLK_FREQ=60000000
214 238  
215 239 #
216 240  
... ... @@ -232,10 +256,16 @@
232 256 CONFIG_HEARTBEAT=y
233 257  
234 258 #
  259 +# Additional SuperH Device Drivers
  260 +#
  261 +# CONFIG_PUSH_SWITCH is not set
  262 +
  263 +#
235 264 # Kernel features
236 265 #
237 266 # CONFIG_HZ_100 is not set
238 267 CONFIG_HZ_250=y
  268 +# CONFIG_HZ_300 is not set
239 269 # CONFIG_HZ_1000 is not set
240 270 CONFIG_HZ=250
241 271 # CONFIG_KEXEC is not set
... ... @@ -251,7 +281,7 @@
251 281 CONFIG_BOOT_LINK_OFFSET=0x00800000
252 282 # CONFIG_UBC_WAKEUP is not set
253 283 CONFIG_CMDLINE_BOOL=y
254   -CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1"
  284 +CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
255 285  
256 286 #
257 287 # Bus options
... ... @@ -260,7 +290,6 @@
260 290 CONFIG_SH_PCIDMA_NONCOHERENT=y
261 291 CONFIG_PCI_AUTO=y
262 292 CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
263   -# CONFIG_PCI_MULTITHREAD_PROBE is not set
264 293  
265 294 #
266 295 # PCCARD (PCMCIA/CardBus) support
... ... @@ -302,6 +331,7 @@
302 331 CONFIG_XFRM=y
303 332 # CONFIG_XFRM_USER is not set
304 333 # CONFIG_XFRM_SUB_POLICY is not set
  334 +# CONFIG_XFRM_MIGRATE is not set
305 335 # CONFIG_NET_KEY is not set
306 336 CONFIG_INET=y
307 337 # CONFIG_IP_MULTICAST is not set
308 338  
... ... @@ -319,11 +349,13 @@
319 349 # CONFIG_INET_TUNNEL is not set
320 350 CONFIG_INET_XFRM_MODE_TRANSPORT=y
321 351 CONFIG_INET_XFRM_MODE_TUNNEL=y
  352 +CONFIG_INET_XFRM_MODE_BEET=y
322 353 CONFIG_INET_DIAG=y
323 354 CONFIG_INET_TCP_DIAG=y
324 355 # CONFIG_TCP_CONG_ADVANCED is not set
325 356 CONFIG_TCP_CONG_CUBIC=y
326 357 CONFIG_DEFAULT_TCP_CONG="cubic"
  358 +# CONFIG_TCP_MD5SIG is not set
327 359 # CONFIG_IPV6 is not set
328 360 # CONFIG_INET6_XFRM_TUNNEL is not set
329 361 # CONFIG_INET6_TUNNEL is not set
... ... @@ -380,7 +412,7 @@
380 412 #
381 413 CONFIG_STANDALONE=y
382 414 CONFIG_PREVENT_FIRMWARE_BUILD=y
383   -# CONFIG_FW_LOADER is not set
  415 +CONFIG_FW_LOADER=m
384 416 # CONFIG_SYS_HYPERVISOR is not set
385 417  
386 418 #
387 419  
388 420  
389 421  
390 422  
391 423  
392 424  
393 425  
394 426  
395 427  
... ... @@ -422,44 +454,145 @@
422 454 # CONFIG_ATA_OVER_ETH is not set
423 455  
424 456 #
  457 +# Misc devices
  458 +#
  459 +# CONFIG_SGI_IOC4 is not set
  460 +# CONFIG_TIFM_CORE is not set
  461 +
  462 +#
425 463 # ATA/ATAPI/MFM/RLL support
426 464 #
427   -CONFIG_IDE=y
428   -CONFIG_IDE_MAX_HWIFS=4
429   -CONFIG_BLK_DEV_IDE=y
  465 +# CONFIG_IDE is not set
430 466  
431 467 #
432   -# Please see Documentation/ide.txt for help/info on IDE drives
  468 +# SCSI device support
433 469 #
434   -# CONFIG_BLK_DEV_IDE_SATA is not set
435   -CONFIG_BLK_DEV_IDEDISK=y
436   -# CONFIG_IDEDISK_MULTI_MODE is not set
437   -# CONFIG_BLK_DEV_IDECD is not set
438   -# CONFIG_BLK_DEV_IDETAPE is not set
439   -# CONFIG_BLK_DEV_IDEFLOPPY is not set
440   -# CONFIG_IDE_TASK_IOCTL is not set
  470 +# CONFIG_RAID_ATTRS is not set
  471 +CONFIG_SCSI=y
  472 +# CONFIG_SCSI_TGT is not set
  473 +# CONFIG_SCSI_NETLINK is not set
  474 +CONFIG_SCSI_PROC_FS=y
441 475  
442 476 #
443   -# IDE chipset support/bugfixes
  477 +# SCSI support type (disk, tape, CD-ROM)
444 478 #
445   -CONFIG_IDE_GENERIC=y
446   -# CONFIG_BLK_DEV_IDEPCI is not set
447   -# CONFIG_IDE_ARM is not set
448   -# CONFIG_BLK_DEV_IDEDMA is not set
449   -# CONFIG_IDEDMA_AUTO is not set
450   -# CONFIG_BLK_DEV_HD is not set
  479 +CONFIG_BLK_DEV_SD=y
  480 +# CONFIG_CHR_DEV_ST is not set
  481 +# CONFIG_CHR_DEV_OSST is not set
  482 +# CONFIG_BLK_DEV_SR is not set
  483 +# CONFIG_CHR_DEV_SG is not set
  484 +# CONFIG_CHR_DEV_SCH is not set
451 485  
452 486 #
453   -# SCSI device support
  487 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
454 488 #
455   -# CONFIG_RAID_ATTRS is not set
456   -# CONFIG_SCSI is not set
457   -# CONFIG_SCSI_NETLINK is not set
  489 +# CONFIG_SCSI_MULTI_LUN is not set
  490 +# CONFIG_SCSI_CONSTANTS is not set
  491 +# CONFIG_SCSI_LOGGING is not set
  492 +# CONFIG_SCSI_SCAN_ASYNC is not set
458 493  
459 494 #
  495 +# SCSI Transports
  496 +#
  497 +# CONFIG_SCSI_SPI_ATTRS is not set
  498 +# CONFIG_SCSI_FC_ATTRS is not set
  499 +# CONFIG_SCSI_ISCSI_ATTRS is not set
  500 +# CONFIG_SCSI_SAS_ATTRS is not set
  501 +# CONFIG_SCSI_SAS_LIBSAS is not set
  502 +
  503 +#
  504 +# SCSI low-level drivers
  505 +#
  506 +# CONFIG_ISCSI_TCP is not set
  507 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
  508 +# CONFIG_SCSI_3W_9XXX is not set
  509 +# CONFIG_SCSI_ACARD is not set
  510 +# CONFIG_SCSI_AACRAID is not set
  511 +# CONFIG_SCSI_AIC7XXX is not set
  512 +# CONFIG_SCSI_AIC7XXX_OLD is not set
  513 +# CONFIG_SCSI_AIC79XX is not set
  514 +# CONFIG_SCSI_AIC94XX is not set
  515 +# CONFIG_SCSI_DPT_I2O is not set
  516 +# CONFIG_SCSI_ARCMSR is not set
  517 +# CONFIG_MEGARAID_NEWGEN is not set
  518 +# CONFIG_MEGARAID_LEGACY is not set
  519 +# CONFIG_MEGARAID_SAS is not set
  520 +# CONFIG_SCSI_HPTIOP is not set
  521 +# CONFIG_SCSI_DMX3191D is not set
  522 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
  523 +# CONFIG_SCSI_IPS is not set
  524 +# CONFIG_SCSI_INITIO is not set
  525 +# CONFIG_SCSI_INIA100 is not set
  526 +# CONFIG_SCSI_STEX is not set
  527 +# CONFIG_SCSI_SYM53C8XX_2 is not set
  528 +# CONFIG_SCSI_IPR is not set
  529 +# CONFIG_SCSI_QLOGIC_1280 is not set
  530 +# CONFIG_SCSI_QLA_FC is not set
  531 +# CONFIG_SCSI_QLA_ISCSI is not set
  532 +# CONFIG_SCSI_LPFC is not set
  533 +# CONFIG_SCSI_DC395x is not set
  534 +# CONFIG_SCSI_DC390T is not set
  535 +# CONFIG_SCSI_NSP32 is not set
  536 +# CONFIG_SCSI_DEBUG is not set
  537 +# CONFIG_SCSI_SRP is not set
  538 +
  539 +#
460 540 # Serial ATA (prod) and Parallel ATA (experimental) drivers
461 541 #
462   -# CONFIG_ATA is not set
  542 +CONFIG_ATA=y
  543 +# CONFIG_ATA_NONSTANDARD is not set
  544 +# CONFIG_SATA_AHCI is not set
  545 +# CONFIG_SATA_SVW is not set
  546 +# CONFIG_ATA_PIIX is not set
  547 +# CONFIG_SATA_MV is not set
  548 +# CONFIG_SATA_NV is not set
  549 +# CONFIG_PDC_ADMA is not set
  550 +# CONFIG_SATA_QSTOR is not set
  551 +# CONFIG_SATA_PROMISE is not set
  552 +# CONFIG_SATA_SX4 is not set
  553 +# CONFIG_SATA_SIL is not set
  554 +# CONFIG_SATA_SIL24 is not set
  555 +# CONFIG_SATA_SIS is not set
  556 +# CONFIG_SATA_ULI is not set
  557 +# CONFIG_SATA_VIA is not set
  558 +# CONFIG_SATA_VITESSE is not set
  559 +# CONFIG_SATA_INIC162X is not set
  560 +# CONFIG_PATA_ALI is not set
  561 +# CONFIG_PATA_AMD is not set
  562 +# CONFIG_PATA_ARTOP is not set
  563 +# CONFIG_PATA_ATIIXP is not set
  564 +# CONFIG_PATA_CMD64X is not set
  565 +# CONFIG_PATA_CS5520 is not set
  566 +# CONFIG_PATA_CS5530 is not set
  567 +# CONFIG_PATA_CYPRESS is not set
  568 +# CONFIG_PATA_EFAR is not set
  569 +# CONFIG_ATA_GENERIC is not set
  570 +# CONFIG_PATA_HPT366 is not set
  571 +# CONFIG_PATA_HPT37X is not set
  572 +# CONFIG_PATA_HPT3X2N is not set
  573 +# CONFIG_PATA_HPT3X3 is not set
  574 +# CONFIG_PATA_IT821X is not set
  575 +# CONFIG_PATA_IT8213 is not set
  576 +# CONFIG_PATA_JMICRON is not set
  577 +# CONFIG_PATA_TRIFLEX is not set
  578 +# CONFIG_PATA_MARVELL is not set
  579 +# CONFIG_PATA_MPIIX is not set
  580 +# CONFIG_PATA_OLDPIIX is not set
  581 +# CONFIG_PATA_NETCELL is not set
  582 +# CONFIG_PATA_NS87410 is not set
  583 +# CONFIG_PATA_OPTI is not set
  584 +# CONFIG_PATA_OPTIDMA is not set
  585 +# CONFIG_PATA_PDC_OLD is not set
  586 +# CONFIG_PATA_RADISYS is not set
  587 +# CONFIG_PATA_RZ1000 is not set
  588 +# CONFIG_PATA_SC1200 is not set
  589 +# CONFIG_PATA_SERVERWORKS is not set
  590 +# CONFIG_PATA_PDC2027X is not set
  591 +# CONFIG_PATA_SIL680 is not set
  592 +# CONFIG_PATA_SIS is not set
  593 +# CONFIG_PATA_VIA is not set
  594 +# CONFIG_PATA_WINBOND is not set
  595 +CONFIG_PATA_PLATFORM=y
463 596  
464 597 #
465 598 # Multi-device support (RAID and LVM)
... ... @@ -470,6 +603,9 @@
470 603 # Fusion MPT device support
471 604 #
472 605 # CONFIG_FUSION is not set
  606 +# CONFIG_FUSION_SPI is not set
  607 +# CONFIG_FUSION_FC is not set
  608 +# CONFIG_FUSION_SAS is not set
473 609  
474 610 #
475 611 # IEEE 1394 (FireWire) support
... ... @@ -540,6 +676,7 @@
540 676 # CONFIG_SUNDANCE is not set
541 677 # CONFIG_TLAN is not set
542 678 # CONFIG_VIA_RHINE is not set
  679 +# CONFIG_SC92031 is not set
543 680  
544 681 #
545 682 # Ethernet (1000 Mbit)
546 683  
547 684  
... ... @@ -559,14 +696,17 @@
559 696 # CONFIG_TIGON3 is not set
560 697 # CONFIG_BNX2 is not set
561 698 # CONFIG_QLA3XXX is not set
  699 +# CONFIG_ATL1 is not set
562 700  
563 701 #
564 702 # Ethernet (10000 Mbit)
565 703 #
566 704 # CONFIG_CHELSIO_T1 is not set
  705 +# CONFIG_CHELSIO_T3 is not set
567 706 # CONFIG_IXGB is not set
568 707 # CONFIG_S2IO is not set
569 708 # CONFIG_MYRI10GE is not set
  709 +# CONFIG_NETXEN_NIC is not set
570 710  
571 711 #
572 712 # Token Ring devices
... ... @@ -611,6 +751,7 @@
611 751 # CONFIG_HIPPI is not set
612 752 # CONFIG_PPP is not set
613 753 # CONFIG_SLIP is not set
  754 +# CONFIG_NET_FC is not set
614 755 # CONFIG_SHAPER is not set
615 756 # CONFIG_NETCONSOLE is not set
616 757 # CONFIG_NETPOLL is not set
617 758  
618 759  
... ... @@ -646,14 +787,23 @@
646 787 #
647 788 # Serial drivers
648 789 #
649   -# CONFIG_SERIAL_8250 is not set
  790 +CONFIG_SERIAL_8250=y
  791 +# CONFIG_SERIAL_8250_CONSOLE is not set
  792 +CONFIG_SERIAL_8250_PCI=y
  793 +CONFIG_SERIAL_8250_NR_UARTS=4
  794 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4
  795 +# CONFIG_SERIAL_8250_EXTENDED is not set
650 796  
651 797 #
652 798 # Non-8250 serial port support
653 799 #
654   -# CONFIG_SERIAL_SH_SCI is not set
  800 +CONFIG_SERIAL_SH_SCI=y
  801 +CONFIG_SERIAL_SH_SCI_NR_UARTS=1
  802 +CONFIG_SERIAL_SH_SCI_CONSOLE=y
  803 +CONFIG_SERIAL_CORE=y
  804 +CONFIG_SERIAL_CORE_CONSOLE=y
655 805 # CONFIG_SERIAL_JSM is not set
656   -# CONFIG_UNIX98_PTYS is not set
  806 +CONFIG_UNIX98_PTYS=y
657 807 CONFIG_LEGACY_PTYS=y
658 808 CONFIG_LEGACY_PTY_COUNT=256
659 809  
... ... @@ -671,10 +821,6 @@
671 821 # CONFIG_DTLK is not set
672 822 # CONFIG_R3964 is not set
673 823 # CONFIG_APPLICOM is not set
674   -
675   -#
676   -# Ftape, the floppy tape device driver
677   -#
678 824 # CONFIG_DRM is not set
679 825 # CONFIG_RAW_DRIVER is not set
680 826  
... ... @@ -682,7 +828,6 @@
682 828 # TPM devices
683 829 #
684 830 # CONFIG_TCG_TPM is not set
685   -# CONFIG_TELCLOCK is not set
686 831  
687 832 #
688 833 # I2C support
... ... @@ -698,6 +843,7 @@
698 843 #
699 844 # Dallas's 1-wire bus
700 845 #
  846 +# CONFIG_W1 is not set
701 847  
702 848 #
703 849 # Hardware Monitoring support
704 850  
705 851  
... ... @@ -706,18 +852,14 @@
706 852 # CONFIG_HWMON_VID is not set
707 853 # CONFIG_SENSORS_ABITUGURU is not set
708 854 # CONFIG_SENSORS_F71805F is not set
  855 +# CONFIG_SENSORS_PC87427 is not set
709 856 # CONFIG_SENSORS_VT1211 is not set
710 857 # CONFIG_HWMON_DEBUG_CHIP is not set
711 858  
712 859 #
713   -# Misc devices
714   -#
715   -
716   -#
717 860 # Multimedia devices
718 861 #
719 862 # CONFIG_VIDEO_DEV is not set
720   -CONFIG_VIDEO_V4L2=y
721 863  
722 864 #
723 865 # Digital Video Broadcasting Devices
... ... @@ -759,7 +901,6 @@
759 901 CONFIG_SND_MPU401_UART=m
760 902 CONFIG_SND_OPL3_LIB=m
761 903 CONFIG_SND_AC97_CODEC=m
762   -CONFIG_SND_AC97_BUS=m
763 904 # CONFIG_SND_DUMMY is not set
764 905 # CONFIG_SND_MTPAV is not set
765 906 # CONFIG_SND_SERIAL_U16550 is not set
... ... @@ -782,6 +923,18 @@
782 923 # CONFIG_SND_CMIPCI is not set
783 924 # CONFIG_SND_CS4281 is not set
784 925 # CONFIG_SND_CS46XX is not set
  926 +# CONFIG_SND_DARLA20 is not set
  927 +# CONFIG_SND_GINA20 is not set
  928 +# CONFIG_SND_LAYLA20 is not set
  929 +# CONFIG_SND_DARLA24 is not set
  930 +# CONFIG_SND_GINA24 is not set
  931 +# CONFIG_SND_LAYLA24 is not set
  932 +# CONFIG_SND_MONA is not set
  933 +# CONFIG_SND_MIA is not set
  934 +# CONFIG_SND_ECHO3G is not set
  935 +# CONFIG_SND_INDIGO is not set
  936 +# CONFIG_SND_INDIGOIO is not set
  937 +# CONFIG_SND_INDIGODJ is not set
785 938 # CONFIG_SND_EMU10K1 is not set
786 939 # CONFIG_SND_EMU10K1X is not set
787 940 # CONFIG_SND_ENS1370 is not set
... ... @@ -801,6 +954,7 @@
801 954 # CONFIG_SND_MIXART is not set
802 955 # CONFIG_SND_NM256 is not set
803 956 # CONFIG_SND_PCXHR is not set
  957 +# CONFIG_SND_RIPTIDE is not set
804 958 # CONFIG_SND_RME32 is not set
805 959 # CONFIG_SND_RME96 is not set
806 960 # CONFIG_SND_RME9652 is not set
807 961  
808 962  
809 963  
... ... @@ -813,17 +967,22 @@
813 967 # CONFIG_SND_AC97_POWER_SAVE is not set
814 968  
815 969 #
  970 +# SoC audio support
  971 +#
  972 +# CONFIG_SND_SOC is not set
  973 +
  974 +#
816 975 # Open Sound System
817 976 #
818 977 CONFIG_SOUND_PRIME=m
819   -# CONFIG_OSS_OBSOLETE_DRIVER is not set
  978 +# CONFIG_OBSOLETE_OSS is not set
820 979 # CONFIG_SOUND_BT878 is not set
821   -# CONFIG_SOUND_ES1371 is not set
822 980 # CONFIG_SOUND_ICH is not set
823 981 # CONFIG_SOUND_TRIDENT is not set
824 982 # CONFIG_SOUND_MSNDCLAS is not set
825 983 # CONFIG_SOUND_MSNDPIN is not set
826 984 # CONFIG_SOUND_VIA82CXXX is not set
  985 +CONFIG_AC97_BUS=m
827 986  
828 987 #
829 988 # USB support
830 989  
... ... @@ -872,9 +1031,31 @@
872 1031 #
873 1032 # Real Time Clock
874 1033 #
875   -# CONFIG_RTC_CLASS is not set
  1034 +CONFIG_RTC_LIB=y
  1035 +CONFIG_RTC_CLASS=y
  1036 +CONFIG_RTC_HCTOSYS=y
  1037 +CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
  1038 +# CONFIG_RTC_DEBUG is not set
876 1039  
877 1040 #
  1041 +# RTC interfaces
  1042 +#
  1043 +CONFIG_RTC_INTF_SYSFS=y
  1044 +CONFIG_RTC_INTF_PROC=y
  1045 +CONFIG_RTC_INTF_DEV=y
  1046 +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
  1047 +
  1048 +#
  1049 +# RTC drivers
  1050 +#
  1051 +# CONFIG_RTC_DRV_DS1553 is not set
  1052 +# CONFIG_RTC_DRV_DS1742 is not set
  1053 +# CONFIG_RTC_DRV_M48T86 is not set
  1054 +CONFIG_RTC_DRV_SH=y
  1055 +# CONFIG_RTC_DRV_TEST is not set
  1056 +# CONFIG_RTC_DRV_V3020 is not set
  1057 +
  1058 +#
878 1059 # DMA Engine support
879 1060 #
880 1061 # CONFIG_DMA_ENGINE is not set
881 1062  
882 1063  
... ... @@ -888,16 +1069,26 @@
888 1069 #
889 1070  
890 1071 #
  1072 +# Auxiliary Display support
  1073 +#
  1074 +
  1075 +#
  1076 +# Virtualization
  1077 +#
  1078 +
  1079 +#
891 1080 # File systems
892 1081 #
893 1082 CONFIG_EXT2_FS=y
894 1083 # CONFIG_EXT2_FS_XATTR is not set
895 1084 # CONFIG_EXT2_FS_XIP is not set
896 1085 # CONFIG_EXT3_FS is not set
  1086 +# CONFIG_EXT4DEV_FS is not set
897 1087 # CONFIG_REISERFS_FS is not set
898 1088 # CONFIG_JFS_FS is not set
899 1089 # CONFIG_FS_POSIX_ACL is not set
900 1090 # CONFIG_XFS_FS is not set
  1091 +# CONFIG_GFS2_FS is not set
901 1092 # CONFIG_OCFS2_FS is not set
902 1093 CONFIG_MINIX_FS=y
903 1094 # CONFIG_ROMFS_FS is not set
... ... @@ -932,7 +1123,8 @@
932 1123 CONFIG_PROC_KCORE=y
933 1124 CONFIG_PROC_SYSCTL=y
934 1125 CONFIG_SYSFS=y
935   -# CONFIG_TMPFS is not set
  1126 +CONFIG_TMPFS=y
  1127 +# CONFIG_TMPFS_POSIX_ACL is not set
936 1128 # CONFIG_HUGETLBFS is not set
937 1129 # CONFIG_HUGETLB_PAGE is not set
938 1130 CONFIG_RAMFS=y
... ... @@ -1018,6 +1210,11 @@
1018 1210 # CONFIG_NLS_UTF8 is not set
1019 1211  
1020 1212 #
  1213 +# Distributed Lock Manager
  1214 +#
  1215 +# CONFIG_DLM is not set
  1216 +
  1217 +#
1021 1218 # Profiling support
1022 1219 #
1023 1220 CONFIG_PROFILING=y
1024 1221  
1025 1222  
1026 1223  
... ... @@ -1026,16 +1223,20 @@
1026 1223 #
1027 1224 # Kernel hacking
1028 1225 #
  1226 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1029 1227 # CONFIG_PRINTK_TIME is not set
1030 1228 CONFIG_ENABLE_MUST_CHECK=y
1031 1229 # CONFIG_MAGIC_SYSRQ is not set
1032 1230 # CONFIG_UNUSED_SYMBOLS is not set
  1231 +# CONFIG_DEBUG_FS is not set
  1232 +# CONFIG_HEADERS_CHECK is not set
1033 1233 # CONFIG_DEBUG_KERNEL is not set
1034 1234 CONFIG_LOG_BUF_SHIFT=14
1035 1235 # CONFIG_DEBUG_BUGVERBOSE is not set
1036   -# CONFIG_DEBUG_FS is not set
1037 1236 # CONFIG_SH_STANDARD_BIOS is not set
1038   -# CONFIG_EARLY_SCIF_CONSOLE is not set
  1237 +CONFIG_EARLY_SCIF_CONSOLE=y
  1238 +CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
  1239 +CONFIG_EARLY_PRINTK=y
1039 1240 # CONFIG_KGDB is not set
1040 1241  
1041 1242 #
1042 1243  
... ... @@ -1052,9 +1253,12 @@
1052 1253 #
1053 1254 # Library routines
1054 1255 #
  1256 +CONFIG_BITREVERSE=y
1055 1257 # CONFIG_CRC_CCITT is not set
1056 1258 # CONFIG_CRC16 is not set
1057 1259 CONFIG_CRC32=y
1058 1260 # CONFIG_LIBCRC32C is not set
1059 1261 CONFIG_PLIST=y
  1262 +CONFIG_HAS_IOMEM=y
  1263 +CONFIG_HAS_IOPORT=y
arch/sh/kernel/cpu/sh4/setup-sh7750.c
... ... @@ -46,11 +46,13 @@
46 46  
47 47 static struct plat_sci_port sci_platform_data[] = {
48 48 {
  49 +#ifndef CONFIG_SH_RTS7751R2D
49 50 .mapbase = 0xffe00000,
50 51 .flags = UPF_BOOT_AUTOCONF,
51 52 .type = PORT_SCI,
52 53 .irqs = { 23, 24, 25, 0 },
53 54 }, {
  55 +#endif
54 56 .mapbase = 0xffe80000,
55 57 .flags = UPF_BOOT_AUTOCONF,
56 58 .type = PORT_SCIF,
arch/sh/kernel/io_generic.c
1   -/* $Id: io_generic.c,v 1.2 2003/05/04 19:29:53 lethal Exp $
  1 +/*
  2 + * arch/sh/kernel/io_generic.c
2 3 *
3   - * linux/arch/sh/kernel/io_generic.c
4   - *
5 4 * Copyright (C) 2000 Niibe Yutaka
6   - * Copyright (C) 2005 Paul Mundt
  5 + * Copyright (C) 2005 - 2007 Paul Mundt
7 6 *
8 7 * Generic I/O routine. These can be used where a machine specific version
9 8 * is not required.
10 9  
... ... @@ -13,8 +12,9 @@
13 12 * for more details.
14 13 */
15 14 #include <linux/module.h>
16   -#include <asm/io.h>
  15 +#include <linux/io.h>
17 16 #include <asm/machvec.h>
  17 +#include <asm/cacheflush.h>
18 18  
19 19 #ifdef CONFIG_CPU_SH3
20 20 /* SH3 has a PCMCIA bug that needs a dummy read from area 6 for a
... ... @@ -96,6 +96,7 @@
96 96 while (count--)
97 97 *buf++ = *port_addr;
98 98  
  99 + flush_dcache_all();
99 100 dummy_read();
100 101 }
101 102  
... ... @@ -170,6 +171,7 @@
170 171 while (count--)
171 172 *port_addr = *buf++;
172 173  
  174 + flush_dcache_all();
173 175 dummy_read();
174 176 }
175 177  
include/asm-sh/rts7751r2d.h
... ... @@ -68,6 +68,10 @@
68 68 #define IRQ_PCISLOT2 10 /* PCI Slot #2 IRQ */
69 69 #define IRQ_EXTENTION 11 /* EXTn IRQ */
70 70  
  71 +/* arch/sh/boards/renesas/rts7751r2d/irq.c */
  72 +void init_rts7751r2d_IRQ(void);
  73 +int rts7751r2d_irq_demux(int);
  74 +
71 75 #define __IO_PREFIX rts7751r2d
72 76 #include <asm/io_generic.h>
73 77  
include/asm-sh/serial.h
... ... @@ -29,10 +29,7 @@
29 29  
30 30 #else
31 31  
32   -#define SERIAL_PORT_DFNS \
33   - /* UART CLK PORT IRQ FLAGS */ \
34   - { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
35   - { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS } /* ttyS1 */
  32 +#define SERIAL_PORT_DFNS
36 33  
37 34 #endif
38 35  
include/asm-sh/voyagergx.h
... ... @@ -308,7 +308,10 @@
308 308 #define AC97C_READ (1 << 19)
309 309 #define AC97C_WD_BIT (1 << 2)
310 310 #define AC97C_INDEX_MASK 0x7f
311   -/* -------------------------------------------------------------------- */
  311 +
  312 +/* arch/sh/cchips/voyagergx/consistent.c */
  313 +void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
  314 +int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t);
312 315  
313 316 #endif /* _VOYAGER_GX_REG_H */