c83b0341c5905e1dc909736876193ec266f8eeed
[karo-tx-uboot.git] / board / samsung / smdk5250 / exynos5-dt.c
1 /*
2  * Copyright (C) 2012 Samsung Electronics
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #include <common.h>
8 #include <fdtdec.h>
9 #include <asm/io.h>
10 #include <errno.h>
11 #include <i2c.h>
12 #include <netdev.h>
13 #include <spi.h>
14 #include <asm/arch/cpu.h>
15 #include <asm/arch/dwmmc.h>
16 #include <asm/arch/gpio.h>
17 #include <asm/arch/mmc.h>
18 #include <asm/arch/pinmux.h>
19 #include <asm/arch/power.h>
20 #include <asm/arch/sromc.h>
21 #include <power/pmic.h>
22 #include <power/max77686_pmic.h>
23 #include <tmu.h>
24
25 DECLARE_GLOBAL_DATA_PTR;
26
27 #ifdef CONFIG_SOUND_MAX98095
28 static void board_enable_audio_codec(void)
29 {
30         struct exynos5_gpio_part1 *gpio1 = (struct exynos5_gpio_part1 *)
31                                                 samsung_get_base_gpio_part1();
32
33         /* Enable MAX98095 Codec */
34         s5p_gpio_direction_output(&gpio1->x1, 7, 1);
35         s5p_gpio_set_pull(&gpio1->x1, 7, GPIO_PULL_NONE);
36 }
37 #endif
38
39 int exynos_init(void)
40 {
41 #ifdef CONFIG_SOUND_MAX98095
42         board_enable_audio_codec();
43 #endif
44         return 0;
45 }
46
47 #ifdef CONFIG_DISPLAY_BOARDINFO
48 int checkboard(void)
49 {
50         const char *board_name;
51
52         board_name = fdt_getprop(gd->fdt_blob, 0, "model", NULL);
53         if (board_name == NULL)
54                 printf("\nUnknown Board\n");
55         else
56                 printf("\nBoard: %s\n", board_name);
57
58         return 0;
59 }
60 #endif
61
62 #ifdef CONFIG_LCD
63 void exynos_cfg_lcd_gpio(void)
64 {
65         struct exynos5_gpio_part1 *gpio1 =
66                 (struct exynos5_gpio_part1 *)samsung_get_base_gpio_part1();
67
68         /* For Backlight */
69         s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);
70         s5p_gpio_set_value(&gpio1->b2, 0, 1);
71
72         /* LCD power on */
73         s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
74         s5p_gpio_set_value(&gpio1->x1, 5, 1);
75
76         /* Set Hotplug detect for DP */
77         s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
78 }
79
80 void exynos_set_dp_phy(unsigned int onoff)
81 {
82         set_dp_phy_ctrl(onoff);
83 }
84 #endif