]> git.karo-electronics.de Git - karo-tx-uboot.git/blob - board/nvidia/jetson-tk1/jetson-tk1.c
52425a8f6dea2622496c27d14b007c9a2103d385
[karo-tx-uboot.git] / board / nvidia / jetson-tk1 / jetson-tk1.c
1 /*
2  * (C) Copyright 2014
3  * NVIDIA Corporation <www.nvidia.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <common.h>
9 #include <netdev.h>
10 #include <power/as3722.h>
11
12 #include <asm/arch/gpio.h>
13 #include <asm/arch/pinmux.h>
14
15 #include "pinmux-config-jetson-tk1.h"
16
17 DECLARE_GLOBAL_DATA_PTR;
18
19 /*
20  * Routine: pinmux_init
21  * Description: Do individual peripheral pinmux configs
22  */
23 void pinmux_init(void)
24 {
25         pinmux_clear_tristate_input_clamping();
26
27         gpio_config_table(jetson_tk1_gpio_inits,
28                           ARRAY_SIZE(jetson_tk1_gpio_inits));
29
30         pinmux_config_pingrp_table(jetson_tk1_pingrps,
31                                    ARRAY_SIZE(jetson_tk1_pingrps));
32
33         pinmux_config_drvgrp_table(jetson_tk1_drvgrps,
34                                    ARRAY_SIZE(jetson_tk1_drvgrps));
35 }
36
37 #ifdef CONFIG_PCI_TEGRA
38 int tegra_pcie_board_init(void)
39 {
40         struct udevice *pmic;
41         int err;
42
43         err = as3722_init(&pmic);
44         if (err) {
45                 error("failed to initialize AS3722 PMIC: %d\n", err);
46                 return err;
47         }
48
49         err = as3722_sd_enable(pmic, 4);
50         if (err < 0) {
51                 error("failed to enable SD4: %d\n", err);
52                 return err;
53         }
54
55         err = as3722_sd_set_voltage(pmic, 4, 0x24);
56         if (err < 0) {
57                 error("failed to set SD4 voltage: %d\n", err);
58                 return err;
59         }
60
61         err = as3722_gpio_configure(pmic, 1, AS3722_GPIO_OUTPUT_VDDH |
62                                              AS3722_GPIO_INVERT);
63         if (err < 0) {
64                 error("failed to configure GPIO#1 as output: %d\n", err);
65                 return err;
66         }
67
68         err = as3722_gpio_direction_output(pmic, 2, 1);
69         if (err < 0) {
70                 error("failed to set GPIO#2 high: %d\n", err);
71                 return err;
72         }
73
74         return 0;
75 }
76
77 int board_eth_init(bd_t *bis)
78 {
79         return pci_eth_init(bis);
80 }
81 #endif /* PCI */