static int __init smdk_init(void) { printk("%s: initialize smdk24a0 board\n", __func__); set_gpio_ctrl(SMDK_LED4 | GPIO_PULLUP_DIS | GPIO_MODE_OUT); set_gpio_ctrl(SMDK_LED5 | GPIO_PULLUP_DIS | GPIO_MODE_OUT); set_gpio_ctrl(SMDK_LED6 | GPIO_PULLUP_DIS | GPIO_MODE_OUT); set_gpio_ctrl(SMDK_LED7 | GPIO_PULLUP_DIS | GPIO_MODE_OUT); /* // real_bank1_set_param(0x38, 0x3740); real_bank1_set_param(0x38, 0x2340); */ real_bank1_set_param( bank1_params[B1_CS89x0].bw, bank1_params[B1_CS89x0].bc); printk("Set BANK1 register (0x%x, 0x%x)\n", SROM_BW, SROM_BC1); return 0; }
void GPIO_Init() { set_gpio_ctrl(GPIO_C5|GPIO_MODE_OUT|GPIO_PULLUP_EN);//LED1 set_gpio_ctrl(GPIO_C6|GPIO_MODE_OUT|GPIO_PULLUP_EN);//LED2 set_gpio_ctrl(GPIO_C7|GPIO_MODE_OUT|GPIO_PULLUP_EN);//LED3 set_gpio_ctrl(GPIO_F3|GPIO_MODE_IN);//UP set_gpio_ctrl(GPIO_F5|GPIO_MODE_IN);//LEFT set_gpio_ctrl(GPIO_G1|GPIO_MODE_IN);//RIGHT set_gpio_ctrl(GPIO_G3|GPIO_MODE_IN);//DOWN set_gpio_ctrl(GPIO_G4|GPIO_MODE_IN);//SEL }
static int __init s3c2410_ts_init(void) { int ret; tsEvent = tsEvent_dummy; ret = register_chrdev(0, DEVICE_NAME, &s3c2410_fops); if (ret < 0) { printk(DEVICE_NAME " can't get major number\n"); return ret; } tsMajor = ret; /* set gpio to XP, YM, YP and YM */ #if 0 set_GPIO_mode(GPIO106_nYPON_MD); set_GPIO_mode(GPIO105_YMON_MD); set_GPIO_mode(GPIO104_nXPON_MD); set_GPIO_mode(GPIO103_XMON_MD); GPUP(GPIO106_nYPON) |= GPIO_bit(GPIO106_nYPON); GPUP(GPIO105_YMON) &= GPIO_bit(GPIO105_YMON); GPUP(GPIO104_nXPON) |= GPIO_bit(GPIO104_nXPON); GPUP(GPIO103_XMON) &= GPIO_bit(GPIO103_XMON); #else set_gpio_ctrl(GPIO_YPON); set_gpio_ctrl(GPIO_YMON); set_gpio_ctrl(GPIO_XPON); set_gpio_ctrl(GPIO_XMON); #endif /* Enable touch interrupt */ ret = request_irq(IRQ_ADC_DONE, s3c2410_isr_adc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_adc); if (ret) goto adc_failed; ret = request_irq(IRQ_TC, s3c2410_isr_tc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_tc); if (ret) goto tc_failed; /* Wait for touch screen interrupts */ wait_down_int(); #ifdef CONFIG_DEVFS_FS devfs_ts_dir = devfs_mk_dir(NULL, "touchscreen", NULL); devfs_tsraw = devfs_register(devfs_ts_dir, "0raw", DEVFS_FL_DEFAULT, tsMajor, TSRAW_MINOR, S_IFCHR | S_IRUSR | S_IWUSR, &s3c2410_fops, NULL); #endif #ifdef CONFIG_PM #if 0 tsdev.pm_dev = pm_register(PM_GP_DEV, PM_USER_INPUT, s3c2410_ts_pm_callback); #endif tsdev.pm_dev = pm_register(PM_DEBUG_DEV, PM_USER_INPUT, s3c2410_ts_pm_callback); #endif printk(DEVICE_NAME " initialized\n"); return 0; tc_failed: free_irq(IRQ_ADC_DONE, s3c2410_isr_adc); adc_failed: return ret; }