]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/freescale/mx35pdk/mx35pdk.c
MX35: mx35pdk: wrong board revision
[karo-tx-uboot.git] / board / freescale / mx35pdk / mx35pdk.c
index a6b5a51f45d38e279ac4db6c91400da149c63cb3..bc415b846262749d4b5ec920e72ee3f3746f57b8 100644 (file)
 #include <asm/arch/mx35_pins.h>
 #include <asm/arch/iomux.h>
 #include <i2c.h>
+#include <pmic.h>
 #include <fsl_pmic.h>
 #include <mc9sdz60.h>
 #include <mc13892.h>
 #include <linux/types.h>
-#include <mxc_gpio.h>
+#include <asm/gpio.h>
 #include <asm/arch/sys_proto.h>
 #include <netdev.h>
 
-#ifndef BOARD_LATE_INIT
-#error "BOARD_LATE_INIT must be set for this board"
+#ifndef CONFIG_BOARD_LATE_INIT
+#error "CONFIG_BOARD_LATE_INIT must be set for this board"
 #endif
 
 #ifndef CONFIG_BOARD_EARLY_INIT_F
 #error "CONFIG_BOARD_EARLY_INIT_F must be set for this board"
 #endif
 
-#define mdelay(n) ({unsigned long msec = (n); while (msec--) udelay(1000); })
-
 DECLARE_GLOBAL_DATA_PTR;
 
 int dram_init(void)
@@ -204,9 +203,10 @@ int board_init(void)
 
 static inline int pmic_detect(void)
 {
-       int id;
+       unsigned int id;
+       struct pmic *p = get_pmic();
 
-       id = pmic_reg_read(REG_IDENTIFICATION);
+       pmic_reg_read(p, REG_IDENTIFICATION, &id);
 
        id = (id >> 6) & 0x7;
        if (id == 0x7)
@@ -227,21 +227,24 @@ int board_late_init(void)
 {
        u8 val;
        u32 pmic_val;
+       struct pmic *p;
 
+       pmic_init();
        if (pmic_detect()) {
+               p = get_pmic();
                mxc_request_iomux(MX35_PIN_WATCHDOG_RST, MUX_CONFIG_SION |
                                        MUX_CONFIG_ALT1);
 
-               pmic_val = pmic_reg_read(REG_SETTING_0);
-               pmic_reg_write(REG_SETTING_0, pmic_val | VO_1_30V | VO_1_50V);
-               pmic_val = pmic_reg_read(REG_MODE_0);
-               pmic_reg_write(REG_MODE_0, pmic_val | VGEN3EN);
+               pmic_reg_read(p, REG_SETTING_0, &pmic_val);
+               pmic_reg_write(p, REG_SETTING_0,
+                       pmic_val | VO_1_30V | VO_1_50V);
+               pmic_reg_read(p, REG_MODE_0, &pmic_val);
+               pmic_reg_write(p, REG_MODE_0, pmic_val | VGEN3EN);
 
                mxc_request_iomux(MX35_PIN_COMPARE, MUX_CONFIG_GPIO);
                mxc_iomux_set_input(MUX_IN_GPIO1_IN_5, INPUT_CTL_PATH0);
 
-               mxc_gpio_direction(37, MXC_GPIO_DIRECTION_OUT);
-               mxc_gpio_set(37, 1);
+               gpio_direction_output(37, 1);
        }
 
        val = mc9sdz60_reg_read(MC9SDZ60_REG_GPIO_1) | 0x04;
@@ -255,44 +258,8 @@ int board_late_init(void)
        val |= 0x80;
        mc9sdz60_reg_write(MC9SDZ60_REG_RESET_1, val);
 
-       return 0;
-}
-
-int checkboard(void)
-{
-       struct ccm_regs *ccm =
-               (struct ccm_regs *)IMX_CCM_BASE;
-       u32 cpu_rev = get_cpu_rev();
-
-       /*
-        * Be sure that I2C is initialized to check
-        * the board revision
-        */
-       i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
-
        /* Print board revision */
-       printf("Board: MX35 PDK %d.0 ", ((get_board_rev() >> 8) + 1) & 0x0F);
-
-       /* Print CPU revision */
-       printf("i.MX35 %d.%d [", (cpu_rev & 0xF0) >> 4, cpu_rev & 0x0F);
-
-       switch (readl(&ccm->rcsr) & 0x0F) {
-       case 0x0000:
-               puts("POR");
-               break;
-       case 0x0002:
-               puts("JTAG");
-               break;
-       case 0x0004:
-               puts("RST");
-               break;
-       case 0x0008:
-               puts("WDT");
-               break;
-       default:
-               puts("unknown");
-       }
-       puts("]\n");
+       printf("Board: MX35 PDK %d.0\n", ((get_board_rev() >> 8) + 1) & 0x0F);
 
        return 0;
 }