summaryrefslogtreecommitdiffstats
path: root/board/samsung/universal_c210/universal.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/samsung/universal_c210/universal.c')
-rw-r--r--board/samsung/universal_c210/universal.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/board/samsung/universal_c210/universal.c b/board/samsung/universal_c210/universal.c
index d0ff8341f6..90fff5cf5e 100644
--- a/board/samsung/universal_c210/universal.c
+++ b/board/samsung/universal_c210/universal.c
@@ -58,13 +58,13 @@ int board_init(void)
gd->bd->bi_arch_number = MACH_TYPE_UNIVERSAL_C210;
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
- check_hw_revision();
- printf("HW Revision:\t0x%x\n", board_rev);
-
#if defined(CONFIG_PMIC)
pmic_init();
#endif
+ check_hw_revision();
+ printf("HW Revision:\t0x%x\n", board_rev);
+
return 0;
}
@@ -109,10 +109,27 @@ static unsigned short get_adc_value(int channel)
return ret;
}
+static int adc_power_control(int on)
+{
+ int ret;
+ struct pmic *p = get_pmic();
+
+ if (pmic_probe(p))
+ return -1;
+
+ ret = pmic_set_output(p,
+ MAX8998_REG_ONOFF1,
+ MAX8998_LDO4, !!on);
+
+ return ret;
+}
+
static unsigned int get_hw_revision(void)
{
int hwrev, mode0, mode1;
+ adc_power_control(1);
+
mode0 = get_adc_value(1); /* HWREV_MODE0 */
mode1 = get_adc_value(2); /* HWREV_MODE1 */
@@ -135,6 +152,8 @@ static unsigned int get_hw_revision(void)
debug("mode0: %d, mode1: %d, hwrev 0x%x\n", mode0, mode1, hwrev);
+ adc_power_control(0);
+
return hwrev;
}
OpenPOWER on IntegriCloud