void s3cfb_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(S5PV210_GPF0(i), S5P_GPIO_DRVSTR_LV4); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(S5PV210_GPF1(i), S5P_GPIO_DRVSTR_LV4); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(S5PV210_GPF2(i), S5P_GPIO_DRVSTR_LV4); } for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(S5PV210_GPF3(i), S5P_GPIO_DRVSTR_LV4); } /* mDNIe SEL: why we shall write 0x2 ? */ writel(0x2, S5P_MDNIE_SEL); }
static void at070tn92_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE); } /* mDNIe SEL: why we shall write 0x2 ? */ writel(0x2, S5P_MDNIE_SEL); /* drive strength to max */ writel(0xffffffff, S5PV210_GPF0_BASE + 0xc); writel(0xffffffff, S5PV210_GPF1_BASE + 0xc); writel(0xffffffff, S5PV210_GPF2_BASE + 0xc); writel(0x000000ff, S5PV210_GPF3_BASE + 0xc); }
static int configure_mtp_gpios(struct s5p_panel_data *pdata, bool enable) { int i; int ret = 0; if (enable) { /* wrx and csx are already requested by the spi driver */ ret = gpio_request(pdata->gpio_rdx, "tl2796_rdx"); if (ret) goto err_rdx; ret = gpio_request(pdata->gpio_dcx, "tl2796_dcx"); if (ret) goto err_dcx; ret = gpio_request(pdata->gpio_rst, "tl2796_rst"); if (ret) goto err_rst; for (i = 0; i < 8; i++) { ret = gpio_request(pdata->gpio_db[i], "tl2796_dbx"); if (ret) goto err_dbx; } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_OUTPUT); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); gpio_set_value(S5PV210_GPF0(i), 0); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_OUTPUT); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_UP); gpio_set_value(S5PV210_GPF1(i), 0); } return 0; } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE); } reset_lcd(pdata); for (i = 7; i >= 0; i--) { gpio_free(pdata->gpio_db[i]); err_dbx: ; } gpio_free(pdata->gpio_rst); err_rst: gpio_free(pdata->gpio_dcx); err_dcx: gpio_free(pdata->gpio_rdx); err_rdx: return ret; }
void s3cfb_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE); } /* mDNIe SEL: why we shall write 0x2 ? */ writel(0x2, S5P_MDNIE_SEL); /* drive strength to max */ writel(0xffffffff, S5P_VA_GPIO + 0x12c); writel(0xffffffff, S5P_VA_GPIO + 0x14c); writel(0xffffffff, S5P_VA_GPIO + 0x16c); writel(0x000000ff, S5P_VA_GPIO + 0x18c); s3c_gpio_cfgpin(S5PV210_GPB(4), S3C_GPIO_SFN(1)); s3c_gpio_cfgpin(S5PV210_GPB(5), S3C_GPIO_SFN(1)); s3c_gpio_cfgpin(S5PV210_GPB(6), S3C_GPIO_SFN(1)); s3c_gpio_cfgpin(S5PV210_GPB(7), S3C_GPIO_SFN(1)); s3c_gpio_setpull(S5PV210_GPB(4), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPB(5), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPB(6), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPB(7), S3C_GPIO_PULL_NONE); gpio_request(S5PV210_GPH0(5), "GPH0"); gpio_direction_output(S5PV210_GPH0(5), 1); }
void s3cfb_earlysuspend_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_setpin_pd(S5PV210_GPF0(i), 2); s3c_gpio_setpull_pd(S5PV210_GPF0(i), 1); } for (i = 0; i < 8; i++) { s3c_gpio_setpin_pd(S5PV210_GPF1(i), 2); s3c_gpio_setpull_pd(S5PV210_GPF1(i), 1); } for (i = 0; i < 8; i++) { s3c_gpio_setpin_pd(S5PV210_GPF2(i), 2); s3c_gpio_setpull_pd(S5PV210_GPF2(i), 1); } for (i = 0; i < 4; i++) { s3c_gpio_setpin_pd(S5PV210_GPF3(i), 2); s3c_gpio_setpull_pd(S5PV210_GPF3(i), 1); } }
void s5pv210_fb_gpio_setup_24bpp(void) { unsigned int gpio = 0; for (gpio = S5PV210_GPF0(0); gpio <= S5PV210_GPF0(7); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4); } for (gpio = S5PV210_GPF1(0); gpio <= S5PV210_GPF1(7); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4); } for (gpio = S5PV210_GPF2(0); gpio <= S5PV210_GPF2(7); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4); } for (gpio = S5PV210_GPF3(0); gpio <= S5PV210_GPF3(3); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4); } /* Set DISPLAY_CONTROL register for Display path selection. * * ouput | RGB | I80 | ITU * ----------------------------------- * 00 | MIE | FIMD | FIMD * 01 | MDNIE | MDNIE | FIMD * 10 | FIMD | FIMD | FIMD * 11 | FIMD | FIMD | FIMD */ writel(0x2, S5P_MDNIE_SEL); }
static void lte480wv_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE); } for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE); } /* mDNIe SEL: why we shall write 0x2 ? */ writel(0x2, S5P_MDNIE_SEL); #ifndef CONFIG_FB_S3C_TL2796 /* drive strength to max */ writel(0xffffffff, S5PV210_GPF0_BASE + 0xc); writel(0xffffffff, S5PV210_GPF1_BASE + 0xc); writel(0xffffffff, S5PV210_GPF2_BASE + 0xc); writel(0x000000ff, S5PV210_GPF3_BASE + 0xc); #else writel(0xC0, S5PV210_GPF0_BASE + 0xc); #endif }
void s3cfb_lateresume_cfg_gpio(struct platform_device *pdev) { int i; for (i = 0; i < 8; i++) { s3c_gpio_setpull_pd(S5PV210_GPF0(i), 0); } for (i = 0; i < 8; i++) { s3c_gpio_setpull_pd(S5PV210_GPF1(i), 0); } for (i = 0; i < 8; i++) { s3c_gpio_setpull_pd(S5PV210_GPF2(i), 0); } for (i = 0; i < 4; i++) { s3c_gpio_setpull_pd(S5PV210_GPF3(i), 0); } }
void s5pv210_fb_gpio_setup_24bpp(void) { s5pv210_fb_cfg_gpios(S5PV210_GPF0(0), 8); s5pv210_fb_cfg_gpios(S5PV210_GPF1(0), 8); s5pv210_fb_cfg_gpios(S5PV210_GPF2(0), 8); s5pv210_fb_cfg_gpios(S5PV210_GPF3(0), 4); /* Set DISPLAY_CONTROL register for Display path selection. * * ouput | RGB | I80 | ITU * ----------------------------------- * 00 | MIE | FIMD | FIMD * 01 | MDNIE | MDNIE | FIMD * 10 | FIMD | FIMD | FIMD * 11 | FIMD | FIMD | FIMD */ writel(0x2, S5P_MDNIE_SEL); }
.ngpio = S5PV210_GPIO_E1_NR, .label = "GPE1", }, }, { .base = S5PV210_GPF0_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPF0(0), .ngpio = S5PV210_GPIO_F0_NR, .label = "GPF0", }, }, { .base = S5PV210_GPF1_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPF1(0), .ngpio = S5PV210_GPIO_F1_NR, .label = "GPF1", }, }, { .base = S5PV210_GPF2_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPF2(0), .ngpio = S5PV210_GPIO_F2_NR, .label = "GPF2", }, }, { .base = S5PV210_GPF3_BASE, .config = &gpio_cfg, .chip = {
struct s5p_panel_data herring_panel_data = { .seq_display_set = s6e63m0_SEQ_DISPLAY_SETTING, .seq_etc_set = s6e63m0_SEQ_ETC_SETTING, .standby_on = s6e63m0_SEQ_STANDBY_ON, .standby_off = s6e63m0_SEQ_STANDBY_OFF, .gpio_dcx = S5PV210_GPF0(0), /* H_SYNC pad */ .gpio_rdx = S5PV210_GPF0(2), /* Enable */ .gpio_csx = S5PV210_MP01(1), .gpio_wrx = S5PV210_MP04(1), /* SCL pad */ .gpio_rst = S5PV210_MP05(5), .gpio_db = { S5PV210_GPF0(4), S5PV210_GPF0(5), S5PV210_GPF0(6), S5PV210_GPF0(7), S5PV210_GPF1(0), S5PV210_GPF1(1), S5PV210_GPF1(2), S5PV210_GPF1(3), }, .configure_mtp_gpios = configure_mtp_gpios, .factory_v255_regs = { 0x0b9, 0x0b8, 0x0fc, }, .color_adj = { /* Convert from 8500K to D65, assuming: * Rx 0.66950, Ry 0.33100 * Gx 0.18800, Gy 0.74350 * Bx 0.14142, By 0.04258