i2c_read(addr, 0x03, 1, val, 1);
}
-static int poweron_key_check(void)
-{
- unsigned char addr, val[2];
-
- addr = 0xCC >> 1;
- if (max8998_probe())
- return 0;
-
- i2c_read(addr, 0x02, 1, val, 1);
- return val[0] & 0x1;
-}
-
int check_exit_key(void)
{
- return poweron_key_check();
-}
-
-static int max8998_power_key(void)
-{
- unsigned char addr, val[2];
- addr = 0xCC >> 1;
-
- if (max8998_probe())
- return 0;
-
- /* Accessing IRQ1 register */
- i2c_read(addr, 0x00, 1, val, 1);
- if (val[0] & (1 << 6))
- return 1;
-
- return 0;
-}
-
-static int power_key_check(void)
-{
- unsigned char addr, val[2];
-
- addr = 0xCC >> 1;
-
- if (max8998_probe())
- return 0;
-
- /* power_key check */
- i2c_read(addr, 0x00, 1, val, 1);
- return val[0] & (1 << 7);
+ return pmic_get_irq(PWRON1S);
}
#define KBR3 (1 << 3)
writel(0, reg + S5PC1XX_KEYIFCOL_OFFSET);
/* power_key check */
- power_key = power_key_check();
+ power_key = pmic_get_irq(PWRONR);
/* key_scan */
for (i = 0; i < col_num; i++) {
free(bmp);
for (k = 0; k < 10; k++) {
- if (max8998_power_key()) {
+ if (pmic_get_irq(PWRONF)) {
lcd_display_clear();
goto restore_screen;
} else if (!max8998_has_ext_power_source()) {
unsigned int org, org_ip3;
empty_device_info_buffer();
- if (max8998_power_key())
+ if (pmic_get_irq(PWRONF))
break;
else if (!max8998_has_ext_power_source())
break;
/* Setup Media board GPIOs */
setup_media_gpios();
- /* To usbdown automatically */
- check_keypad();
-
/* check max8998 */
pmic_bus_init(I2C_PMIC);
init_pmic();
+ /* To usbdown automatically */
+ check_keypad();
+
#ifdef CONFIG_S5PC1XXFB
display_device_info();
#endif
int usb_board_init(void)
{
/* interrupt clear */
- poweron_key_check();
+ pmic_get_irq(PWRON1S);
#ifdef CONFIG_CMD_PMIC
run_command("pmic ldo 8 on", 0);
i2c_write(addr, LP3974_REG_MODCHG, 1, val, 1);
}
-static int poweron_key_check(void)
-{
- unsigned char addr, val[2];
-
- addr = 0xCC >> 1;
- if (lp3974_probe())
- return 0;
-
- i2c_read_r(addr, LP3974_REG_IRQ3, 1, val, 1);
- return val[0] & 0x1;
-}
-
int check_exit_key(void)
{
- return poweron_key_check();
-}
-
-static int power_key_check(void)
-{
- unsigned char addr, val[4];
- int tmp;
-
- addr = 0xCC >> 1;
- if (lp3974_probe())
- return -1;
-
- /* power_key check */
- i2c_read_r(addr, LP3974_REG_IRQ1, 1, val, 4);
-
- tmp = ((val[0] & (1 << 7)) >> 7);
-
- return tmp;
+ return pmic_get_irq(PWRON1S);
}
static void check_keypad(void)
val = ~(gpio_get_value(&gpio2->x2, 1));
- power_key = power_key_check();
+ power_key = pmic_get_irq(PWRONR);
if (power_key && (val & 0x1))
auto_download = 1;
#endif
show_hw_revision();
+
+ pmic_bus_init(I2C_5);
+
check_keypad();
check_auto_burn();
#endif
#ifdef CONFIG_CMD_PMIC
- pmic_bus_init(I2C_5);
run_command("pmic ldo 4 off", 0); /* adc off */
#endif
int usb_board_init(void)
{
/* interrupt clear */
- poweron_key_check();
+ pmic_get_irq(PWRON1S);
#ifdef CONFIG_CMD_PMIC
run_command("pmic ldo 8 on", 0);
#include <common.h>
#include <i2c.h>
+#include <pmic.h>
unsigned int pmic_bus;
i2c_read(addr, reg, alen, val, len)
#endif
+unsigned int pmic_get_irq(int irq)
+{
+ unsigned char addr, val[4];
+ unsigned int ret;
+ unsigned int reg;
+ unsigned int shift;
+
+ addr = 0xCC >> 1;
+ if (pmic_probe())
+ return 0;
+
+ switch (irq) {
+ case PWRONR:
+ reg = 0;
+ shift = 7;
+ break;
+ case PWRONF:
+ reg = 0;
+ shift = 6;
+ break;
+ case PWRON1S:
+ reg = 2;
+ shift = 0;
+ break;
+ default:
+ return 0;
+ }
+
+ i2c_read_func(addr, 0x0, 1, val, 4);
+
+ ret = val[reg] & (1 << shift);
+
+ return !!ret;
+}
+
static int pmic_status(void)
{
unsigned char addr, val[2];