blob: 6f189aa74e593f61aa857fe2739bcc1ddc9dcc5b [file] [log] [blame]
Stephen Warrene04bfda2014-03-25 11:39:33 -06001/*
2 * (C) Copyright 2014
3 * NVIDIA Corporation <www.nvidia.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#include <common.h>
Thierry Reding6e2fca92014-12-09 22:25:21 -07009#include <power/as3722.h>
10
Stephen Warren93485322014-04-22 14:37:55 -060011#include <asm/arch/gpio.h>
Stephen Warrene04bfda2014-03-25 11:39:33 -060012#include <asm/arch/pinmux.h>
Thierry Reding6e2fca92014-12-09 22:25:21 -070013
Stephen Warrene04bfda2014-03-25 11:39:33 -060014#include "pinmux-config-jetson-tk1.h"
15
Thierry Reding6e2fca92014-12-09 22:25:21 -070016DECLARE_GLOBAL_DATA_PTR;
17
Stephen Warrene04bfda2014-03-25 11:39:33 -060018/*
19 * Routine: pinmux_init
20 * Description: Do individual peripheral pinmux configs
21 */
22void pinmux_init(void)
23{
Stephen Warrenc1fe92f2015-02-18 13:27:04 -070024 pinmux_clear_tristate_input_clamping();
Stephen Warren4ff213b2014-04-22 14:37:56 -060025
Stephen Warren93485322014-04-22 14:37:55 -060026 gpio_config_table(jetson_tk1_gpio_inits,
27 ARRAY_SIZE(jetson_tk1_gpio_inits));
28
Stephen Warrene04bfda2014-03-25 11:39:33 -060029 pinmux_config_pingrp_table(jetson_tk1_pingrps,
30 ARRAY_SIZE(jetson_tk1_pingrps));
31
32 pinmux_config_drvgrp_table(jetson_tk1_drvgrps,
33 ARRAY_SIZE(jetson_tk1_drvgrps));
34}
Thierry Reding6e2fca92014-12-09 22:25:21 -070035
36#ifdef CONFIG_PCI_TEGRA
37int tegra_pcie_board_init(void)
38{
39 struct udevice *pmic;
40 int err;
41
42 err = as3722_init(&pmic);
43 if (err) {
44 error("failed to initialize AS3722 PMIC: %d\n", err);
45 return err;
46 }
47
48 err = as3722_sd_enable(pmic, 4);
49 if (err < 0) {
50 error("failed to enable SD4: %d\n", err);
51 return err;
52 }
53
54 err = as3722_sd_set_voltage(pmic, 4, 0x24);
55 if (err < 0) {
56 error("failed to set SD4 voltage: %d\n", err);
57 return err;
58 }
59
60 err = as3722_gpio_configure(pmic, 1, AS3722_GPIO_OUTPUT_VDDH |
61 AS3722_GPIO_INVERT);
62 if (err < 0) {
63 error("failed to configure GPIO#1 as output: %d\n", err);
64 return err;
65 }
66
67 err = as3722_gpio_direction_output(pmic, 2, 1);
68 if (err < 0) {
69 error("failed to set GPIO#2 high: %d\n", err);
70 return err;
71 }
72
73 return 0;
74}
Thierry Reding6e2fca92014-12-09 22:25:21 -070075#endif /* PCI */