tegra: nyan-big: Add additional clock and kernel init
[oweals/u-boot.git] / board / nvidia / jetson-tk1 / jetson-tk1.c
index 5d37718f3b89e8b8109f30c8c8876be60179c1fb..52425a8f6dea2622496c27d14b007c9a2103d385 100644 (file)
@@ -6,17 +6,23 @@
  */
 
 #include <common.h>
+#include <netdev.h>
+#include <power/as3722.h>
+
 #include <asm/arch/gpio.h>
 #include <asm/arch/pinmux.h>
+
 #include "pinmux-config-jetson-tk1.h"
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /*
  * Routine: pinmux_init
  * Description: Do individual peripheral pinmux configs
  */
 void pinmux_init(void)
 {
-       pinmux_set_tristate_input_clamping();
+       pinmux_clear_tristate_input_clamping();
 
        gpio_config_table(jetson_tk1_gpio_inits,
                          ARRAY_SIZE(jetson_tk1_gpio_inits));
@@ -27,3 +33,49 @@ void pinmux_init(void)
        pinmux_config_drvgrp_table(jetson_tk1_drvgrps,
                                   ARRAY_SIZE(jetson_tk1_drvgrps));
 }
+
+#ifdef CONFIG_PCI_TEGRA
+int tegra_pcie_board_init(void)
+{
+       struct udevice *pmic;
+       int err;
+
+       err = as3722_init(&pmic);
+       if (err) {
+               error("failed to initialize AS3722 PMIC: %d\n", err);
+               return err;
+       }
+
+       err = as3722_sd_enable(pmic, 4);
+       if (err < 0) {
+               error("failed to enable SD4: %d\n", err);
+               return err;
+       }
+
+       err = as3722_sd_set_voltage(pmic, 4, 0x24);
+       if (err < 0) {
+               error("failed to set SD4 voltage: %d\n", err);
+               return err;
+       }
+
+       err = as3722_gpio_configure(pmic, 1, AS3722_GPIO_OUTPUT_VDDH |
+                                            AS3722_GPIO_INVERT);
+       if (err < 0) {
+               error("failed to configure GPIO#1 as output: %d\n", err);
+               return err;
+       }
+
+       err = as3722_gpio_direction_output(pmic, 2, 1);
+       if (err < 0) {
+               error("failed to set GPIO#2 high: %d\n", err);
+               return err;
+       }
+
+       return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+       return pci_eth_init(bis);
+}
+#endif /* PCI */