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 <errno.h>
10 #include <asm/gpio.h>
11 #include <asm/arch/pinmux.h>
12 #include <power/as3722.h>
13 #include <power/pmic.h>
14 #include "pinmux-config-nyan-big.h"
15 
16 /*
17  * Routine: pinmux_init
18  * Description: Do individual peripheral pinmux configs
19  */
20 void pinmux_init(void)
21 {
22 	gpio_config_table(nyan_big_gpio_inits,
23 			  ARRAY_SIZE(nyan_big_gpio_inits));
24 
25 	pinmux_config_pingrp_table(nyan_big_pingrps,
26 				   ARRAY_SIZE(nyan_big_pingrps));
27 
28 	pinmux_config_drvgrp_table(nyan_big_drvgrps,
29 				   ARRAY_SIZE(nyan_big_drvgrps));
30 }
31 
32 int tegra_board_id(void)
33 {
34 	static const int vector[] = {GPIO_PQ3, GPIO_PT1, GPIO_PX1,
35 					GPIO_PX4, -1};
36 
37 	gpio_claim_vector(vector, "board_id%d");
38 	return gpio_get_values_as_int(vector);
39 }
40 
41 int tegra_lcd_pmic_init(int board_id)
42 {
43 	struct udevice *pmic;
44 	int ret;
45 
46 	ret = as3722_get(&pmic);
47 	if (ret)
48 		return -ENOENT;
49 
50 	if (board_id == 0)
51 		as3722_write(pmic, 0x00, 0x3c);
52 	else
53 		as3722_write(pmic, 0x00, 0x50);
54 	as3722_write(pmic, 0x12, 0x10);
55 	as3722_write(pmic, 0x0c, 0x07);
56 	as3722_write(pmic, 0x20, 0x10);
57 
58 	return 0;
59 }
60