static void jive_power_off(void) { printk(KERN_INFO "powering system down...\n"); s3c2410_gpio_setpin(S3C2410_GPC(5), 1); s3c_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT); }
static void jive_power_off(void) { printk(KERN_INFO "powering system down...\n"); gpio_request_one(S3C2410_GPC(5), GPIOF_OUT_INIT_HIGH, NULL); gpio_free(S3C2410_GPC(5)); }
static void __init h1940_init(void) { u32 tmp; s3c24xx_fb_set_platdata(&h1940_fb_info); s3c24xx_udc_set_platdata(&h1940_udc_cfg); s3c24xx_ts_set_platdata(&h1940_ts_cfg); s3c_i2c0_set_platdata(NULL); s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; /* Turn off suspend on both USB ports, and switch the * selectable USB port to USB device mode. */ s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | S3C2410_MISCCR_USBSUSPND0 | S3C2410_MISCCR_USBSUSPND1, 0x0); tmp = (0x78 << S3C24XX_PLLCON_MDIVSHIFT) | (0x02 << S3C24XX_PLLCON_PDIVSHIFT) | (0x03 << S3C24XX_PLLCON_SDIVSHIFT); writel(tmp, S3C2410_UPLLCON); gpio_request(S3C2410_GPC(0), "LCD power"); gpio_request(S3C2410_GPC(5), "LCD power"); gpio_request(S3C2410_GPC(6), "LCD power"); platform_add_devices(h1940_devices, ARRAY_SIZE(h1940_devices)); }
static void __init rx1950_init_machine(void) { int i; s3c24xx_fb_set_platdata(&rx1950_lcd_cfg); s3c24xx_udc_set_platdata(&rx1950_udc_cfg); s3c24xx_ts_set_platdata(&rx1950_ts_cfg); s3c24xx_mci_set_platdata(&rx1950_mmc_cfg); s3c_i2c0_set_platdata(NULL); s3c_nand_set_platdata(&rx1950_nand_info); /* Turn off suspend on both USB ports, and switch the * selectable USB port to USB device mode. */ s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | S3C2410_MISCCR_USBSUSPND0 | S3C2410_MISCCR_USBSUSPND1, 0x0); /* mmc power is disabled by default */ WARN_ON(gpio_request(S3C2410_GPJ(1), "MMC power")); gpio_direction_output(S3C2410_GPJ(1), 0); for (i = 0; i < 8; i++) WARN_ON(gpio_request(S3C2410_GPC(i), "LCD power")); for (i = 10; i < 16; i++) WARN_ON(gpio_request(S3C2410_GPC(i), "LCD power")); for (i = 2; i < 8; i++) WARN_ON(gpio_request(S3C2410_GPD(i), "LCD power")); for (i = 11; i < 16; i++) WARN_ON(gpio_request(S3C2410_GPD(i), "LCD power")); WARN_ON(gpio_request(S3C2410_GPB(1), "LCD power")); WARN_ON(gpio_request(S3C2410_GPA(3), "Red blink")); WARN_ON(gpio_request(S3C2410_GPA(4), "Green blink")); WARN_ON(gpio_request(S3C2410_GPJ(6), "LED blink")); gpio_direction_output(S3C2410_GPA(3), 0); gpio_direction_output(S3C2410_GPA(4), 0); gpio_direction_output(S3C2410_GPJ(6), 0); platform_add_devices(rx1950_devices, ARRAY_SIZE(rx1950_devices)); i2c_register_board_info(0, rx1950_i2c_devices, ARRAY_SIZE(rx1950_i2c_devices)); }
void s3c_pm_save_core(void) { #ifdef CONFIG_ARCH_LBOOK_V3 if (machine_is_lbook_v3()) { s3c2410_gpio_setpin(S3C2410_GPC(6), 1); } #endif s3c_pm_do_save(misc_save, ARRAY_SIZE(misc_save)); s3c_pm_do_save(core_save, ARRAY_SIZE(core_save)); #ifdef CONFIG_ARCH_LBOOK_V3 if (machine_is_lbook_v3()) { s3c2410_gpio_setpin(S3C2410_GPC(6), 1); } #endif }
static void mini2440_udc_pullup(enum s3c2410_udc_cmd_e cmd) { pr_debug("udc: pullup(%d)\n", cmd); switch (cmd) { case S3C2410_UDC_P_ENABLE : s3c2410_gpio_setpin(S3C2410_GPC(5), 1); break; case S3C2410_UDC_P_DISABLE : s3c2410_gpio_setpin(S3C2410_GPC(5), 0); break; case S3C2410_UDC_P_RESET : break; default: break; } }
static void s3c2416_fb_gpio_setup_24bpp(void) { unsigned int gpio; for (gpio = S3C2410_GPC(1); gpio <= S3C2410_GPC(4); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } for (gpio = S3C2410_GPC(8); gpio <= S3C2410_GPC(15); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } for (gpio = S3C2410_GPD(0); gpio <= S3C2410_GPD(15); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } }
static void h1940_lcd_power_set(struct plat_lcd_data *pd, unsigned int power) { int value; if (!power) { /* set to 3ec */ s3c2410_gpio_setpin(S3C2410_GPC(0), 0); /* wait for 3ac */ do { value = s3c2410_gpio_getpin(S3C2410_GPC(6)); } while (value); /* set to 38c */ s3c2410_gpio_setpin(S3C2410_GPC(5), 0); } else { /* Set to 3ac */ s3c2410_gpio_setpin(S3C2410_GPC(5), 1); /* Set to 3ad */ s3c2410_gpio_setpin(S3C2410_GPC(0), 1); } }
static void __init mini2440_machine_init(void) { s3c24xx_fb_set_platdata(&s3c24xx_fb_info); s3c_i2c0_set_platdata(NULL); s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND); printk("S3C2410_GPA=%d\n",S3C2410_GPA(0)); printk("S3C2410_GPB=%d\n",S3C2410_GPB(0)); printk("S3C2410_GPC=%d\n",S3C2410_GPC(0)); printk("S3C2410_GPD=%d\n",S3C2410_GPD(0)); printk("S3C2410_GPE=%d\n",S3C2410_GPE(0)); printk("S3C2410_GPF=%d\n",S3C2410_GPF(0)); printk("S3C2410_GPG=%d\n",S3C2410_GPG(0)); printk("S3C2410_GPH=%d\n",S3C2410_GPH(0)); s3c_device_nand.dev.platform_data = &friendly_arm_nand_info; s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg; platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices)); platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1); //GPIO resource MAP s3c_pm_init(); }
static void __init mini2440_machine_init(void) { #if defined (LCD_WIDTH) s3c24xx_fb_set_platdata(&mini2440_fb_info); #endif s3c_i2c0_set_platdata(NULL); s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND); s3c_device_nand.dev.platform_data = &friendly_arm_nand_info; s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg; platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices)); s3c_pm_init(); }
static void __init gec2440_machine_init(void) { s3c24xx_fb_set_platdata(&s3c24xx_fb_info); s3c_i2c0_set_platdata(NULL); s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND); s3c_device_usb.dev.platform_data = &usb_gec2440_info; s3c_device_nand.dev.platform_data = &gec2440_nand_info; s3c_device_sdi.dev.platform_data = &gec2440_mmc_cfg; platform_add_devices(gec2440_devices, ARRAY_SIZE(gec2440_devices)); platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1); //GPIO resource MAP s3c_pm_init(); }
static void __init h1940_init(void) { u32 tmp; s3c24xx_fb_set_platdata(&h1940_fb_info); s3c24xx_mci_set_platdata(&h1940_mmc_cfg); s3c24xx_udc_set_platdata(&h1940_udc_cfg); s3c24xx_ts_set_platdata(&h1940_ts_cfg); s3c_i2c0_set_platdata(NULL); /* Turn off suspend on both USB ports, and switch the * selectable USB port to USB device mode. */ s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | S3C2410_MISCCR_USBSUSPND0 | S3C2410_MISCCR_USBSUSPND1, 0x0); tmp = (0x78 << S3C24XX_PLLCON_MDIVSHIFT) | (0x02 << S3C24XX_PLLCON_PDIVSHIFT) | (0x03 << S3C24XX_PLLCON_SDIVSHIFT); writel(tmp, S3C2410_UPLLCON); gpio_request(S3C2410_GPC(0), "LCD power"); gpio_request(S3C2410_GPC(1), "LCD power"); gpio_request(S3C2410_GPC(4), "LCD power"); gpio_request(S3C2410_GPC(5), "LCD power"); gpio_request(S3C2410_GPC(6), "LCD power"); gpio_request(H1940_LATCH_LCD_P0, "LCD power"); gpio_request(H1940_LATCH_LCD_P1, "LCD power"); gpio_request(H1940_LATCH_LCD_P2, "LCD power"); gpio_request(H1940_LATCH_LCD_P3, "LCD power"); gpio_request(H1940_LATCH_LCD_P4, "LCD power"); gpio_request(H1940_LATCH_MAX1698_nSHUTDOWN, "LCD power"); gpio_direction_output(S3C2410_GPC(0), 0); gpio_direction_output(S3C2410_GPC(1), 0); gpio_direction_output(S3C2410_GPC(4), 0); gpio_direction_output(S3C2410_GPC(5), 0); gpio_direction_input(S3C2410_GPC(6)); gpio_direction_output(H1940_LATCH_LCD_P0, 0); gpio_direction_output(H1940_LATCH_LCD_P1, 0); gpio_direction_output(H1940_LATCH_LCD_P2, 0); gpio_direction_output(H1940_LATCH_LCD_P3, 0); gpio_direction_output(H1940_LATCH_LCD_P4, 0); gpio_direction_output(H1940_LATCH_MAX1698_nSHUTDOWN, 0); gpio_request(H1940_LATCH_SD_POWER, "SD power"); gpio_direction_output(H1940_LATCH_SD_POWER, 0); platform_add_devices(h1940_devices, ARRAY_SIZE(h1940_devices)); gpio_request(S3C2410_GPA(1), "Red LED blink"); gpio_request(S3C2410_GPA(3), "Blue LED blink"); gpio_request(S3C2410_GPA(7), "Green LED blink"); gpio_request(H1940_LATCH_LED_FLASH, "LED blink"); gpio_direction_output(S3C2410_GPA(1), 0); gpio_direction_output(S3C2410_GPA(3), 0); gpio_direction_output(S3C2410_GPA(7), 0); gpio_direction_output(H1940_LATCH_LED_FLASH, 0); i2c_register_board_info(0, h1940_i2c_devices, ARRAY_SIZE(h1940_i2c_devices)); }
static void h1940_lcd_power_set(struct plat_lcd_data *pd, unsigned int power) { int value, retries = 100; if (!power) { gpio_set_value(S3C2410_GPC(0), 0); /* wait for 3ac */ do { value = gpio_get_value(S3C2410_GPC(6)); } while (value && retries--); gpio_set_value(H1940_LATCH_LCD_P2, 0); gpio_set_value(H1940_LATCH_LCD_P3, 0); gpio_set_value(H1940_LATCH_LCD_P4, 0); gpio_direction_output(S3C2410_GPC(1), 0); gpio_direction_output(S3C2410_GPC(4), 0); gpio_set_value(H1940_LATCH_LCD_P1, 0); gpio_set_value(H1940_LATCH_LCD_P0, 0); gpio_set_value(S3C2410_GPC(5), 0); } else { gpio_set_value(H1940_LATCH_LCD_P0, 1); gpio_set_value(H1940_LATCH_LCD_P1, 1); gpio_direction_input(S3C2410_GPC(1)); gpio_direction_input(S3C2410_GPC(4)); mdelay(10); s3c_gpio_cfgpin(S3C2410_GPC(1), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S3C2410_GPC(4), S3C_GPIO_SFN(2)); gpio_set_value(S3C2410_GPC(5), 1); gpio_set_value(S3C2410_GPC(0), 1); gpio_set_value(H1940_LATCH_LCD_P3, 1); gpio_set_value(H1940_LATCH_LCD_P2, 1); gpio_set_value(H1940_LATCH_LCD_P4, 1); } }
static void rx1950_lcd_power(int enable) { int i; static int enabled; if (enabled == enable) return; if (!enable) { /* GPC11-GPC15->OUTPUT */ for (i = 11; i < 16; i++) gpio_direction_output(S3C2410_GPC(i), 1); /* Wait a bit here... */ mdelay(100); /* GPD2-GPD7->OUTPUT */ /* GPD11-GPD15->OUTPUT */ /* GPD2-GPD7->1, GPD11-GPD15->1 */ for (i = 2; i < 8; i++) gpio_direction_output(S3C2410_GPD(i), 1); for (i = 11; i < 16; i++) gpio_direction_output(S3C2410_GPD(i), 1); /* Wait a bit here...*/ mdelay(100); /* GPB0->OUTPUT, GPB0->0 */ gpio_direction_output(S3C2410_GPB(0), 0); /* GPC1-GPC4->OUTPUT, GPC1-4->0 */ for (i = 1; i < 5; i++) gpio_direction_output(S3C2410_GPC(i), 0); /* GPC15-GPC11->0 */ for (i = 11; i < 16; i++) gpio_direction_output(S3C2410_GPC(i), 0); /* GPD15-GPD11->0, GPD2->GPD7->0 */ for (i = 11; i < 16; i++) gpio_direction_output(S3C2410_GPD(i), 0); for (i = 2; i < 8; i++) gpio_direction_output(S3C2410_GPD(i), 0); /* GPC6->0, GPC7->0, GPC5->0 */ gpio_direction_output(S3C2410_GPC(6), 0); gpio_direction_output(S3C2410_GPC(7), 0); gpio_direction_output(S3C2410_GPC(5), 0); /* GPB1->OUTPUT, GPB1->0 */ gpio_direction_output(S3C2410_GPB(1), 0); pwm_config(lcd_pwm, 0, LCD_PWM_PERIOD); pwm_disable(lcd_pwm); /* GPC0->0, GPC10->0 */ gpio_direction_output(S3C2410_GPC(0), 0); gpio_direction_output(S3C2410_GPC(10), 0); } else { pwm_config(lcd_pwm, LCD_PWM_DUTY, LCD_PWM_PERIOD); pwm_enable(lcd_pwm); gpio_direction_output(S3C2410_GPC(0), 1); gpio_direction_output(S3C2410_GPC(5), 1); s3c_gpio_cfgpin(S3C2410_GPB(1), S3C2410_GPB1_TOUT1); gpio_direction_output(S3C2410_GPC(7), 1); for (i = 1; i < 5; i++) s3c_gpio_cfgpin(S3C2410_GPC(i), S3C_GPIO_SFN(2)); for (i = 11; i < 16; i++) s3c_gpio_cfgpin(S3C2410_GPC(i), S3C_GPIO_SFN(2)); for (i = 2; i < 8; i++) s3c_gpio_cfgpin(S3C2410_GPD(i), S3C_GPIO_SFN(2)); for (i = 11; i < 16; i++) s3c_gpio_cfgpin(S3C2410_GPD(i), S3C_GPIO_SFN(2)); gpio_direction_output(S3C2410_GPC(10), 1); gpio_direction_output(S3C2410_GPC(6), 1); } enabled = enable; }
.owner = THIS_MODULE, .label = "GPIOA", .ngpio = 27, .direction_input = s3c24xx_gpiolib_banka_input, .direction_output = s3c24xx_gpiolib_banka_output, }, }, { .chip = { .base = S3C2410_GPB(0), .owner = THIS_MODULE, .label = "GPIOB", .ngpio = 11, }, }, { .chip = { .base = S3C2410_GPC(0), .owner = THIS_MODULE, .label = "GPIOC", .ngpio = 16, }, }, { .chip = { .base = S3C2410_GPD(0), .owner = THIS_MODULE, .label = "GPIOD", .ngpio = 16, }, }, { .chip = { .base = S3C2410_GPE(0), .label = "GPIOE",
.ucon = UCON, .ulcon = ULCON, .ufcon = UFCON, }, [2] = { .hwport = 2, .flags = 0, .ucon = UCON, .ulcon = ULCON, .ufcon = UFCON, }, }; static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = { .pullup_pin = S3C2410_GPC(5), }; #define _LCD_DECLARE(_clock,_xres,margin_left,margin_right,hsync, \ _yres,margin_top,margin_bottom,vsync, refresh) \ .width = _xres, \ .xres = _xres, \ .height = _yres, \ .yres = _yres, \ .left_margin = margin_left, \ .right_margin = margin_right, \ .upper_margin = margin_top, \ .lower_margin = margin_bottom, \ .hsync_len = hsync, \