inline void s3cfb_spi_set_lcd_data(int ch) { gpio_direction_output(S5P_FB_SPI_CLK(ch), 1); gpio_direction_output(S5P_FB_SPI_MOSI(ch), 1); gpio_direction_output(S5P_FB_SPI_nSS(ch), 1); gpio_pullup(S5P_FB_SPI_CLK(ch), S5P_GPIO_PUD_DISABLE); gpio_pullup(S5P_FB_SPI_MOSI(ch), S5P_GPIO_PUD_DISABLE); gpio_pullup(S5P_FB_SPI_nSS(ch), S5P_GPIO_PUD_DISABLE); }
static int __init s3c6410_leds_init(void) { if (machine_is_smdk6410()) leds_event = smdk6410_leds_event; else return -1; if (machine_is_smdk6410()) { /*GPN12~15 used for LED*/ /*Set GPN12~15 to output mode */ gpio_direction_output(S3C_GPN12); if(gpio_get_pin(S3C_GPN12) == 0) { printk(KERN_WARNING "LED: can't set GPN12 output mode\n"); } gpio_direction_output(S3C_GPN13); if(gpio_get_pin(S3C_GPN13) == 0) { printk(KERN_WARNING "LED: can't set GPN13 output mode\n"); } gpio_direction_output(S3C_GPN14); if(gpio_get_pin(S3C_GPN14) == 0) { printk(KERN_WARNING "LED: can't set GPN14 output mode\n"); } gpio_direction_output(S3C_GPN15); if(gpio_get_pin(S3C_GPN15) == 0) { printk(KERN_WARNING "LED: can't set GPN15 output mode\n"); } } /* Get irqs */ set_irq_type(IRQ_EINT9, IRQT_FALLING); gpio_pullup(S3C_GPN9, 0x0); if (request_irq(IRQ_EINT9, eint9_switch, SA_TRIGGER_FALLING, "EINT9", NULL)) { printk(KERN_ERR "leds.c: Could not allocate EINT9 !\n"); return -EIO; } leds_event(led_start); return 0; }
static void smdk6410_hsmmc_init (void) { /* hsmmc data strength */ writel(readl(S3C_SPCON) | (0x3 << 26), S3C_SPCON); /* jsgood: hsmmc0/1 card detect pin should be high before setup gpio. (GPG6 to Input) */ writel(readl(S3C_GPGCON) & 0xf0ffffff, S3C_GPGCON); /* GPIO N 13 (external interrupt) : Chip detect */ gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13); /* GPN13 to EINT13 */ gpio_pullup(S3C_GPN13, 0x2); /* Pull-up Enable */ /* jsgood: MUXmmc# to DOUTmpll for MPLL Clock Source */ writel((readl(S3C_CLK_SRC) & ~(0x3f << 18)) | (0x15 << 18), S3C_CLK_SRC); }
/*-------------------------------------------------------------- * HS-MMC GPIO Set function * the location of this function must be re-considered. * by scsuh *--------------------------------------------------------------*/ void hsmmc_set_gpio (uint channel, uint width) { switch (channel) { /* can supports 1 and 4 bit bus */ case 0: /* GPIO G : Command, Clock */ gpio_set_pin(S3C_GPG0, S3C_GPG0_MMC_CLK0); gpio_set_pin(S3C_GPG1, S3C_GPG1_MMC_CMD0); gpio_pullup(S3C_GPG0, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPG1, 0x0); /* Pull-up/down disable */ /* GPIO G : Chip detect + LED */ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1); gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */ if (width == 1) { /* GPIO G : MMC DATA1[0] */ gpio_set_pin(S3C_GPG2, S3C_GPG2_MMC_DATA0_0); gpio_pullup(S3C_GPG2, 0x0); /* Pull-up/down disable */ } else if (width == 4) { /* GPIO G : MMC DATA1[0:3] */ gpio_set_pin(S3C_GPG2, S3C_GPG2_MMC_DATA0_0); gpio_set_pin(S3C_GPG3, S3C_GPG3_MMC_DATA0_1); gpio_set_pin(S3C_GPG4, S3C_GPG4_MMC_DATA0_2); gpio_set_pin(S3C_GPG5, S3C_GPG5_MMC_DATA0_3); gpio_pullup(S3C_GPG2, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPG3, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPG4, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPG5, 0x0); /* Pull-up/down disable */ } break; /* can supports 1, 4, and 8 bit bus */ case 1: /* GPIO H : Command, Clock */ gpio_set_pin(S3C_GPH0, S3C_GPH0_MMC_CLK1); gpio_set_pin(S3C_GPH1, S3C_GPH1_MMC_CMD1); gpio_pullup(S3C_GPH0, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */ /* GPIO G : Chip detect + LED */ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1); gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */ if (width == 1) { /* GPIO H : MMC DATA1[0] */ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0); gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */ } else if (width == 4) { /* GPIO H : MMC DATA1[0:3] */ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0); gpio_set_pin(S3C_GPH3, S3C_GPH3_MMC_DATA1_1); gpio_set_pin(S3C_GPH4, S3C_GPH4_MMC_DATA1_2); gpio_set_pin(S3C_GPH5, S3C_GPH5_MMC_DATA1_3); gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH3, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH4, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH5, 0x0); /* Pull-up/down disable */ } else if (width == 8) { /* GPIO H : MMC DATA1[0:7] */ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0); gpio_set_pin(S3C_GPH3, S3C_GPH3_MMC_DATA1_1); gpio_set_pin(S3C_GPH4, S3C_GPH4_MMC_DATA1_2); gpio_set_pin(S3C_GPH5, S3C_GPH5_MMC_DATA1_3); gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA1_4); gpio_set_pin(S3C_GPH7, S3C_GPH7_MMC_DATA1_5); gpio_set_pin(S3C_GPH8, S3C_GPH8_MMC_DATA1_6); gpio_set_pin(S3C_GPH9, S3C_GPH9_MMC_DATA1_7); gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH3, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH4, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH5, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH7, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH8, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH9, 0x0); /* Pull-up/down disable */ } break; /* can supports 1 and 4 bit bus, no irq_cd */ case 2: /* GPIO H : Command, Clock */ gpio_set_pin(S3C_GPH0, S3C_GPH0_MMC_CLK1); gpio_set_pin(S3C_GPH1, S3C_GPH1_MMC_CMD1); gpio_pullup(S3C_GPH0, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */ /* GPIO G : Chip detect + LED */ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1); gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */ if (width == 1) { /* GPIO H : MMC DATA1[0] */ gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA2_0); gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */ } else if (width == 4) { /* GPIO H : MMC DATA1[0:3] */ gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA2_0); gpio_set_pin(S3C_GPH7, S3C_GPH7_MMC_DATA2_1); gpio_set_pin(S3C_GPH8, S3C_GPH8_MMC_DATA2_2); gpio_set_pin(S3C_GPH9, S3C_GPH9_MMC_DATA2_3); gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH7, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH8, 0x0); /* Pull-up/down disable */ gpio_pullup(S3C_GPH9, 0x0); /* Pull-up/down disable */ } break; default: break; } }