void s3c_i2c0_cfg_gpio(struct platform_device *dev) { s3c_gpio_cfgpin(S5PC100_GPD(3), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PC100_GPD(3), S3C_GPIO_PULL_UP); s3c_gpio_cfgpin(S5PC100_GPD(4), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PC100_GPD(4), S3C_GPIO_PULL_UP); }
static int smdkc100_backlight_init(struct device *dev) { int ret; ret = gpio_request(S5PC100_GPD(0), "Backlight"); if (ret) { printk(KERN_ERR "failed to request GPF for PWM-OUT0\n"); return ret; } /* Configure GPIO pin with S5PC100_GPD_TOUT_0 */ s3c_gpio_cfgpin(S5PC100_GPD(0), S3C_GPIO_SFN(2)); return 0; }
/* LCD power controller */ static void smdkc100_lcd_power_set(struct plat_lcd_data *pd, unsigned int power) { /* backlight */ gpio_direction_output(S5PC100_GPD(0), power); if (power) { /* module reset */ gpio_direction_output(S5PC100_GPH0(6), 1); mdelay(100); gpio_direction_output(S5PC100_GPH0(6), 0); mdelay(10); gpio_direction_output(S5PC100_GPH0(6), 1); mdelay(10); } }
static void __init smdkc100_machine_init(void) { /* I2C */ s3c_i2c0_set_platdata(NULL); s3c_i2c1_set_platdata(NULL); i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0)); i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); s3c_fb_set_platdata(&smdkc100_lcd_pdata); /* LCD init */ gpio_request(S5PC100_GPD(0), "GPD"); gpio_request(S5PC100_GPH0(6), "GPH0"); smdkc100_lcd_power_set(&smdkc100_lcd_power_data, 0); platform_add_devices(smdkc100_devices, ARRAY_SIZE(smdkc100_devices)); }
&s3c_device_rtc, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5pc100_device_spdif, }; static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { .delay = 10000, .presc = 49, .oversampling_shift = 2, }; /* LCD Backlight data */ static struct samsung_bl_gpio_info smdkc100_bl_gpio_info = { .no = S5PC100_GPD(0), .func = S3C_GPIO_SFN(2), }; static struct platform_pwm_backlight_data smdkc100_bl_data = { .pwm_id = 0, }; static void __init smdkc100_map_io(void) { s5p_init_io(NULL, 0, S5P_VA_CHIPID); s3c24xx_init_clocks(12000000); s3c24xx_init_uarts(smdkc100_uartcfgs, ARRAY_SIZE(smdkc100_uartcfgs)); } static void __init smdkc100_machine_init(void)
void s3c_i2c1_cfg_gpio(struct platform_device *dev) { s3c_gpio_cfgall_range(S5PC100_GPD(5), 2, S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); }
static void smdkc100_backlight_exit(struct device *dev) { s3c_gpio_cfgpin(S5PC100_GPD(0), S3C_GPIO_OUTPUT); gpio_free(S5PC100_GPD(0)); }
/* S/PDIF Controller platform_device */ static int s5pc100_spdif_cfg_gpd(struct platform_device *pdev) { s3c_gpio_cfgpin_range(S5PC100_GPD(5), 2, S3C_GPIO_SFN(3)); return 0; }
.ngpio = S5PC100_GPIO_B_NR, .label = "GPB", }, }, { .base = S5PC100_GPC_BASE, .config = &gpio_cfg, .chip = { .base = S5PC100_GPC(0), .ngpio = S5PC100_GPIO_C_NR, .label = "GPC", }, }, { .base = S5PC100_GPD_BASE, .config = &gpio_cfg, .chip = { .base = S5PC100_GPD(0), .ngpio = S5PC100_GPIO_D_NR, .label = "GPD", }, }, { .base = S5PC100_GPE0_BASE, .config = &gpio_cfg, .chip = { .base = S5PC100_GPE0(0), .ngpio = S5PC100_GPIO_E0_NR, .label = "GPE0", }, }, { .base = S5PC100_GPE1_BASE, .config = &gpio_cfg, .chip = {