]> git.sur5r.net Git - u-boot/blobdiff - board/samsung/universal_c210/universal.c
powerpc/b4860qds: Add the tlb entries for SRIO interfaces
[u-boot] / board / samsung / universal_c210 / universal.c
index afe3bb0aeb81eb38a0e1dad8c5d06770eab0cc2b..9b2770f9d117ad44ec8c5d1907127c4fdeae5315 100644 (file)
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
 #include <asm/arch/pinmux.h>
-#include <pmic.h>
-#include <usb/s3c_udc.h>
-#include <asm/arch/cpu.h>
-#include <max8998_pmic.h>
 #include <asm/arch/watchdog.h>
 #include <libtizen.h>
 #include <ld9040.h>
+#include <power/pmic.h>
+#include <usb/s3c_udc.h>
+#include <asm/arch/cpu.h>
+#include <power/max8998_pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -55,7 +55,20 @@ static int get_hwrev(void)
        return board_rev & 0xFF;
 }
 
-static void check_hw_revision(void);
+static void init_pmic_lcd(void);
+
+int power_init_board(void)
+{
+       int ret;
+
+       ret = pmic_init(I2C_5);
+       if (ret)
+               return ret;
+
+       init_pmic_lcd();
+
+       return 0;
+}
 
 int dram_init(void)
 {
@@ -101,7 +114,9 @@ static unsigned short get_adc_value(int channel)
 static int adc_power_control(int on)
 {
        int ret;
-       struct pmic *p = get_pmic();
+       struct pmic *p = pmic_get("MAX8998_PMIC");
+       if (!p)
+               return -ENODEV;
 
        if (pmic_probe(p))
                return -1;
@@ -224,7 +239,9 @@ int board_mmc_init(bd_t *bis)
 static int s5pc210_phy_control(int on)
 {
        int ret = 0;
-       struct pmic *p = get_pmic();
+       struct pmic *p = pmic_get("MAX8998_PMIC");
+       if (!p)
+               return -ENODEV;
 
        if (pmic_probe(p))
                return -1;
@@ -324,7 +341,10 @@ static void init_pmic_lcd(void)
        unsigned char val;
        int ret = 0;
 
-       struct pmic *p = get_pmic();
+       struct pmic *p = pmic_get("MAX8998_PMIC");
+
+       if (!p)
+               return;
 
        if (pmic_probe(p))
                return;
@@ -364,7 +384,7 @@ static void init_pmic_lcd(void)
                puts("LCD pmic initialisation error!\n");
 }
 
-static void lcd_cfg_gpio(void)
+void exynos_cfg_lcd_gpio(void)
 {
        unsigned int i, f3_end = 4;
 
@@ -403,7 +423,7 @@ static void lcd_cfg_gpio(void)
        spi_init();
 }
 
-static void reset_lcd(void)
+void exynos_reset_lcd(void)
 {
        s5p_gpio_set_value(&gpio2->y4, 5, 1);
        udelay(10000);
@@ -413,9 +433,12 @@ static void reset_lcd(void)
        udelay(100);
 }
 
-static void lcd_power_on(void)
+void exynos_lcd_power_on(void)
 {
-       struct pmic *p = get_pmic();
+       struct pmic *p = pmic_get("MAX8998_PMIC");
+
+       if (!p)
+               return;
 
        if (pmic_probe(p))
                return;
@@ -448,10 +471,6 @@ vidinfo_t panel_info = {
        .vl_cmd_allow_len = 0xf,
 
        .win_id         = 0,
-       .cfg_gpio       = lcd_cfg_gpio,
-       .backlight_on   = NULL,
-       .lcd_power_on   = lcd_power_on,
-       .reset_lcd      = reset_lcd,
        .dual_lcd_enabled = 0,
 
        .init_delay     = 0,
@@ -461,6 +480,16 @@ vidinfo_t panel_info = {
        .mipi_enabled   = 0,
 };
 
+void exynos_cfg_ldo(void)
+{
+       ld9040_cfg_ldo();
+}
+
+void exynos_enable_ldo(unsigned int onoff)
+{
+       ld9040_enable_ldo(onoff);
+}
+
 void init_panel_info(vidinfo_t *vid)
 {
        vid->logo_on    = 1;
@@ -475,9 +504,6 @@ void init_panel_info(vidinfo_t *vid)
        vid->pclk_name = 1;     /* MPLL */
        vid->sclk_div = 1;
 
-       vid->cfg_ldo = ld9040_cfg_ldo;
-       vid->enable_ldo = ld9040_enable_ldo;
-
        setenv("lcdinfo", "lcd=ld9040");
 }
 
@@ -489,10 +515,6 @@ int board_init(void)
        gd->bd->bi_arch_number = MACH_TYPE_UNIVERSAL_C210;
        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
-#if defined(CONFIG_PMIC)
-       pmic_init();
-       init_pmic_lcd();
-#endif
 #ifdef CONFIG_SOFT_SPI
        soft_spi_init();
 #endif