[brcm63xx] register gpiochip earlier, allowing gpio-based runtime detection to be...
[openwrt/svn-archive/archive.git] / target / linux / brcm63xx / files / arch / mips / bcm63xx / prom.c
index d97ceed..964a147 100644 (file)
@@ -13,6 +13,7 @@
 #include <bcm63xx_cpu.h>
 #include <bcm63xx_io.h>
 #include <bcm63xx_regs.h>
 #include <bcm63xx_cpu.h>
 #include <bcm63xx_io.h>
 #include <bcm63xx_regs.h>
+#include <bcm63xx_gpio.h>
 
 void __init prom_init(void)
 {
 
 void __init prom_init(void)
 {
@@ -25,7 +26,11 @@ void __init prom_init(void)
        bcm_wdt_writel(WDT_STOP_2, WDT_CTL_REG);
 
        /* disable all hardware blocks clock for now */
        bcm_wdt_writel(WDT_STOP_2, WDT_CTL_REG);
 
        /* disable all hardware blocks clock for now */
-       if (BCMCPU_IS_6348())
+       if (BCMCPU_IS_6338())
+               mask = CKCTL_6338_ALL_SAFE_EN;
+       else if (BCMCPU_IS_6345())
+               mask = CKCTL_6345_UART_EN;
+       else if (BCMCPU_IS_6348())
                mask = CKCTL_6348_ALL_SAFE_EN;
        else
                /* BCMCPU_IS_6358() */
                mask = CKCTL_6348_ALL_SAFE_EN;
        else
                /* BCMCPU_IS_6358() */
@@ -38,6 +43,9 @@ void __init prom_init(void)
        /* assign command line from kernel config */
        strcpy(arcs_cmdline, CONFIG_CMDLINE);
 
        /* assign command line from kernel config */
        strcpy(arcs_cmdline, CONFIG_CMDLINE);
 
+       /* register gpiochip */
+       bcm63xx_gpio_init();
+
        /* do low level board init */
        board_prom_init();
 }
        /* do low level board init */
        board_prom_init();
 }