MIPS: RBTX4927: More explicit initialization
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Tue, 19 Aug 2008 13:55:05 +0000 (22:55 +0900)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 11 Oct 2008 15:18:41 +0000 (16:18 +0100)
* Make sure all interrupts cleared on startup
* Initialize some GPIOs

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/txx9/rbtx4927/irq.c
arch/mips/txx9/rbtx4927/setup.c
include/asm-mips/txx9/rbtx4927.h

index 00cd5231da30c33524cf5ae02d7ad49d36e58851..22076e3f03a8f10b1bfd82c54ac1cf9ea10540ef 100644 (file)
@@ -142,6 +142,11 @@ static void __init toshiba_rbtx4927_irq_ioc_init(void)
 {
        int i;
 
+       /* mask all IOC interrupts */
+       writeb(0, rbtx4927_imask_addr);
+       /* clear SoftInt interrupts */
+       writeb(0, rbtx4927_softint_addr);
+
        for (i = RBTX4927_IRQ_IOC;
             i < RBTX4927_IRQ_IOC + RBTX4927_NR_IRQ_IOC; i++)
                set_irq_chip_and_handler(i, &toshiba_rbtx4927_irq_ioc_type,
index 0d39bafea794278968384700b19f7125bd8785cf..5985f330838a5ea19d3cc61f8b502e68a36632d7 100644 (file)
@@ -48,6 +48,7 @@
 #include <linux/ioport.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
+#include <linux/gpio.h>
 #include <asm/io.h>
 #include <asm/reboot.h>
 #include <asm/txx9/generic.h>
@@ -212,6 +213,14 @@ static void __init rbtx4927_mem_setup(void)
        set_io_port_base(KSEG1 + RBTX4927_ISA_IO_OFFSET);
 #endif
 
+       /* TX4927-SIO DTR on (PIO[15]) */
+       gpio_request(15, "sio-dtr");
+       gpio_direction_output(15, 1);
+       gpio_request(0, "led");
+       gpio_direction_output(0, 1);
+       gpio_request(1, "led");
+       gpio_direction_output(1, 1);
+
        tx4927_sio_init(0, 0);
 #ifdef CONFIG_SERIAL_TXX9_CONSOLE
        argptr = prom_getcmdline();
index 6fcec912c1439f22e6dbae160e2119d95c15e609..c6015463432e2df843fc5cde1358b9a794a441ef 100644 (file)
@@ -36,6 +36,7 @@
 
 #define RBTX4927_IMASK_ADDR    (IO_BASE + TXX9_CE(2) + 0x00002000)
 #define RBTX4927_IMSTAT_ADDR   (IO_BASE + TXX9_CE(2) + 0x00002006)
+#define RBTX4927_SOFTINT_ADDR  (IO_BASE + TXX9_CE(2) + 0x00003000)
 #define RBTX4927_SOFTRESET_ADDR        (IO_BASE + TXX9_CE(2) + 0x0000f000)
 #define RBTX4927_SOFTRESETLOCK_ADDR    (IO_BASE + TXX9_CE(2) + 0x0000f002)
 #define RBTX4927_PCIRESET_ADDR (IO_BASE + TXX9_CE(2) + 0x0000f006)
@@ -47,6 +48,7 @@
 
 #define rbtx4927_imask_addr    ((__u8 __iomem *)RBTX4927_IMASK_ADDR)
 #define rbtx4927_imstat_addr   ((__u8 __iomem *)RBTX4927_IMSTAT_ADDR)
+#define rbtx4927_softint_addr  ((__u8 __iomem *)RBTX4927_SOFTINT_ADDR)
 #define rbtx4927_softreset_addr        ((__u8 __iomem *)RBTX4927_SOFTRESET_ADDR)
 #define rbtx4927_softresetlock_addr    \
                                ((__u8 __iomem *)RBTX4927_SOFTRESETLOCK_ADDR)