static int sprd8803_on(struct modem_ctl *mc) { if (!mc->gpio_cp_on || !mc->gpio_pda_active) { pr_err("[MODEM_IF] no gpio data\n"); return -ENXIO; } s3c_gpio_cfgpin(EXYNOS4_GPA1(4), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS4_GPA1(5), S3C_GPIO_SFN(2)); #ifdef CONFIG_SEC_DUAL_MODEM_MODE gpio_set_value(mc->gpio_sim_io_sel, 1); gpio_set_value(mc->gpio_cp_ctrl1, 0); gpio_set_value(mc->gpio_cp_ctrl2, 1); #endif msleep(100); // pr_info("[MODEM_IF] %s\n", __func__); // Kill spam gpio_set_value(mc->gpio_cp_on, 1); gpio_set_value(mc->gpio_pda_active, 1); mc->phone_state = STATE_BOOTING; return 0; }
{EXYNOS4_GPY6(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, }; /* this table only for GC1 board */ static unsigned int u1_sleep_gpio_table[][3] = { {EXYNOS4_GPA0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPA0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPA0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE},
struct gpio_init_data { uint num; uint cfg; uint val; uint pud; uint drv; }; extern int s3c_gpio_slp_cfgpin(unsigned int pin, unsigned int config); extern int s3c_gpio_slp_setpull_updown(unsigned int pin, unsigned int config); /* * M0 GPIO Init Table */ static struct gpio_init_data m0_init_gpios[] = { { EXYNOS4_GPA1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* NC */ { EXYNOS4_GPA1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1 }, /* NC */ { EXYNOS4_GPD0(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPD0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, { EXYNOS4_GPD1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1 }, /* GSENSE_SDA_1.8V */ { EXYNOS4_GPD1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
static struct s3c_gpio_chip exynos4_gpio_common_4bit[] = { { .base = S5P_VA_GPIO1, .eint_offset = 0x0, .group = 0, .chip = { .base = EXYNOS4_GPA0(0), .ngpio = EXYNOS4_GPIO_A0_NR, .label = "GPA0", }, }, { .base = (S5P_VA_GPIO1 + 0x20), .eint_offset = 0x4, .group = 1, .chip = { .base = EXYNOS4_GPA1(0), .ngpio = EXYNOS4_GPIO_A1_NR, .label = "GPA1", }, }, { .base = (S5P_VA_GPIO1 + 0x40), .eint_offset = 0x8, .group = 2, .chip = { .base = EXYNOS4_GPB(0), .ngpio = EXYNOS4_GPIO_B_NR, .label = "GPB", }, }, { .base = (S5P_VA_GPIO1 + 0x60), .eint_offset = 0xC,
* GT3 GPIO Init Table */ static struct gpio_init_data gt3_init_gpios[] = { #if defined(CONFIG_QC_MODEM) {EXYNOS4_GPA0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA0(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ #endif #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) {EXYNOS4_GPA1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPB(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* CODEC_SDA_1.8V */ {EXYNOS4_GPB(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* CODEC_SCL_1.8V */ {EXYNOS4_GPB(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* MHL_DSDA_1.8V */ {EXYNOS4_GPB(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* MHL_DSCL_1.8V */ #endif #if defined(CONFIG_TARGET_TAB3_WIFI8) {EXYNOS4_GPC1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
struct gpio_init_data { uint num; uint cfg; uint val; uint pud; uint drv; }; extern int s3c_gpio_slp_cfgpin(unsigned int pin, unsigned int config); extern int s3c_gpio_slp_setpull_updown(unsigned int pin, unsigned int config); /* * baffin GPIO Init Table */ static struct gpio_init_data baffin_init_gpios[] = { {EXYNOS4_GPA1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPD0(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, {EXYNOS4_GPD0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, {EXYNOS4_GPD1(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* NFC_SDA_1.8V */ {EXYNOS4_GPD1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* NFC_SCL_1.8V */ {EXYNOS4_GPD1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* GSENSE_SDA_1.8V */
{EXYNOS4_GPA0(1), S3C_GPIO_SLP_OUT1, S3C_GPIO_PULL_NONE}, /* BT_UART_TXD */ {EXYNOS4_GPA0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* BT_UART_CTS */ {EXYNOS4_GPA0(3), S3C_GPIO_SLP_OUT1, S3C_GPIO_PULL_NONE}, /* BT_UART_RTS */ {EXYNOS4_GPA0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* GPS_UART_RXD */ {EXYNOS4_GPA0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* GPS_UART_TXD */ {EXYNOS4_GPA0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* GPS_UART_CTS */ {EXYNOS4_GPA0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* GPS_UART_RTS */ {EXYNOS4_GPA1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* AP_RXD */ {EXYNOS4_GPA1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_TXD */ {EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* TSP_SDA_1.8V */ {EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* TSP_SCL_1.8V */ {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_FLM_RXD */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_FLM_TXD */ {EXYNOS5_GPA2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* CHG_SDA_1.8V */ {EXYNOS5_GPA2(1), S3C_GPIO_SLP_INPUT,
}; /* * GC1 GPIO Sleep Table */ static unsigned int m0_sleep_gpio_table[][3] = { {EXYNOS4_GPA0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, {EXYNOS4_GPA0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, {EXYNOS4_GPA1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, #if defined(CONFIG_SEC_MODEM) {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC(IPC_RXD) */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC(IPC_TXD) */ #else {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_FLM_RXD */ /* * UART3-TXD : It should be pulled up during sleep, if this uart is * used for PC connection like a factory command program. * Otherwise, a PC might get null characters like noise. * In addition, LPA mode is also applied to this comment, because * LPA mode invokes this GPIO sleep configuration. */
void s3c_i2c3_cfg_gpio(struct platform_device *dev) { s3c_gpio_cfgall_range(EXYNOS4_GPA1(2), 2, S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); }
void config_gsm_modem_gpio(void) { int err = 0; unsigned gpio_cp_on = gsm_modem_data.gpio_cp_on; unsigned gpio_cp_off = gsm_modem_data.gpio_cp_off; unsigned gpio_rst_req_n = gsm_modem_data.gpio_reset_req_n; unsigned gpio_cp_rst = gsm_modem_data.gpio_cp_reset; unsigned gpio_pda_active = gsm_modem_data.gpio_pda_active; unsigned gpio_phone_active = gsm_modem_data.gpio_phone_active; unsigned gpio_flm_uart_sel = gsm_modem_data.gpio_flm_uart_sel; unsigned gpio_ipc_int2ap = gsm_modem_data.gpio_ipc_int2ap; pr_err("[MODEMS] <%s>\n", __func__); if (gpio_pda_active) { err = gpio_request(gpio_pda_active, "PDA_ACTIVE"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "PDA_ACTIVE", gpio_pda_active, err); } else { gpio_direction_output(gpio_pda_active, 1); s3c_gpio_setpull(gpio_pda_active, S3C_GPIO_PULL_NONE); gpio_set_value(gpio_pda_active, 0); } } if (gpio_phone_active) { err = gpio_request(gpio_phone_active, "ESC_ACTIVE"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_ACTIVE", gpio_phone_active, err); } else { s3c_gpio_cfgpin(gpio_phone_active, S3C_GPIO_SFN(0xF)); s3c_gpio_setpull(gpio_phone_active, S3C_GPIO_PULL_NONE); irq_set_irq_type(gpio_phone_active, IRQ_TYPE_EDGE_BOTH); } } if (gpio_flm_uart_sel) { err = gpio_request(gpio_flm_uart_sel, "BOOT_SW_SEL2"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "BOOT_SW_SEL2", gpio_flm_uart_sel, err); } else { gpio_direction_output(gpio_flm_uart_sel, 1); s3c_gpio_setpull(gpio_flm_uart_sel, S3C_GPIO_PULL_NONE); gpio_set_value(gpio_flm_uart_sel, 1); } } if (gpio_cp_on) { err = gpio_request(gpio_cp_on, "ESC_ON"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_ON", gpio_cp_on, err); } else { gpio_direction_output(gpio_cp_on, 0); s3c_gpio_setpull(gpio_cp_on, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio_cp_on, S5P_GPIO_DRVSTR_LV1); gpio_set_value(gpio_cp_on, 0); } } if (gpio_cp_off) { err = gpio_request(gpio_cp_off, "ESC_OFF"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_OFF", (gpio_cp_off), err); } else { gpio_direction_output(gpio_cp_off, 1); s3c_gpio_setpull(gpio_cp_off, S3C_GPIO_PULL_NONE); gpio_set_value(gpio_cp_off, 1); } } if (gpio_rst_req_n) { err = gpio_request(gpio_rst_req_n, "ESC_RST_REQ"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_RST_REQ", gpio_rst_req_n, err); } else { gpio_direction_output(gpio_rst_req_n, 1); s3c_gpio_setpull(gpio_rst_req_n, S3C_GPIO_PULL_NONE); } gpio_set_value(gpio_rst_req_n, 0); } if (gpio_cp_rst) { err = gpio_request(gpio_cp_rst, "ESC_RST"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_RST", gpio_cp_rst, err); } else { gpio_direction_output(gpio_cp_rst, 0); s3c_gpio_setpull(gpio_cp_rst, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio_cp_rst, S5P_GPIO_DRVSTR_LV4); } gpio_set_value(gpio_cp_rst, 0); } if (gpio_ipc_int2ap) { err = gpio_request(gpio_ipc_int2ap, "ESC_DPRAM_INT"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "ESC_DPRAM_INT", gpio_ipc_int2ap, err); } else { /* Configure as a wake-up source */ s3c_gpio_cfgpin(gpio_ipc_int2ap, S3C_GPIO_SFN(0xF)); s3c_gpio_setpull(gpio_ipc_int2ap, S3C_GPIO_PULL_NONE); } } err = gpio_request(EXYNOS4_GPA1(4), "AP_CP2_UART_RXD"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "AP_CP2_UART_RXD", EXYNOS4_GPA1(4), err); } else { s3c_gpio_cfgpin(EXYNOS4_GPA1(4), S3C_GPIO_SFN(0x2)); s3c_gpio_setpull(EXYNOS4_GPA1(4), S3C_GPIO_PULL_NONE); } err = gpio_request(EXYNOS4_GPA1(5), "AP_CP2_UART_TXD"); if (err) { pr_err("fail to request gpio %s, gpio %d, errno %d\n", "AP_CP2_UART_TXD", EXYNOS4_GPA1(5), err); } else { s3c_gpio_cfgpin(EXYNOS4_GPA1(5), S3C_GPIO_SFN(0x2)); s3c_gpio_setpull(EXYNOS4_GPA1(5), S3C_GPIO_PULL_NONE); } }
static void tdscdma_modem_cfg_gpio(void) { int err = 0; unsigned gpio_cp_on = tdscdma_modem_data.gpio_cp_on; unsigned gpio_pda_active = tdscdma_modem_data.gpio_pda_active; unsigned gpio_phone_active = tdscdma_modem_data.gpio_phone_active; unsigned gpio_cp_dump_int = tdscdma_modem_data.gpio_cp_dump_int; unsigned gpio_ipc_mrdy = tdscdma_modem_data.gpio_ipc_mrdy; unsigned gpio_ipc_srdy = tdscdma_modem_data.gpio_ipc_srdy; unsigned gpio_ipc_sub_mrdy = tdscdma_modem_data.gpio_ipc_sub_mrdy; unsigned gpio_ipc_sub_srdy = tdscdma_modem_data.gpio_ipc_sub_srdy; unsigned gpio_ap_cp_int2 = tdscdma_modem_data.gpio_ap_cp_int2; #ifdef CONFIG_SEC_DUAL_MODEM_MODE unsigned gpio_sim_io_sel = tdscdma_modem_data.gpio_sim_io_sel; unsigned gpio_cp_ctrl1 = tdscdma_modem_data.gpio_cp_ctrl1; unsigned gpio_cp_ctrl2 = tdscdma_modem_data.gpio_cp_ctrl2; /* these 3 gpios need to set again before cp booting */ if (gpio_sim_io_sel) { err = gpio_request(gpio_sim_io_sel, "SIM_IO_SEL"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "SIM_IO_SEL", err); } gpio_direction_output(gpio_sim_io_sel, 0); } if (gpio_cp_ctrl1) { err = gpio_request(gpio_cp_ctrl1, "CP_CTRL1"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "CP_CTRL1", err); } gpio_direction_output(gpio_cp_ctrl1, 0); } if (gpio_cp_ctrl2) { err = gpio_request(gpio_cp_ctrl2, "CP_CTRL2"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "CP_CTRL2", err); } gpio_direction_output(gpio_cp_ctrl2, 0); } #endif /*TODO: check uart init func AP FLM BOOT RX -- */ s3c_gpio_setpull(EXYNOS4_GPA1(4), S3C_GPIO_PULL_UP); if (gpio_cp_on) { err = gpio_request(gpio_cp_on, "CP_ON"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "CP_ON", err); } gpio_direction_output(gpio_cp_on, 0); } if (gpio_pda_active) { err = gpio_request(gpio_pda_active, "PDA_ACTIVE"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "PDA_ACTIVE", err); } gpio_direction_output(gpio_pda_active, 0); } if (gpio_phone_active) { err = gpio_request(gpio_phone_active, "PHONE_ACTIVE"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "PHONE_ACTIVE", err); } gpio_direction_input(gpio_phone_active); s3c_gpio_setpull(gpio_phone_active, S3C_GPIO_PULL_DOWN); } if (gpio_cp_dump_int) { err = gpio_request(gpio_cp_dump_int, "CP_DUMP_INT"); if (err) { pr_err(LOG_TAG "fail to request gpio %s : %d\n", "CP_DUMP_INT", err); } gpio_direction_input(gpio_cp_dump_int); s3c_gpio_setpull(gpio_cp_dump_int, S3C_GPIO_PULL_DOWN); } if (gpio_phone_active) irq_set_irq_type(gpio_to_irq(gpio_phone_active), IRQ_TYPE_EDGE_BOTH); if (gpio_ipc_mrdy) { err = gpio_request(gpio_ipc_mrdy, "IPC_MRDY"); if (err) { printk(KERN_ERR "ipc_spi_cfg_gpio - fail to request gpio %s : %d\n", "IPC_MRDY", err); } else { gpio_direction_output(gpio_ipc_mrdy, 0); } } if (gpio_ipc_srdy) { err = gpio_request(gpio_ipc_srdy, "IPC_SRDY"); if (err) { printk(KERN_ERR "ipc_spi_cfg_gpio - fail to request gpio %s : %d\n", "IPC_SRDY", err); } else { gpio_direction_input(gpio_ipc_srdy); s3c_gpio_cfgpin(gpio_ipc_srdy, S3C_GPIO_SFN(0xF)); s3c_gpio_setpull(gpio_ipc_srdy, S3C_GPIO_PULL_DOWN); irq_set_irq_type(gpio_to_irq(gpio_ipc_srdy), IRQ_TYPE_EDGE_RISING); } } if (gpio_ipc_sub_mrdy) { err = gpio_request(gpio_ipc_sub_mrdy, "IPC_SUB_MRDY"); if (err) { printk(KERN_ERR "ipc_spi_cfg_gpio - fail to request gpio %s : %d\n", "IPC_SUB_MRDY", err); } else { gpio_direction_output(gpio_ipc_sub_mrdy, 0); } } if (gpio_ipc_sub_srdy) { err = gpio_request(gpio_ipc_sub_srdy, "IPC_SUB_SRDY"); if (err) { printk(KERN_ERR "ipc_spi_cfg_gpio - fail to request gpio %s : %d\n", "IPC_SUB_SRDY", err); } else { gpio_direction_input(gpio_ipc_sub_srdy); s3c_gpio_cfgpin(gpio_ipc_sub_srdy, S3C_GPIO_SFN(0xF)); s3c_gpio_setpull(gpio_ipc_sub_srdy, S3C_GPIO_PULL_DOWN); irq_set_irq_type(gpio_to_irq(gpio_ipc_sub_srdy), IRQ_TYPE_EDGE_RISING); } } if (gpio_ap_cp_int2) { err = gpio_request(gpio_ap_cp_int2, "AP_CP_INT2"); if (err) { printk(KERN_ERR "ipc_spi_cfg_gpio - fail to request gpio %s : %d\n", "AP_CP_INT2", err); } else { gpio_direction_output(gpio_ap_cp_int2, 0); } } pr_info(LOG_TAG "tdscdma_modem_cfg_gpio done\n"); }
uint val; uint pud; uint drv; }; extern int s3c_gpio_slp_cfgpin(unsigned int pin, unsigned int config); extern int s3c_gpio_slp_setpull_updown(unsigned int pin, unsigned int config); #ifdef CONFIG_MIDAS_COMMON /* * P4NOTE GPIO Init Table */ static struct gpio_init_data kona_init_gpios[] = { #if defined(CONFIG_QC_MODEM) {EXYNOS4_GPA1(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* FAC_RXD */ {EXYNOS4_GPA1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* FAC_TXD */ #endif {EXYNOS4_GPA1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPD0(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, {EXYNOS4_GPD0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, {EXYNOS4_GPD1(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,