//--------for COL is GPL[3:7], ROW is GPN[0:1]---------// void s3c_setup_keypad_cfg_gpio(int rows, int columns) { unsigned int gpio; unsigned int end; printk("[KEY]Initialize the GPIO for keybord of OK6410."); end = S3C64XX_GPK(8 + rows); //end = S3C64XX_GPN(0+2);//rows); // Set all the necessary GPK pins to special-function 0 for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); } /*Set all the necessary GPN pins to special-function 0 for (gpio = S3C64XX_GPN(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); }*/ end = S3C64XX_GPL(0 + columns); //end = S3C64XX_GPL(3 + 5);//columns); /* Set all the necessary GPK pins to special-function 0 */ for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } }
/* * set gpio value */ static void buddy_set_gpio(int value) { /* * Set pin as output and set value. */ s3c_gpio_cfgpin(S3C64XX_GPK(2),S3C_GPIO_OUTPUT); gpio_set_value(S3C64XX_GPK(2),1); /* * Out value and pin was set as output directly. */ gpio_direction_output(S3C64XX_GPK(6),1); }
static int smartq_speaker_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *k, int event) { gpio_set_value(S3C64XX_GPK(12), SND_SOC_DAPM_EVENT_OFF(event)); return 0; }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { /* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */ s3c_gpio_cfgrange_nopull(S3C64XX_GPK(8), 8 + rows, S3C_GPIO_SFN(3)); /* Set all the necessary GPL pins to special-function 3: KP_COL[x] */ s3c_gpio_cfgrange_nopull(S3C64XX_GPL(0), cols, S3C_GPIO_SFN(3)); }
static void __exit smartq_exit(void) { gpio_free(S3C64XX_GPK(12)); snd_soc_jack_free_gpios(&smartq_jack, ARRAY_SIZE(smartq_jack_gpios), smartq_jack_gpios); platform_device_unregister(smartq_snd_device); }
static int __init smartq_power_off_init(void) { int ret; ret = gpio_request(S3C64XX_GPK(15), "Power control"); if (ret < 0) { pr_err("%s: failed to get GPK15\n", __func__); return ret; } /* leave power on */ gpio_direction_output(S3C64XX_GPK(15), 0); pm_power_off = smartq_power_off; return ret; }
static void __init hmt_machine_init(void) { s3c_i2c0_set_platdata(NULL); s3c_fb_set_platdata(&hmt_lcd_pdata); s3c_nand_set_platdata(&hmt_nand_info); gpio_request(S3C64XX_GPC(7), "usb power"); gpio_direction_output(S3C64XX_GPC(7), 0); gpio_request(S3C64XX_GPM(0), "usb power"); gpio_direction_output(S3C64XX_GPM(0), 1); gpio_request(S3C64XX_GPK(7), "usb power"); gpio_direction_output(S3C64XX_GPK(7), 1); gpio_request(S3C64XX_GPF(13), "usb power"); gpio_direction_output(S3C64XX_GPF(13), 1); platform_add_devices(hmt_devices, ARRAY_SIZE(hmt_devices)); }
static int __init smartq_wifi_init(void) { int ret; ret = gpio_request(S3C64XX_GPK(1), "wifi control"); if (ret < 0) { pr_err("%s: failed to get GPK1\n", __func__); return ret; } ret = gpio_request(S3C64XX_GPK(2), "wifi reset"); if (ret < 0) { pr_err("%s: failed to get GPK2\n", __func__); gpio_free(S3C64XX_GPK(1)); return ret; } /* turn power on */ gpio_direction_output(S3C64XX_GPK(1), 1); /* reset device */ gpio_direction_output(S3C64XX_GPK(2), 0); mdelay(100); gpio_set_value(S3C64XX_GPK(2), 1); gpio_direction_input(S3C64XX_GPK(2)); return 0; }
static int __init smartq_init(void) { int ret; if (!machine_is_smartq7() && !machine_is_smartq5()) { pr_info("Only SmartQ is supported by this ASoC driver\n"); return -ENODEV; } smartq_snd_device = platform_device_alloc("soc-audio", -1); if (!smartq_snd_device) return -ENOMEM; platform_set_drvdata(smartq_snd_device, &snd_soc_smartq); ret = platform_device_add(smartq_snd_device); if (ret) { platform_device_put(smartq_snd_device); return ret; } /* Initialise GPIOs used by amplifiers */ ret = gpio_request(S3C64XX_GPK(12), "amplifiers shutdown"); if (ret) { dev_err(&smartq_snd_device->dev, "Failed to register GPK12\n"); goto err_unregister_device; } /* Disable amplifiers */ ret = gpio_direction_output(S3C64XX_GPK(12), 1); if (ret) { dev_err(&smartq_snd_device->dev, "Failed to configure GPK12\n"); goto err_free_gpio_amp_shut; } return 0; err_free_gpio_amp_shut: gpio_free(S3C64XX_GPK(12)); err_unregister_device: platform_device_unregister(smartq_snd_device); return ret; }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { unsigned int gpio; unsigned int end; /* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */ end = S3C64XX_GPK(8 + rows); for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } /* Set all the necessary GPL pins to special-function 3: KP_COL[x] */ end = S3C64XX_GPL(0 + cols); for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } }
void s3c_setup_keypad_cfg_gpio(int rows, int columns) { unsigned int gpio; unsigned int end; end = S3C64XX_GPK(8 + rows); #if 0 /* Set all the necessary GPK pins to special-function 0 */ for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } #endif end = S3C64XX_GPL(0 + columns); /* Set all the necessary GPL pins to special-function 0 */ for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } }
static void s3c24xx_serial_start_tx(struct uart_port *port) { struct s3c24xx_uart_port *ourport = to_ourport(port); static int a =1;//temp if (port->line == 3) { // printk("485_start_tx\n"); if(a){ s3c_gpio_cfgpin(S3C64XX_GPK(5), S3C_GPIO_SFN(1)); a=0; } gpio_set_value(S3C64XX_GPK(5), 1); } if (!tx_enabled(port)) { if (port->flags & UPF_CONS_FLOW) s3c24xx_serial_rx_disable(port); enable_irq(ourport->tx_irq); tx_enabled(port) = 1; } }
static void s3c24xx_serial_stop_tx(struct uart_port *port) { struct s3c24xx_uart_port *ourport = to_ourport(port); if (tx_enabled(port)) { disable_irq_nosync(ourport->tx_irq); tx_enabled(port) = 0; if (port->flags & UPF_CONS_FLOW) s3c24xx_serial_rx_enable(port); } if (port->line == 3) { //printk("485_stop_rx\n"); gpio_set_value(S3C64XX_GPK(5), 1); } }
void s3c64xx_ide_setup_gpio(void) { u32 reg; reg = readl(S3C_MEM_SYS_CFG) & (~0x3f); writel(reg | MEM_SYS_CFG_INDEP_CF | MEM_SYS_CFG_EBI_FIX_PRI_CFCON, S3C_MEM_SYS_CFG); s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4)); s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5)); s3c_gpio_cfgpin_range(S3C64XX_GPL(0), 3, S3C_GPIO_SFN(6)); s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1)); s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6)); }
void s3c64xx_ide_setup_gpio(void) { u32 reg; reg = readl(S3C_MEM_SYS_CFG) & (~0x3f); /* Independent CF interface, CF chip select configuration */ writel(reg | MEM_SYS_CFG_INDEP_CF | MEM_SYS_CFG_EBI_FIX_PRI_CFCON, S3C_MEM_SYS_CFG); s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4)); /* Set XhiDATA[15:0] pins as CF Data[15:0] */ s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5)); /* Set XhiADDR[2:0] pins as CF ADDR[2:0] */ s3c_gpio_cfgpin_range(S3C64XX_GPL(0), 3, S3C_GPIO_SFN(6)); /* Set Xhi ctrl pins as CF ctrl pins(IORDY, IOWR, IORD, CE[0:1]) */ s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1)); s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6)); }
/* * Get GPIO_GPKDAT value */ static void buddy_get_GPKDAT(void) { printk(KERN_INFO "GPKDAT[%2d]\n",readl(S3C64XX_GPKDAT)); printk(KERN_INFO "GPK00[%2d]\n",gpio_get_value(S3C64XX_GPK(0))); printk(KERN_INFO "GPK01[%2d]\n",gpio_get_value(S3C64XX_GPK(1))); printk(KERN_INFO "GPK02[%2d]\n",gpio_get_value(S3C64XX_GPK(2))); printk(KERN_INFO "GPK03[%2d]\n",gpio_get_value(S3C64XX_GPK(3))); printk(KERN_INFO "GPK04[%2d]\n",gpio_get_value(S3C64XX_GPK(4))); printk(KERN_INFO "GPK05[%2d]\n",gpio_get_value(S3C64XX_GPK(5))); printk(KERN_INFO "GPK06[%2d]\n",gpio_get_value(S3C64XX_GPK(6))); printk(KERN_INFO "GPK07[%2d]\n",gpio_get_value(S3C64XX_GPK(7))); printk(KERN_INFO "GPK08[%2d]\n",gpio_get_value(S3C64XX_GPK(8))); printk(KERN_INFO "GPK09[%2d]\n",gpio_get_value(S3C64XX_GPK(9))); printk(KERN_INFO "GPK10[%2d]\n",gpio_get_value(S3C64XX_GPK(10))); printk(KERN_INFO "GPK11[%2d]\n",gpio_get_value(S3C64XX_GPK(11))); printk(KERN_INFO "GPK12[%2d]\n",gpio_get_value(S3C64XX_GPK(12))); printk(KERN_INFO "GPK13[%2d]\n",gpio_get_value(S3C64XX_GPK(13))); printk(KERN_INFO "GPK14[%2d]\n",gpio_get_value(S3C64XX_GPK(14))); printk(KERN_INFO "GPK15[%2d]\n",gpio_get_value(S3C64XX_GPK(15))); }
} static struct s3c_gpio_chip gpio_4bit2[] = { { .base = S3C64XX_GPH_BASE + 0x4, .config = &gpio_4bit_cfg_eint0111, .chip = { .base = S3C64XX_GPH(0), .ngpio = S3C64XX_GPIO_H_NR, .label = "GPH", }, }, { .base = S3C64XX_GPK_BASE + 0x4, .config = &gpio_4bit_cfg_noint, .chip = { .base = S3C64XX_GPK(0), .ngpio = S3C64XX_GPIO_K_NR, .label = "GPK", }, }, { .base = S3C64XX_GPL_BASE + 0x4, .config = &gpio_4bit_cfg_eint0011, .chip = { .base = S3C64XX_GPL(0), .ngpio = S3C64XX_GPIO_L_NR, .label = "GPL", .to_irq = s3c64xx_gpio2int_gpl, }, }, };
static void __exit smartq_exit(void) { gpio_free(S3C64XX_GPK(12)); platform_device_unregister(smartq_snd_device); }
&speyside_device, &tobermory_device, &littlemill_device, &lowland_device, &wallvdd_device, }; static struct pca953x_platform_data crag6410_pca_data = { .gpio_base = PCA935X_GPIO_BASE, .irq_base = -1, }; /* VDDARM is controlled by DVS1 connected to GPK(0) */ static struct wm831x_buckv_pdata vddarm_pdata = { .dvs_control_src = 1, .dvs_gpio = S3C64XX_GPK(0), }; static struct regulator_consumer_supply vddarm_consumers[] __initdata = { REGULATOR_SUPPLY("vddarm", NULL), }; static struct regulator_init_data vddarm __initdata = { .constraints = { .name = "VDDARM", .min_uV = 1000000, .max_uV = 1300000, .always_on = 1, .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, }, .num_consumer_supplies = ARRAY_SIZE(vddarm_consumers),
if (idx == 6) { printk("Setup ethernet address to %pM\n", addr); memcpy(dm9000_setup.param_addr, addr, 6); } return 1; } __setup("ethmac=", dm9000_set_mac); #endif //LED static struct gpio_led mini6410_led_pins[] = { { .name = "LED1", .gpio = S3C64XX_GPK(4), .active_low = true, }, { .name = "LED2", .gpio = S3C64XX_GPK(5) , .active_low = true, }, { .name = "LED3", .gpio = S3C64XX_GPK(7), .active_low = true, }, { .name = "LED4", .gpio = S3C64XX_GPK(6),
static void smartq_power_off(void) { gpio_direction_output(S3C64XX_GPK(15), 1); }