diff options
Diffstat (limited to 'arch/mips/txx9/rbtx4927/setup.c')
-rw-r--r-- | arch/mips/txx9/rbtx4927/setup.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/arch/mips/txx9/rbtx4927/setup.c b/arch/mips/txx9/rbtx4927/setup.c index 0d39bafea794..4a74423b2ba8 100644 --- a/arch/mips/txx9/rbtx4927/setup.c +++ b/arch/mips/txx9/rbtx4927/setup.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <linux/ioport.h> | 48 | #include <linux/ioport.h> |
49 | #include <linux/platform_device.h> | 49 | #include <linux/platform_device.h> |
50 | #include <linux/delay.h> | 50 | #include <linux/delay.h> |
51 | #include <linux/gpio.h> | ||
51 | #include <asm/io.h> | 52 | #include <asm/io.h> |
52 | #include <asm/reboot.h> | 53 | #include <asm/reboot.h> |
53 | #include <asm/txx9/generic.h> | 54 | #include <asm/txx9/generic.h> |
@@ -185,14 +186,8 @@ static void __init rbtx4937_clock_init(void); | |||
185 | 186 | ||
186 | static void __init rbtx4927_mem_setup(void) | 187 | static void __init rbtx4927_mem_setup(void) |
187 | { | 188 | { |
188 | u32 cp0_config; | ||
189 | char *argptr; | 189 | char *argptr; |
190 | 190 | ||
191 | /* enable caches -- HCP5 does this, pmon does not */ | ||
192 | cp0_config = read_c0_config(); | ||
193 | cp0_config = cp0_config & ~(TX49_CONF_IC | TX49_CONF_DC); | ||
194 | write_c0_config(cp0_config); | ||
195 | |||
196 | if (TX4927_REV_PCODE() == 0x4927) { | 191 | if (TX4927_REV_PCODE() == 0x4927) { |
197 | rbtx4927_clock_init(); | 192 | rbtx4927_clock_init(); |
198 | tx4927_setup(); | 193 | tx4927_setup(); |
@@ -212,6 +207,14 @@ static void __init rbtx4927_mem_setup(void) | |||
212 | set_io_port_base(KSEG1 + RBTX4927_ISA_IO_OFFSET); | 207 | set_io_port_base(KSEG1 + RBTX4927_ISA_IO_OFFSET); |
213 | #endif | 208 | #endif |
214 | 209 | ||
210 | /* TX4927-SIO DTR on (PIO[15]) */ | ||
211 | gpio_request(15, "sio-dtr"); | ||
212 | gpio_direction_output(15, 1); | ||
213 | gpio_request(0, "led"); | ||
214 | gpio_direction_output(0, 1); | ||
215 | gpio_request(1, "led"); | ||
216 | gpio_direction_output(1, 1); | ||
217 | |||
215 | tx4927_sio_init(0, 0); | 218 | tx4927_sio_init(0, 0); |
216 | #ifdef CONFIG_SERIAL_TXX9_CONSOLE | 219 | #ifdef CONFIG_SERIAL_TXX9_CONSOLE |
217 | argptr = prom_getcmdline(); | 220 | argptr = prom_getcmdline(); |
@@ -304,11 +307,21 @@ static void __init rbtx4927_ne_init(void) | |||
304 | platform_device_register_simple("ne", -1, res, ARRAY_SIZE(res)); | 307 | platform_device_register_simple("ne", -1, res, ARRAY_SIZE(res)); |
305 | } | 308 | } |
306 | 309 | ||
310 | static void __init rbtx4927_mtd_init(void) | ||
311 | { | ||
312 | int i; | ||
313 | |||
314 | for (i = 0; i < 2; i++) | ||
315 | tx4927_mtd_init(i); | ||
316 | } | ||
317 | |||
307 | static void __init rbtx4927_device_init(void) | 318 | static void __init rbtx4927_device_init(void) |
308 | { | 319 | { |
309 | toshiba_rbtx4927_rtc_init(); | 320 | toshiba_rbtx4927_rtc_init(); |
310 | rbtx4927_ne_init(); | 321 | rbtx4927_ne_init(); |
311 | tx4927_wdt_init(); | 322 | tx4927_wdt_init(); |
323 | rbtx4927_mtd_init(); | ||
324 | txx9_iocled_init(RBTX4927_LED_ADDR - IO_BASE, -1, 3, 1, "green", NULL); | ||
312 | } | 325 | } |
313 | 326 | ||
314 | struct txx9_board_vec rbtx4927_vec __initdata = { | 327 | struct txx9_board_vec rbtx4927_vec __initdata = { |