/* Intialize gpio set in midas board */ void midas_config_gpio_table(void) { u32 i, gpio; printk(KERN_DEBUG "%s\n", __func__); for (i = 0; i < ARRAY_SIZE(gt3_init_gpios); i++) { gpio = gt3_init_gpios[i].num; if (gpio <= EXYNOS4212_GPV4(1)) { s3c_gpio_cfgpin(gpio, gt3_init_gpios[i].cfg); s3c_gpio_setpull(gpio, gt3_init_gpios[i].pud); if (gt3_init_gpios[i].val != S3C_GPIO_SETPIN_NONE) gpio_set_value(gpio, gt3_init_gpios[i].val); s5p_gpio_set_drvstr(gpio, gt3_init_gpios[i].drv); } } #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) if (system_rev > 1) { s3c_gpio_cfgpin(EXYNOS4_GPX3(0), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS4_GPX3(0), S3C_GPIO_PULL_DOWN); } #endif #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) if (system_rev > 5) { s3c_gpio_cfgpin(EXYNOS4_GPX1(4), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS4_GPX1(4), S3C_GPIO_PULL_DOWN); } #endif }
static int reset_lcd(struct lcd_device *ld) { int err = 0; if (exynos4_smdk4x12_get_revision() == SMDK4X12_REV_0_1) { err = gpio_request_one(EXYNOS4_GPM3(6), GPIOF_OUT_INIT_HIGH, "GPM3"); if (err) { printk(KERN_ERR "failed to request GPM3 for " \ "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPM3(6), 0); mdelay(1); gpio_set_value(EXYNOS4_GPM3(6), 1); gpio_free(EXYNOS4_GPM3(6)); } else { err = gpio_request_one(EXYNOS4_GPX1(5), GPIOF_OUT_INIT_HIGH, "GPX1"); if (err) { printk(KERN_ERR "failed to request GPX1 for " \ "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPX1(5), 0); mdelay(1); gpio_set_value(EXYNOS4_GPX1(5), 1); gpio_free(EXYNOS4_GPX1(5)); } return 1; }
int s3cfb_lcd_on(struct platform_device *pdev) { int err; if (machine_is_smdkc210()) { err = gpio_request_one(EXYNOS4_GPX0(6), GPIOF_OUT_INIT_HIGH, "GPX0"); if (err) { printk(KERN_ERR "failed to request GPX0 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPX0(6), 0); mdelay(1); gpio_set_value(EXYNOS4_GPX0(6), 1); gpio_free(EXYNOS4_GPX0(6)); } else if (machine_is_smdk4412()) { if (samsung_board_rev_is_0_1()) { err = gpio_request_one(EXYNOS4212_GPM3(6), GPIOF_OUT_INIT_HIGH, "GPM3"); if (err) { printk(KERN_ERR "failed to request GPM3 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4212_GPM3(6), 0); mdelay(1); gpio_set_value(EXYNOS4212_GPM3(6), 1); gpio_free(EXYNOS4212_GPM3(6)); } else { err = gpio_request_one(EXYNOS4_GPX1(5), GPIOF_OUT_INIT_HIGH, "GPX0"); if (err) { printk(KERN_ERR "failed to request GPX0 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPX1(5), 0); mdelay(1); gpio_set_value(EXYNOS4_GPX1(5), 1); gpio_free(EXYNOS4_GPX1(5)); } } return 0; }
int s3cfb_lcd_on(struct platform_device *pdev) { int err; #ifdef CONFIG_MACH_SMDKC210 err = gpio_request_one(EXYNOS4_GPX0(6), GPIOF_OUT_INIT_HIGH, "GPX0"); if (err) { printk(KERN_ERR "failed to request GPX0 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPX0(6), 0); mdelay(1); gpio_set_value(EXYNOS4_GPX0(6), 1); gpio_free(EXYNOS4_GPX0(6)); #elif defined(CONFIG_MACH_SMDK4X12) if (samsung_board_rev_is_0_1()) { err = gpio_request_one(EXYNOS4212_GPM3(6), GPIOF_OUT_INIT_HIGH, "GPM3"); if (err) { printk(KERN_ERR "failed to request GPM3 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4212_GPM3(6), 0); mdelay(1); gpio_set_value(EXYNOS4212_GPM3(6), 1); gpio_free(EXYNOS4212_GPM3(6)); } else { err = gpio_request_one(EXYNOS4_GPX1(5), GPIOF_OUT_INIT_HIGH, "GPX0"); if (err) { printk(KERN_ERR "failed to request GPX0 for " "lcd reset control\n"); return err; } gpio_set_value(EXYNOS4_GPX1(5), 0); mdelay(1); gpio_set_value(EXYNOS4_GPX1(5), 1); gpio_free(EXYNOS4_GPX1(5)); } #endif return 0; }
static void __init armlex4210_wlan_init(void) { /* enable */ s3c_gpio_cfgpin(EXYNOS4_GPX2(0), S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(EXYNOS4_GPX2(0), S3C_GPIO_PULL_UP); /* reset */ s3c_gpio_cfgpin(EXYNOS4_GPX1(6), S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(EXYNOS4_GPX1(6), S3C_GPIO_PULL_UP); /* wakeup */ s3c_gpio_cfgpin(EXYNOS4_GPX1(5), S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(EXYNOS4_GPX1(5), S3C_GPIO_PULL_UP); }
static int wlan_gpio_ldo(unsigned int onoff) { int err; err = gpio_request(EXYNOS4_GPX1(4), "WLAN_LDO"); if (err) printk(KERN_ERR "#### failed to request GPX1_4 ####\n"); s3c_gpio_setpull(EXYNOS4_GPX1(4), S3C_GPIO_PULL_NONE); if(onoff) gpio_direction_output(EXYNOS4_GPX1(4), 1); else gpio_direction_output(EXYNOS4_GPX1(4), 0); gpio_free(EXYNOS4_GPX1(4)); return 0; }
static int lcd_power_on(struct lcd_device *ld, int enable) { struct regulator *regulator_vlcd_1v8; struct regulator *regulator_vlcd_3v0 = NULL; regulator_vlcd_1v8 = regulator_get(NULL, "vlcd_1v8"); if (IS_ERR(regulator_vlcd_1v8)) { pr_info("%s: failed to get %s\n", __func__, "vlcd_1v8"); return PTR_ERR(regulator_vlcd_1v8); } if (system_rev < 5) { regulator_vlcd_3v0 = regulator_get(NULL, "vlcd_3v3"); if (IS_ERR(regulator_vlcd_3v0)) { pr_info("%s: failed to get %s\n", __func__, "vlcd_3v3"); return PTR_ERR(regulator_vlcd_3v0); } } gpio_request_one(EXYNOS4_GPX1(1),GPIOF_OUT_INIT_HIGH, "GPX1"); if (enable){ if (system_rev < 5) { regulator_enable(regulator_vlcd_3v0); regulator_enable(regulator_vlcd_1v8); } else { gpio_set_value(EXYNOS4_GPX1(1), 1); regulator_enable(regulator_vlcd_1v8); } }else { if (system_rev < 5) regulator_disable(regulator_vlcd_3v0); else gpio_set_value(EXYNOS4_GPX1(1), 0); regulator_disable(regulator_vlcd_1v8); /*LCD RESET low at SLEEP*/ gpio_request_one(EXYNOS4_GPX2(4),GPIOF_OUT_INIT_LOW, "GPX2"); gpio_free(EXYNOS4_GPX2(4)); } if (system_rev < 5) { regulator_put(regulator_vlcd_3v0); } regulator_put(regulator_vlcd_1v8); gpio_free(EXYNOS4_GPX1(1)); return 0; }
void gt3_config_sleep_gpio_table(void) { int i; int index = min(ARRAY_SIZE(gt3_sleep_table), system_rev + 1); for (i = 0; i < index; i++) { if (gt3_sleep_table[i].ptr == NULL) continue; config_sleep_gpio_table(gt3_sleep_table[i].size, gt3_sleep_table[i].ptr); } #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) if (system_rev > 5) { s3c_gpio_slp_cfgpin(EXYNOS4_GPX1(4), S3C_GPIO_INPUT); s3c_gpio_slp_setpull_updown(EXYNOS4_GPX1(4), S3C_GPIO_PULL_DOWN); } #endif }
static void config_sleep_gpio_table(int array_size, unsigned int (*gpio_table)[3]) { u32 i, gpio; for (i = 0; i < array_size; i++) { gpio = gpio_table[i][0]; s3c_gpio_slp_cfgpin(gpio, gpio_table[i][1]); s3c_gpio_slp_setpull_updown(gpio, gpio_table[i][2]); } /* GPX GPIO setting */ s3c_gpio_cfgpin(EXYNOS4_GPX1(7), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS4_GPX1(7), S3C_GPIO_PULL_DOWN); #if defined(CONFIG_MACH_Q1_CMCC_BD) s3c_gpio_cfgpin(EXYNOS4_GPX0(5), S3C_GPIO_OUTPUT); s3c_gpio_setpull(EXYNOS4_GPX0(5), S3C_GPIO_PULL_NONE); gpio_set_value(EXYNOS4_GPX0(5), GPIO_LEVEL_LOW); #endif }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { /* Keypads can be of various combinations, Just making sure */ #if defined(CONFIG_CPU_TYPE_SCP_SUPPER) || defined(CONFIG_CPU_TYPE_POP_SUPPER) || defined(CONFIG_CPU_TYPE_POP2G_SUPPER) /* Set all the necessary GPX2 pins: KP_ROW[x] */ s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 2, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); /*GPL2: KP_COL[x] */ s3c_gpio_cfgrange_nopull(EXYNOS4_GPL2(0), 1, S3C_GPIO_SFN(3)); #elif defined(CONFIG_CPU_TYPE_SCP_ELITE) || defined(CONFIG_CPU_TYPE_POP_ELITE) || defined(CONFIG_CPU_TYPE_POP2G_ELITE) //ROW_6 s3c_gpio_cfgall_range(EXYNOS4_GPX2(6), 1, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); //ROW_7 s3c_gpio_cfgall_range(EXYNOS4_GPX2(7), 1, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); //ROW_8 s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), 1, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); //ROW_13 s3c_gpio_cfgall_range(EXYNOS4_GPX3(5), 1, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); //COL_0 s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), 1, S3C_GPIO_SFN(3)); //COL_3 s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(3), 1, S3C_GPIO_SFN(3)); //COL_5 s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(5), 1, S3C_GPIO_SFN(3)); //COL_6 s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(6), 1, S3C_GPIO_SFN(3)); #endif }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { if (rows > 8) { s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8), S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); } else { s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); } s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), cols, S3C_GPIO_SFN(3)); }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { /* Keypads can be of various combinations, Just making sure */ if (rows > 8) { /* Set all the necessary GPX2 pins: KP_ROW[0~7] */ s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); /* Set all the necessary GPX3 pins: KP_ROW[8~] */ s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8), S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); } else { /* Set all the necessary GPX2 pins: KP_ROW[x] */ s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); } /* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */ s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), cols, S3C_GPIO_SFN(3)); }
static inline int exynos4_irq_to_gpio(unsigned int irq) { if (irq < IRQ_EINT(0)) return -EINVAL; irq -= IRQ_EINT(0); if (irq < 8) return EXYNOS4_GPX0(irq); irq -= 8; if (irq < 8) return EXYNOS4_GPX1(irq); irq -= 8; if (irq < 8) return EXYNOS4_GPX2(irq); irq -= 8; if (irq < 8) return EXYNOS4_GPX3(irq); return -EINVAL; }
{ EXYNOS4_GPX0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* 3G_DET */ { EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* AP_PMIC_IRQ */ { EXYNOS4_GPX1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* NFC_IRQ */ { EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX2(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPX2(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* V_BUS_INT */ { EXYNOS4_GPX2(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
}, { .base = (S5P_VA_GPIO2 + 0xC00), .config = &gpio_cfg_noint, .irq_base = IRQ_EINT(0), .chip = { .base = EXYNOS4_GPX0(0), .ngpio = EXYNOS4_GPIO_X0_NR, .label = "GPX0", .to_irq = samsung_gpiolib_to_irq, }, }, { .base = (S5P_VA_GPIO2 + 0xC20), .config = &gpio_cfg_noint, .irq_base = IRQ_EINT(8), .chip = { .base = EXYNOS4_GPX1(0), .ngpio = EXYNOS4_GPIO_X1_NR, .label = "GPX1", .to_irq = samsung_gpiolib_to_irq, }, }, { .base = (S5P_VA_GPIO2 + 0xC40), .config = &gpio_cfg_noint, .irq_base = IRQ_EINT(16), .chip = { .base = EXYNOS4_GPX2(0), .ngpio = EXYNOS4_GPIO_X2_NR, .label = "GPX2", .to_irq = samsung_gpiolib_to_irq, }, }, {
.enabled_at_boot = 1, .init_data = &max8903_charger_en_data, }; static struct platform_device max8903_fixed_reg_dev = { .name = "reg-fixed-voltage", .id = FIXED_REG_ID_MAX8903, .dev = { .platform_data = &max8903_charger_en }, }; static struct max8903_pdata nuri_max8903 = { /* * cen: don't control with the driver, let it be * controlled by regulator above */ .dok = EXYNOS4_GPX1(4), /* TA_nCONNECTED */ /* uok, usus: not connected */ .chg = EXYNOS4_GPE2(0), /* TA_nCHG */ /* flt: vcc_1.8V_pda */ .dcm = EXYNOS4_GPL0(1), /* CURR_ADJ */ .dc_valid = true, .usb_valid = false, /* USB is not wired to MAX8903 */ }; static struct platform_device nuri_max8903_device = { .name = "max8903-charger", .dev = { .platform_data = &nuri_max8903, }, };
{EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* DOCK_INT */ #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) {EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ #else {EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* REMOTE_SENSE_IRQ */ #endif {EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* ACC_INT1 */ {EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* AP_PMIC_IRQ */ #if defined(CONFIG_TARGET_TAB3_WIFI8) {EXYNOS4_GPX1(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPX1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* HOME_KEY */ {EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ #else {EXYNOS4_GPX1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* GPIO_IPC_HOST_WAKEUP */ {EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* HOME_KEY */ #if defined(CONFIG_TARGET_TAB3_LTE8) || defined(CONFIG_TARGET_TAB3_3G8) {EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* MDM2AP_ERR_FATAL */
S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* BOOT_MODE */ { EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* HALL_SW */ { EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* DDI_ESD_INT */ { EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* MSENSE_RESET */ { EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* AP_PMIC_IRQ */ { EXYNOS4_GPX1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* QT_GPIO_RST */ { EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* NFC_IRQ */ { EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* CP2AP_WKUP_HSIC */ { EXYNOS4_GPX2(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* QT_GPIO_INT */ { EXYNOS4_GPX2(4), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* QTKEYLED_EN */
.num_regulators = ARRAY_SIZE(max8997_regulators), .regulators = max8997_regulators, .muic_pdata = &max8997_muic_pdata, .wakeup = true, .buck1_gpiodvs = true, .buck2_gpiodvs = true, .buck5_gpiodvs = false, .ignore_gpiodvs_side_effect = true, .buck125_default_idx = 0x0, .irq_base = IRQ_GPIO_END, .buck125_gpios[0] = EXYNOS4_GPX1(6), .buck125_gpios[1] = EXYNOS4_GPX1(7), .buck125_gpios[2] = EXYNOS4_GPX0(4), .buck1_voltage[0] = 1350000, .buck1_voltage[1] = 1300000, .buck1_voltage[2] = 1250000, .buck1_voltage[3] = 1200000, .buck1_voltage[4] = 1150000, .buck1_voltage[5] = 1100000, .buck1_voltage[6] = 1000000, .buck1_voltage[7] = 950000, .buck2_voltage[0] = 1100000, .buck2_voltage[1] = 1100000, .buck2_voltage[2] = 1100000,
{EXYNOS4_GPY0(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* WIMAX_MODE1 */ {EXYNOS4_GPY3(6), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_MODE0 */ { EXYNOS4_GPY3(5), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_CON1 */ {EXYNOS4_GPL2(7), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_CON0 */ {EXYNOS4_GPL2(6), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_WAKEUP */ {EXYNOS4_GPX1(3), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_CON2 */ { EXYNOS4210_GPE2(3), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_INT */ {EXYNOS4_GPX1(1), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /* WIMAX_RESET_N */ {EXYNOS4_GPA0(5), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, /*WIMAX_DBGEN_2.8V */ {EXYNOS4_GPA0(4), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, #endif };
{EXYNOS4_GPL0(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPL0(6), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPL1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPL2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPL2(5), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPL2(6), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPL2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* GPX1(0) VDDMIN (pda active) set to low at Sleep */ {EXYNOS4_GPX1(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_DOWN}, /* GPX3(2) T0 LTE HOST PORT PWR, hold previous level */ {EXYNOS4_GPX3(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, #ifdef CONFIG_TARGET_LOCALE_EUR {EXYNOS4_GPX1(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* FM_RST */ #endif {EXYNOS4_GPY0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPY1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPY1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPY1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
} /* USB OHCI */ static struct exynos4_ohci_platdata origen_ohci_pdata; static void __init origen_ohci_init(void) { struct exynos4_ohci_platdata *pdata = &origen_ohci_pdata; exynos4_ohci_set_platdata(pdata); } static struct gpio_keys_button origen_gpio_keys_table[] = { { .code = KEY_MENU, .gpio = EXYNOS4_GPX1(5), .desc = "gpio-keys: KEY_MENU", .type = EV_KEY, .active_low = 1, .wakeup = 1, .debounce_interval = 1, }, { .code = KEY_HOME, .gpio = EXYNOS4_GPX1(6), .desc = "gpio-keys: KEY_HOME", .type = EV_KEY, .active_low = 1, .wakeup = 1, .debounce_interval = 1, }, { .code = KEY_BACK,
{EXYNOS4_GPX0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* COVER_DET */ {EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* DOCK_INT -> NC*/ #if !defined(CONFIG_QC_MODEM) {EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* REMOTE_SENSE_IRQ -> NC */ {EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* CHG_INT -> NC*/ #endif {EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* AP_PMIC_IRQ */ #if !defined(CONFIG_MACH_KONA_EUR_LTE) && !defined(CONFIG_MACH_KONALTE_USA_ATT) && \ !defined(CONFIG_MACH_KONA_KOR_WIFI) && !defined(CONFIG_TARGET_LOCALE_CHN) {EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, #endif {EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* ACCESSORY_INT -> NC */ {EXYNOS4_GPX1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* OVP_FLAG */ #if defined(CONFIG_SEC_MODEM) || defined(CONFIG_QC_MODEM) {EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* SIM_DETECT */ #endif #if !defined(CONFIG_QC_MODEM) || defined(CONFIG_MACH_KONA_EUR_LTE) {EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,