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