]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/toradex/apalis_t30/apalis_t30.c
apalis/colibri_t20/30: clean-up
[karo-tx-uboot.git] / board / toradex / apalis_t30 / apalis_t30.c
index b9d694a2688a832db433033a7d1fa9b5ccaef6e6..879006f8e05623f24de7cb0dc23a8e9bf093c6bc 100644 (file)
@@ -6,10 +6,13 @@
  */
 
 #include <common.h>
-
 #include <asm/arch/gp_padctrl.h>
 #include <asm/arch/pinmux.h>
+#include <asm/arch-tegra/ap.h>
+#include <asm/arch-tegra/tegra.h>
 #include <asm/gpio.h>
+#include <asm/io.h>
+#include <dm.h>
 #include <i2c.h>
 #include <netdev.h>
 
 #define PMU_I2C_ADDRESS                0x2D
 #define MAX_I2C_RETRY          3
 
+int arch_misc_init(void)
+{
+       if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) ==
+           NVBOOTTYPE_RECOVERY)
+               printf("USB recovery mode\n");
+
+       return 0;
+}
+
 /*
  * Routine: pinmux_init
  * Description: Do individual peripheral pinmux configs
@@ -38,15 +50,13 @@ void pinmux_init(void)
 #ifdef CONFIG_PCI_TEGRA
 int tegra_pcie_board_init(void)
 {
-       unsigned int old_bus;
+       struct udevice *dev;
        u8 addr, data[1];
        int err;
 
-       old_bus = i2c_get_bus_num();
-
-       err = i2c_set_bus_num(0);
+       err = i2c_get_chip_for_busnum(0, PMU_I2C_ADDRESS, 1, &dev);
        if (err) {
-               debug("failed to set I2C bus\n");
+               debug("%s: Cannot find PMIC I2C chip\n", __func__);
                return err;
        }
 
@@ -54,7 +64,7 @@ int tegra_pcie_board_init(void)
        data[0] = 0x27;
        addr = 0x25;
 
-       err = i2c_write(PMU_I2C_ADDRESS, addr, 1, data, 1);
+       err = dm_i2c_write(dev, addr, data, 1);
        if (err) {
                debug("failed to set VDD supply\n");
                return err;
@@ -64,7 +74,7 @@ int tegra_pcie_board_init(void)
        data[0] = 0x0D;
        addr = 0x24;
 
-       err = i2c_write(PMU_I2C_ADDRESS, addr, 1, data, 1);
+       err = dm_i2c_write(dev, addr, data, 1);
        if (err) {
                debug("failed to enable VDD supply\n");
                return err;
@@ -74,14 +84,12 @@ int tegra_pcie_board_init(void)
        data[0] = 0x0D;
        addr = 0x35;
 
-       err = i2c_write(PMU_I2C_ADDRESS, addr, 1, data, 1);
+       err = dm_i2c_write(dev, addr, data, 1);
        if (err) {
                debug("failed to set AVDD supply\n");
                return err;
        }
 
-       i2c_set_bus_num(old_bus);
-
        return 0;
 }