{ return IRQ_EINT_GROUP(2, offset); } static int s3c_gpg_to_irq(struct gpio_chip *chip, unsigned offset) { return IRQ_EINT_GROUP(5, offset); } static struct s3c_gpio_chip gpio_4bit[] = { { .base = S5P64XX_GPA_BASE, .config = &gpio_4bit_cfg_eint0111, .config_slp = &gpio_cfg_slp, .chip = { .base = S5P64XX_GPA(0), .ngpio = S5P64XX_GPIO_A_NR, .to_irq = s3c_gpa_to_irq, .label = "GPA", }, }, { .base = S5P64XX_GPB_BASE, .config = &gpio_4bit_cfg_eint0111, .config_slp = &gpio_cfg_slp, .chip = { .base = S5P64XX_GPB(0), .ngpio = S5P64XX_GPIO_B_NR, .to_irq = s3c_gpb_to_irq, .label = "GPB", }, }, {
void s3c_setup_uart_cfg_gpio(unsigned char port) { switch(port) { case 0: s3c_gpio_cfgpin(S5P64XX_GPA(0), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(0), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPA(1), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(1), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPA(2), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(2), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPA(3), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(3), S3C_GPIO_PULL_NONE); break; case 1: s3c_gpio_cfgpin(S5P64XX_GPA(4), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(4), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPA(5), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPA(5), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPB(5), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5P64XX_GPB(5), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPB(6), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5P64XX_GPB(6), S3C_GPIO_PULL_NONE); break; case 2: s3c_gpio_cfgpin(S5P64XX_GPB(0), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPB(0), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPB(1), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPB(1), S3C_GPIO_PULL_NONE); break; case 3: s3c_gpio_cfgpin(S5P64XX_GPB(2), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPB(2), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPB(3), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPB(3), S3C_GPIO_PULL_NONE); break; case 4: s3c_gpio_cfgpin(S5P64XX_GPD(0), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(0), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(1), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(1), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(4), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(4), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(5), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(5), S3C_GPIO_PULL_NONE); break; case 5: s3c_gpio_cfgpin(S5P64XX_GPD(2), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(2), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(3), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5P64XX_GPD(3), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(6), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5P64XX_GPD(6), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5P64XX_GPD(7), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5P64XX_GPD(7), S3C_GPIO_PULL_NONE); break; default: break; } }