static int s5pv210_pcm_cfg_gpio(struct platform_device *pdev) { switch (pdev->id) { case 0: s3c_gpio_cfgpin(S5PV210_GPI(0), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPI(1), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPI(2), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPI(3), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPI(4), S3C_GPIO_SFN(3)); break; case 1: s3c_gpio_cfgpin(S5PV210_GPC0(0), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPC0(1), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPC0(2), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPC0(3), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin(S5PV210_GPC0(4), S3C_GPIO_SFN(3)); break; case 2: s3c_gpio_cfgpin(S5PV210_GPC1(0), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC1(1), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC1(2), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC1(3), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC1(4), S3C_GPIO_SFN(2)); break; default: printk(KERN_DEBUG "Invalid PCM Controller number!"); return -EINVAL; } return 0; }
static int s5pv210_ac97_cfg_gpio(struct platform_device *pdev) { s3c_gpio_cfgpin(S5PV210_GPC0(0), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC0(1), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC0(2), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC0(3), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC0(4), S3C_GPIO_SFN(4)); return 0; }
static int smdkc110_set_gpio(int id) { switch(id) { case 0: s3c_gpio_cfgpin (S5PV210_GPC1(0), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC1(1), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC1(2), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC1(3), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC1(4), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPC1(0), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC1(1), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC1(2), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC1(3), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC1(4), S3C_GPIO_PULL_NONE); break; case 1: s3c_gpio_cfgpin (S5PV210_GPC0(0), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC0(1), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC0(2), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC0(3), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPC0(4), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPC0(0), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC0(1), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC0(2), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC0(3), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPC0(4), S3C_GPIO_PULL_NONE); break; case 2: s3c_gpio_cfgpin (S5PV210_GPI(0), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPI(1), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPI(2), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPI(3), S3C_GPIO_SFN(3)); s3c_gpio_cfgpin (S5PV210_GPI(4), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPI(0), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPI(1), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPI(2), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPI(3), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5PV210_GPI(4), S3C_GPIO_PULL_NONE); break; default: debug_msg("Not a valid PCM IP Number. - %d\n", id); return -EINVAL; } return 0; }
static int s5pv210_cfg_i2s(struct platform_device *pdev) { /* configure GPIO for i2s port */ switch (pdev->id) { case 1: s3c_gpio_cfgpin(S5PV210_GPC0(0), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC0(1), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC0(2), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC0(3), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPC0(4), S3C_GPIO_SFN(2)); break; case 2: s3c_gpio_cfgpin(S5PV210_GPC1(0), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC1(1), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC1(2), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC1(3), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin(S5PV210_GPC1(4), S3C_GPIO_SFN(4)); break; case 0: s3c_gpio_cfgpin(S5PV210_GPI(0), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(1), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(2), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(3), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(4), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(5), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(S5PV210_GPI(6), S3C_GPIO_SFN(2)); break; default: printk(KERN_ERR "Invalid Device %d\n", pdev->id); return -EINVAL; } return 0; }
static int s5pv210_cfg_i2s(struct platform_device *pdev) { switch (pdev->id) { case 0: s3c_gpio_cfgpin_range(S5PV210_GPI(0), 7, S3C_GPIO_SFN(2)); break; case 1: s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, S3C_GPIO_SFN(2)); break; case 2: s3c_gpio_cfgpin_range(S5PV210_GPC1(0), 5, S3C_GPIO_SFN(4)); break; default: printk(KERN_ERR "Invalid Device %d\n", pdev->id); return -EINVAL; } return 0; }
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg-helpers.h> #define DEVICE_NAME "led" /* 应用程序执行ioctl(fd, cmd, arg)时的第2个参数 */ #define IOCTL_GPIO_ON 1 #define IOCTL_GPIO_OFF 0 /* 用来指定LED所用的GPIO引脚 */ static unsigned long gpio_table [] = { S5PV210_GPC0(3), S5PV210_GPC0(4), }; /* 用来指定GPIO引脚的功能:输出 */ static unsigned int gpio_cfg_table [] = { S3C_GPIO_SFN(1), S3C_GPIO_SFN(1), }; //static char gpio_name[][]={{"GPC0_3"},{"GPC0_4"}};
.ngpio = S5PV210_GPIO_A1_NR, .label = "GPA1", }, }, { .base = S5PV210_GPB_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPB(0), .ngpio = S5PV210_GPIO_B_NR, .label = "GPB", }, }, { .base = S5PV210_GPC0_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPC0(0), .ngpio = S5PV210_GPIO_C0_NR, .label = "GPC0", }, }, { .base = S5PV210_GPC1_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPC1(0), .ngpio = S5PV210_GPIO_C1_NR, .label = "GPC1", }, }, { .base = S5PV210_GPD0_BASE, .config = &gpio_cfg, .chip = {
static int s5pv210_ac97_cfg_gpio(struct platform_device *pdev) { return s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, S3C_GPIO_SFN(4)); }
.scl_is_output_only = 0, }; struct platform_device gpioi2c4_device = { .name = "i2c-gpio", .id = 4, .dev = { .platform_data = &gpioi2c4_platdata, }, }; /* For SF */ static struct i2c_gpio_platform_data gpioi2c5_platdata = { .sda_pin = S5PV210_GPC0(4), .scl_pin = S5PV210_GPJ0(6), .udelay = 0, .timeout = 0, .sda_is_open_drain = 0, .scl_is_open_drain = 0, .scl_is_output_only = 0, }; struct platform_device gpioi2c5_device = { .name = "i2c-gpio", .id = 5, .dev = { .platform_data = &gpioi2c5_platdata,
/* PWM beeper (add by zjh) */ static struct platform_device tq210_beeper = { .name = "pwm-beeper", .dev = { .parent = &s3c_device_timer[1].dev, .platform_data = (void *)1, }, .id = 1, }; /* leds-gpio (add by zjh) */ static struct gpio_led leds[] = { [0] = { .name = "led0", .default_trigger = "heartbeat", .gpio = S5PV210_GPC0(3), .active_low = 0, .default_state = LEDS_GPIO_DEFSTATE_OFF, }, [1] = { .name = "led1", .gpio = S5PV210_GPC0(4), .active_low = 0, .default_state = LEDS_GPIO_DEFSTATE_OFF, }, }; static struct gpio_led_platform_data tq210_leds_pdata = { .num_leds = ARRAY_SIZE(leds), .leds = leds, };