mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 06:33:34 +00:00
Merge branch 'next-gpio-update' into for-next
This commit is contained in:
commit
4d9374f39e
@ -22,44 +22,33 @@
|
||||
#include <plat/audio.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
#include <mach/gpio-bank-c.h>
|
||||
#include <mach/gpio-bank-d.h>
|
||||
#include <mach/gpio-bank-e.h>
|
||||
#include <mach/gpio-bank-h.h>
|
||||
|
||||
static int s3c64xx_i2sv3_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_I2S0_CLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_I2S0_CDCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_I2S0_LRCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_I2S0_DI);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_I2S0_D0);
|
||||
base = S3C64XX_GPD(0);
|
||||
break;
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_I2S1_CLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_I2S1_CDCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_I2S1_LRCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_I2S1_DI);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_I2S1_D0);
|
||||
base = S3C64XX_GPE(0);
|
||||
break;
|
||||
default:
|
||||
printk(KERN_DEBUG "Invalid I2S Controller number!");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S_V40_DO0);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S_V40_DO1);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S_V40_DO2);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPH(6), S3C64XX_GPH6_I2S_V40_BCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPH(7), S3C64XX_GPH7_I2S_V40_CDCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPH(8), S3C64XX_GPH8_I2S_V40_LRCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPH(9), S3C64XX_GPH9_I2S_V40_DI);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S3C64XX_GPH(6), 4, S3C_GPIO_SFN(5));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -168,26 +157,21 @@ EXPORT_SYMBOL(s3c64xx_device_iisv4);
|
||||
|
||||
static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_PCM0_SCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_PCM0_EXTCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_PCM0_FSYNC);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_PCM0_SIN);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_PCM0_SOUT);
|
||||
base = S3C64XX_GPD(0);
|
||||
break;
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_PCM1_SCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_PCM1_EXTCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_PCM1_FSYNC);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_PCM1_SIN);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_PCM1_SOUT);
|
||||
base = S3C64XX_GPE(0);
|
||||
break;
|
||||
default:
|
||||
printk(KERN_DEBUG "Invalid PCM Controller number!");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -261,24 +245,12 @@ EXPORT_SYMBOL(s3c64xx_device_pcm1);
|
||||
|
||||
static int s3c64xx_ac97_cfg_gpd(struct platform_device *pdev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_AC97_BITCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_AC97_nRESET);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_AC97_SYNC);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_AC97_SDI);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_AC97_SDO);
|
||||
|
||||
return 0;
|
||||
return s3c_gpio_cfgpin_range(S3C64XX_GPD(0), 5, S3C_GPIO_SFN(4));
|
||||
}
|
||||
|
||||
static int s3c64xx_ac97_cfg_gpe(struct platform_device *pdev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_AC97_BITCLK);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_AC97_nRESET);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_AC97_SYNC);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_AC97_SDI);
|
||||
s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_AC97_SDO);
|
||||
|
||||
return 0;
|
||||
return s3c_gpio_cfgpin_range(S3C64XX_GPE(0), 5, S3C_GPIO_SFN(4));
|
||||
}
|
||||
|
||||
static struct resource s3c64xx_ac97_resource[] = {
|
||||
|
@ -23,15 +23,6 @@
|
||||
|
||||
extern void s3c64xx_fb_gpio_setup_24bpp(void)
|
||||
{
|
||||
unsigned int gpio;
|
||||
|
||||
for (gpio = S3C64XX_GPI(0); gpio <= S3C64XX_GPI(15); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
for (gpio = S3C64XX_GPJ(0); gpio <= S3C64XX_GPJ(11); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPI(0), 16, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPJ(0), 12, S3C_GPIO_SFN(2));
|
||||
}
|
||||
|
@ -21,7 +21,6 @@
|
||||
void s3c64xx_ide_setup_gpio(void)
|
||||
{
|
||||
u32 reg;
|
||||
u32 gpio = 0;
|
||||
|
||||
reg = readl(S3C_MEM_SYS_CFG) & (~0x3f);
|
||||
|
||||
@ -32,15 +31,12 @@ void s3c64xx_ide_setup_gpio(void)
|
||||
s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4));
|
||||
|
||||
/* Set XhiDATA[15:0] pins as CF Data[15:0] */
|
||||
for (gpio = S3C64XX_GPK(0); gpio <= S3C64XX_GPK(15); gpio++)
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5));
|
||||
|
||||
/* Set XhiADDR[2:0] pins as CF ADDR[2:0] */
|
||||
for (gpio = S3C64XX_GPL(0); gpio <= S3C64XX_GPL(2); gpio++)
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(6));
|
||||
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));
|
||||
for (gpio = S3C64XX_GPM(0); gpio <= S3C64XX_GPM(4); gpio++)
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(6));
|
||||
s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6));
|
||||
}
|
||||
|
@ -15,20 +15,9 @@
|
||||
|
||||
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);
|
||||
}
|
||||
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] */
|
||||
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);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPL(0), cols, S3C_GPIO_SFN(3));
|
||||
}
|
||||
|
@ -24,16 +24,9 @@
|
||||
void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
|
||||
end = S3C64XX_GPG(2 + width);
|
||||
|
||||
/* Set all the necessary GPG pins to special-function 0 */
|
||||
for (gpio = S3C64XX_GPG(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
/* Set all the necessary GPG pins to special-function 2 */
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPG(0), 2 + width, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP);
|
||||
@ -44,16 +37,9 @@ void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
|
||||
end = S3C64XX_GPH(2 + width);
|
||||
|
||||
/* Set all the necessary GPG pins to special-function 0 */
|
||||
for (gpio = S3C64XX_GPH(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
/* Set all the necessary GPH pins to special-function 2 */
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPH(0), 2 + width, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP);
|
||||
@ -63,20 +49,9 @@ void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
|
||||
void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
/* Set all the necessary GPH pins to special-function 3 */
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPH(6), width, S3C_GPIO_SFN(3));
|
||||
|
||||
end = S3C64XX_GPH(6 + width);
|
||||
|
||||
/* Set all the necessary GPH pins to special-function 1 */
|
||||
for (gpio = S3C64XX_GPH(6); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
/* Set all the necessary GPC pins to special-function 1 */
|
||||
for (gpio = S3C64XX_GPC(4); gpio < S3C64XX_GPC(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
/* Set all the necessary GPC pins to special-function 3 */
|
||||
s3c_gpio_cfgrange_nopull(S3C64XX_GPC(4), 2, S3C_GPIO_SFN(3));
|
||||
}
|
||||
|
@ -21,22 +21,16 @@
|
||||
|
||||
static int s5p6442_cfg_i2s(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
/* configure GPIO for i2s port */
|
||||
switch (pdev->id) {
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(4), S3C_GPIO_SFN(2));
|
||||
base = S5P6442_GPC1(0);
|
||||
break;
|
||||
|
||||
case -1:
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(4), S3C_GPIO_SFN(2));
|
||||
base = S5P6442_GPC0(0);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -44,6 +38,7 @@ static int s5p6442_cfg_i2s(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -111,21 +106,15 @@ struct platform_device s5p6442_device_iis1 = {
|
||||
|
||||
static int s5p6442_pcm_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(0), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(1), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(2), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(3), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC0(4), S3C_GPIO_SFN(3));
|
||||
base = S5P6442_GPC0(0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(0), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(1), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(2), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(3), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5P6442_GPC1(4), S3C_GPIO_SFN(3));
|
||||
base = S5P6442_GPC1(0);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -133,6 +122,7 @@ static int s5p6442_pcm_cfg_gpio(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -38,11 +38,9 @@ static int s5p6442_spi_cfg_gpio(struct platform_device *pdev)
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5P6442_GPB(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPB(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6442_GPB(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6442_GPB(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6442_GPB(2), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6442_GPB(3), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5P6442_GPB(2), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -24,13 +24,8 @@ static int s5p6440_cfg_i2s(struct platform_device *pdev)
|
||||
/* configure GPIO for i2s port */
|
||||
switch (pdev->id) {
|
||||
case -1:
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(4), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(5), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(6), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(7), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(8), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(13), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(14), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S5P6440_GPR(4), 5, S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S5P6440_GPR(13), 2, S3C_GPIO_SFN(5));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -47,13 +42,9 @@ static int s5p6450_cfg_i2s(struct platform_device *pdev)
|
||||
switch (pdev->id) {
|
||||
case -1:
|
||||
s3c_gpio_cfgpin(S5P6450_GPB(4), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(4), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(5), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(6), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(7), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(8), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(13), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(14), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S5P6450_GPR(4), 5, S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S5P6450_GPR(13), 2, S3C_GPIO_SFN(5));
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -116,11 +107,8 @@ static int s5p6440_pcm_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(7), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(13), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(14), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(8), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin_range(S5P6440_GPR(6), 3, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin_range(S5P6440_GPR(13), 2, S3C_GPIO_SFN(2));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -39,23 +39,15 @@ static char *s5p64x0_spi_src_clks[] = {
|
||||
*/
|
||||
static int s5p6440_spi_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6440_GPC(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6440_GPC(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6440_GPC(2), S3C_GPIO_PULL_UP);
|
||||
base = S5P6440_GPC(0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6440_GPC(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6440_GPC(4), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6440_GPC(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6440_GPC(6), S3C_GPIO_PULL_UP);
|
||||
base = S5P6440_GPC(4);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -63,28 +55,23 @@ static int s5p6440_spi_cfg_gpio(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgall_range(base, 3,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int s5p6450_spi_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6450_GPC(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6450_GPC(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6450_GPC(2), S3C_GPIO_PULL_UP);
|
||||
base = S5P6450_GPC(0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5P6450_GPC(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6450_GPC(4), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6450_GPC(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5P6450_GPC(6), S3C_GPIO_PULL_UP);
|
||||
base = S5P6450_GPC(4);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -92,6 +79,9 @@ static int s5p6450_spi_cfg_gpio(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgall_range(base, 3,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s5p6440_i2c0_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5P6440_GPB(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6440_GPB(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5P6440_GPB(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6440_GPB(6), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5P6440_GPB(5), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
||||
void s5p6450_i2c0_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5P6450_GPB(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6450_GPB(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5P6450_GPB(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5P6450_GPB(6), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5P6450_GPB(5), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
||||
void s3c_i2c0_cfg_gpio(struct platform_device *dev) { }
|
||||
|
@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s5p6440_i2c1_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(9), S3C_GPIO_SFN(6));
|
||||
s3c_gpio_setpull(S5P6440_GPR(9), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5P6440_GPR(10), S3C_GPIO_SFN(6));
|
||||
s3c_gpio_setpull(S5P6440_GPR(10), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5P6440_GPR(9), 2,
|
||||
S3C_GPIO_SFN(6), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
||||
void s5p6450_i2c1_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(9), S3C_GPIO_SFN(6));
|
||||
s3c_gpio_setpull(S5P6450_GPR(9), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5P6450_GPR(10), S3C_GPIO_SFN(6));
|
||||
s3c_gpio_setpull(S5P6450_GPR(10), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5P6450_GPR(9), 2,
|
||||
S3C_GPIO_SFN(6), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
||||
void s3c_i2c1_cfg_gpio(struct platform_device *dev) { }
|
||||
|
@ -24,19 +24,11 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
|
||||
/* configure GPIO for i2s port */
|
||||
switch (pdev->id) {
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin_range(S5PC100_GPC(0), 5, S3C_GPIO_SFN(2));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(0), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(1), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(2), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(3), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(4), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin_range(S5PC100_GPG3(0), 5, S3C_GPIO_SFN(4));
|
||||
break;
|
||||
|
||||
case -1: /* Dedicated pins */
|
||||
@ -144,19 +136,11 @@ static int s5pc100_pcm_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(0), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(1), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(2), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(3), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(4), S3C_GPIO_SFN(5));
|
||||
s3c_gpio_cfgpin_range(S5PC100_GPG3(0), 5, S3C_GPIO_SFN(5));
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(0), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(1), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(2), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(3), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(4), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin_range(S5PC100_GPC(0), 5, S3C_GPIO_SFN(3));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -231,13 +215,7 @@ struct platform_device s5pc100_device_pcm1 = {
|
||||
|
||||
static int s5pc100_ac97_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(0), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(1), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(2), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(3), S3C_GPIO_SFN(4));
|
||||
s3c_gpio_cfgpin(S5PC100_GPC(4), S3C_GPIO_SFN(4));
|
||||
|
||||
return 0;
|
||||
return s3c_gpio_cfgpin_range(S5PC100_GPC(0), 5, S3C_GPIO_SFN(4));
|
||||
}
|
||||
|
||||
static struct resource s5pc100_ac97_resource[] = {
|
||||
|
@ -38,30 +38,20 @@ static int s5pc100_spi_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PC100_GPB(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPB(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPB(2), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PC100_GPB(0), 3,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PC100_GPB(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PC100_GPB(4), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPB(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPB(6), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PC100_GPB(4), 3,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(0), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(2), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_cfgpin(S5PC100_GPG3(3), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(S5PC100_GPG3(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPG3(2), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PC100_GPG3(3), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PC100_GPB(2), 2,
|
||||
S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -22,27 +22,15 @@
|
||||
|
||||
#define DISR_OFFSET 0x7008
|
||||
|
||||
static void s5pc100_fb_setgpios(unsigned int base, unsigned int nr)
|
||||
{
|
||||
s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(2));
|
||||
}
|
||||
|
||||
void s5pc100_fb_gpio_setup_24bpp(void)
|
||||
{
|
||||
unsigned int gpio = 0;
|
||||
|
||||
for (gpio = S5PC100_GPF0(0); gpio <= S5PC100_GPF0(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
for (gpio = S5PC100_GPF1(0); gpio <= S5PC100_GPF1(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
for (gpio = S5PC100_GPF2(0); gpio <= S5PC100_GPF2(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
for (gpio = S5PC100_GPF3(0); gpio <= S5PC100_GPF3(3); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s5pc100_fb_setgpios(S5PC100_GPF0(0), 8);
|
||||
s5pc100_fb_setgpios(S5PC100_GPF1(0), 8);
|
||||
s5pc100_fb_setgpios(S5PC100_GPF2(0), 8);
|
||||
s5pc100_fb_setgpios(S5PC100_GPF3(0), 4);
|
||||
}
|
||||
|
@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
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);
|
||||
s3c_gpio_cfgall_range(S5PC100_GPD(3), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c1_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PC100_GPD(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PC100_GPD(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PC100_GPD(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PC100_GPD(6), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PC100_GPD(5), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -17,52 +17,39 @@
|
||||
#include <mach/regs-clock.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
static void s5pc100_ide_cfg_gpios(unsigned int base, unsigned int nr)
|
||||
{
|
||||
s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(4));
|
||||
|
||||
for (; nr > 0; nr--, base++)
|
||||
s5p_gpio_set_drvstr(base, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
void s5pc100_ide_setup_gpio(void)
|
||||
{
|
||||
u32 reg;
|
||||
u32 gpio = 0;
|
||||
|
||||
/* Independent CF interface, CF chip select configuration */
|
||||
reg = readl(S5PC100_MEM_SYS_CFG) & (~0x3f);
|
||||
writel(reg | MEM_SYS_CFG_EBI_FIX_PRI_CFCON, S5PC100_MEM_SYS_CFG);
|
||||
|
||||
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST, CF_DMACK */
|
||||
for (gpio = S5PC100_GPJ0(0); gpio <= S5PC100_GPJ0(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
s5pc100_ide_cfg_gpios(S5PC100_GPJ0(0), 8);
|
||||
|
||||
/*CF_Data[0 - 7] */
|
||||
for (gpio = S5PC100_GPJ2(0); gpio <= S5PC100_GPJ2(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
s5pc100_ide_cfg_gpios(S5PC100_GPJ2(0), 8);
|
||||
|
||||
/* CF_Data[8 - 15] */
|
||||
for (gpio = S5PC100_GPJ3(0); gpio <= S5PC100_GPJ3(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
s5pc100_ide_cfg_gpios(S5PC100_GPJ3(0), 8);
|
||||
|
||||
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
|
||||
for (gpio = S5PC100_GPJ4(0); gpio <= S5PC100_GPJ4(3); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
s5pc100_ide_cfg_gpios(S5PC100_GPJ4(0), 4);
|
||||
|
||||
/* EBI_OE, EBI_WE */
|
||||
for (gpio = S5PC100_GPK0(6); gpio <= S5PC100_GPK0(7); gpio++)
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0));
|
||||
s3c_gpio_cfgpin_range(S5PC100_GPK0(6), 2, S3C_GPIO_SFN(0));
|
||||
|
||||
/* CF_OE, CF_WE */
|
||||
for (gpio = S5PC100_GPK1(6); gpio <= S5PC100_GPK1(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPK1(6), 8, S3C_GPIO_SFN(2));
|
||||
|
||||
/* CF_CD */
|
||||
s3c_gpio_cfgpin(S5PC100_GPK3(5), S3C_GPIO_SFN(2));
|
||||
|
@ -15,20 +15,9 @@
|
||||
|
||||
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
|
||||
{
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
|
||||
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
|
||||
end = S5PC100_GPH3(rows);
|
||||
for (gpio = S5PC100_GPH3(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPH3(0), rows, S3C_GPIO_SFN(3));
|
||||
|
||||
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
|
||||
end = S5PC100_GPH2(cols);
|
||||
for (gpio = S5PC100_GPH2(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPH2(0), cols, S3C_GPIO_SFN(3));
|
||||
}
|
||||
|
@ -25,8 +25,6 @@
|
||||
void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
unsigned int num;
|
||||
|
||||
num = width;
|
||||
@ -34,20 +32,11 @@ void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
if (width == 8)
|
||||
num = width - 2;
|
||||
|
||||
end = S5PC100_GPG0(2 + num);
|
||||
|
||||
/* Set all the necessary GPG0/GPG1 pins to special-function 0 */
|
||||
for (gpio = S5PC100_GPG0(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPG0(0), 2 + num, S3C_GPIO_SFN(2));
|
||||
|
||||
if (width == 8) {
|
||||
for (gpio = S5PC100_GPG1(0); gpio <= S5PC100_GPG1(1); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
}
|
||||
if (width == 8)
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPG1(0), 2, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S5PC100_GPG1(2), S3C_GPIO_PULL_UP);
|
||||
@ -58,16 +47,9 @@ void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s5pc100_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
|
||||
end = S5PC100_GPG2(2 + width);
|
||||
|
||||
/* Set all the necessary GPG2 pins to special-function 2 */
|
||||
for (gpio = S5PC100_GPG2(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPG2(0), 2 + width, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S5PC100_GPG2(6), S3C_GPIO_PULL_UP);
|
||||
@ -78,16 +60,9 @@ void s5pc100_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s5pc100_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
unsigned int end;
|
||||
|
||||
end = S5PC100_GPG3(2 + width);
|
||||
|
||||
/* Set all the necessary GPG3 pins to special-function 2 */
|
||||
for (gpio = S5PC100_GPG3(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PC100_GPG3(0), 2 + width, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S5PC100_GPG3(6), S3C_GPIO_PULL_UP);
|
||||
|
@ -24,29 +24,15 @@ 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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, 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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPC1(0), 5, S3C_GPIO_SFN(4));
|
||||
break;
|
||||
|
||||
case -1:
|
||||
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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPI(0), 7, S3C_GPIO_SFN(2));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -151,25 +137,13 @@ 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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPI(0), 5, 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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, 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));
|
||||
s3c_gpio_cfgpin_range(S5PV210_GPC1(0), 5, S3C_GPIO_SFN(2));
|
||||
break;
|
||||
default:
|
||||
printk(KERN_DEBUG "Invalid PCM Controller number!");
|
||||
@ -271,13 +245,7 @@ struct platform_device s5pv210_device_pcm2 = {
|
||||
|
||||
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;
|
||||
return s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, S3C_GPIO_SFN(4));
|
||||
}
|
||||
|
||||
static struct resource s5pv210_ac97_resource[] = {
|
||||
|
@ -35,23 +35,15 @@ static char *spi_src_clks[] = {
|
||||
*/
|
||||
static int s5pv210_spi_cfg_gpio(struct platform_device *pdev)
|
||||
{
|
||||
unsigned int base;
|
||||
|
||||
switch (pdev->id) {
|
||||
case 0:
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPB(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PV210_GPB(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PV210_GPB(2), S3C_GPIO_PULL_UP);
|
||||
base = S5PV210_GPB(0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S5PV210_GPB(6), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPB(4), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PV210_GPB(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_setpull(S5PV210_GPB(6), S3C_GPIO_PULL_UP);
|
||||
base = S5PV210_GPB(4);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -59,6 +51,9 @@ static int s5pv210_spi_cfg_gpio(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c_gpio_cfgall_range(base, 3,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -21,33 +21,21 @@
|
||||
#include <mach/regs-clock.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
static void s5pv210_fb_cfg_gpios(unsigned int base, unsigned int nr)
|
||||
{
|
||||
s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(2));
|
||||
|
||||
for (; nr > 0; nr--, base++)
|
||||
s5p_gpio_set_drvstr(base, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
|
||||
void s5pv210_fb_gpio_setup_24bpp(void)
|
||||
{
|
||||
unsigned int gpio = 0;
|
||||
|
||||
for (gpio = S5PV210_GPF0(0); gpio <= S5PV210_GPF0(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
for (gpio = S5PV210_GPF1(0); gpio <= S5PV210_GPF1(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
for (gpio = S5PV210_GPF2(0); gpio <= S5PV210_GPF2(7); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
for (gpio = S5PV210_GPF3(0); gpio <= S5PV210_GPF3(3); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
s5pv210_fb_cfg_gpios(S5PV210_GPF0(0), 8);
|
||||
s5pv210_fb_cfg_gpios(S5PV210_GPF1(0), 8);
|
||||
s5pv210_fb_cfg_gpios(S5PV210_GPF2(0), 8);
|
||||
s5pv210_fb_cfg_gpios(S5PV210_GPF3(0), 4);
|
||||
|
||||
/* Set DISPLAY_CONTROL register for Display path selection.
|
||||
*
|
||||
|
@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c0_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV210_GPD1(0), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c1_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(2), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(3), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV210_GPD1(2), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c2_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(4), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(4), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV210_GPD1(5), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV210_GPD1(5), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV210_GPD1(4), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -15,36 +15,25 @@
|
||||
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
static void s5pv210_ide_cfg_gpios(unsigned int base, unsigned int nr)
|
||||
{
|
||||
s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(4));
|
||||
|
||||
for (; nr > 0; nr--, base++)
|
||||
s5p_gpio_set_drvstr(base, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
void s5pv210_ide_setup_gpio(void)
|
||||
{
|
||||
unsigned int gpio = 0;
|
||||
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST, CF_DMACK */
|
||||
s5pv210_ide_cfg_gpios(S5PV210_GPJ0(0), 8);
|
||||
|
||||
for (gpio = S5PV210_GPJ0(0); gpio <= S5PV210_GPJ0(7); gpio++) {
|
||||
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST,
|
||||
CF_DMACK */
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
/* CF_Data[0 - 7] */
|
||||
s5pv210_ide_cfg_gpios(S5PV210_GPJ2(0), 8);
|
||||
|
||||
for (gpio = S5PV210_GPJ2(0); gpio <= S5PV210_GPJ2(7); gpio++) {
|
||||
/*CF_Data[0 - 7] */
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
/* CF_Data[8 - 15] */
|
||||
s5pv210_ide_cfg_gpios(S5PV210_GPJ3(0), 8);
|
||||
|
||||
for (gpio = S5PV210_GPJ3(0); gpio <= S5PV210_GPJ3(7); gpio++) {
|
||||
/* CF_Data[8 - 15] */
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
for (gpio = S5PV210_GPJ4(0); gpio <= S5PV210_GPJ4(3); gpio++) {
|
||||
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(4));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
|
||||
s5pv210_ide_cfg_gpios(S5PV210_GPJ4(0), 4);
|
||||
}
|
||||
|
@ -16,19 +16,9 @@
|
||||
|
||||
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
|
||||
{
|
||||
unsigned int gpio, end;
|
||||
|
||||
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
|
||||
end = S5PV210_GPH3(rows);
|
||||
for (gpio = S5PV210_GPH3(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPH3(0), rows, S3C_GPIO_SFN(3));
|
||||
|
||||
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
|
||||
end = S5PV210_GPH2(cols);
|
||||
for (gpio = S5PV210_GPH2(0); gpio < end; gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPH2(0), cols, S3C_GPIO_SFN(3));
|
||||
}
|
||||
|
@ -26,26 +26,17 @@
|
||||
void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
|
||||
/* Set all the necessary GPG0/GPG1 pins to special-function 2 */
|
||||
for (gpio = S5PV210_GPG0(0); gpio < S5PV210_GPG0(2); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG0(0), 2, S3C_GPIO_SFN(2));
|
||||
|
||||
switch (width) {
|
||||
case 8:
|
||||
/* GPG1[3:6] special-funtion 3 */
|
||||
for (gpio = S5PV210_GPG1(3); gpio <= S5PV210_GPG1(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG1(3), 4, S3C_GPIO_SFN(3));
|
||||
case 4:
|
||||
/* GPG0[3:6] special-funtion 2 */
|
||||
for (gpio = S5PV210_GPG0(3); gpio <= S5PV210_GPG0(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG0(3), 4, S3C_GPIO_SFN(2));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -59,19 +50,12 @@ void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
|
||||
/* Set all the necessary GPG1[0:1] pins to special-function 2 */
|
||||
for (gpio = S5PV210_GPG1(0); gpio < S5PV210_GPG1(2); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG1(0), 2, S3C_GPIO_SFN(2));
|
||||
|
||||
/* Data pin GPG1[3:6] to special-function 2 */
|
||||
for (gpio = S5PV210_GPG1(3); gpio <= S5PV210_GPG1(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG1(3), 4, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S5PV210_GPG1(2), S3C_GPIO_PULL_UP);
|
||||
@ -82,27 +66,17 @@ void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
|
||||
/* Set all the necessary GPG2[0:1] pins to special-function 2 */
|
||||
for (gpio = S5PV210_GPG2(0); gpio < S5PV210_GPG2(2); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG2(0), 2, S3C_GPIO_SFN(2));
|
||||
|
||||
switch (width) {
|
||||
case 8:
|
||||
/* Data pin GPG3[3:6] to special-function 3 */
|
||||
for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG3(3), 4, S3C_GPIO_SFN(3));
|
||||
case 4:
|
||||
/* Data pin GPG2[3:6] to special-function 2 */
|
||||
for (gpio = S5PV210_GPG2(3); gpio <= S5PV210_GPG2(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG2(3), 4, S3C_GPIO_SFN(2));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -116,19 +90,12 @@ void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
|
||||
void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width)
|
||||
{
|
||||
struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
|
||||
unsigned int gpio;
|
||||
|
||||
/* Set all the necessary GPG3[0:2] pins to special-function 2 */
|
||||
for (gpio = S5PV210_GPG3(0); gpio < S5PV210_GPG3(2); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
/* Set all the necessary GPG3[0:1] pins to special-function 2 */
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG3(0), 2, S3C_GPIO_SFN(2));
|
||||
|
||||
/* Data pin GPG3[3:6] to special-function 2 */
|
||||
for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) {
|
||||
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
s3c_gpio_cfgrange_nopull(S5PV210_GPG3(3), 4, S3C_GPIO_SFN(2));
|
||||
|
||||
if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
|
||||
s3c_gpio_setpull(S5PV210_GPG3(2), S3C_GPIO_PULL_UP);
|
||||
|
@ -21,8 +21,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c0_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV310_GPD1(0), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV310_GPD1(0), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV310_GPD1(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV310_GPD1(1), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV310_GPD1(0), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c1_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV310_GPD1(2), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV310_GPD1(2), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV310_GPD1(3), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_setpull(S5PV310_GPD1(3), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV310_GPD1(2), 2,
|
||||
S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
|
||||
|
||||
void s3c_i2c2_cfg_gpio(struct platform_device *dev)
|
||||
{
|
||||
s3c_gpio_cfgpin(S5PV310_GPA0(6), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(S5PV310_GPA0(6), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgpin(S5PV310_GPA0(7), S3C_GPIO_SFN(3));
|
||||
s3c_gpio_setpull(S5PV310_GPA0(7), S3C_GPIO_PULL_UP);
|
||||
s3c_gpio_cfgall_range(S5PV310_GPA0(6), 2,
|
||||
S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
|
||||
}
|
||||
|
@ -41,6 +41,37 @@ int s3c_gpio_cfgpin(unsigned int pin, unsigned int config)
|
||||
}
|
||||
EXPORT_SYMBOL(s3c_gpio_cfgpin);
|
||||
|
||||
int s3c_gpio_cfgpin_range(unsigned int start, unsigned int nr,
|
||||
unsigned int cfg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
for (; nr > 0; nr--, start++) {
|
||||
ret = s3c_gpio_cfgpin(start, cfg);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(s3c_gpio_cfgpin_range);
|
||||
|
||||
int s3c_gpio_cfgall_range(unsigned int start, unsigned int nr,
|
||||
unsigned int cfg, s3c_gpio_pull_t pull)
|
||||
{
|
||||
int ret;
|
||||
|
||||
for (; nr > 0; nr--, start++) {
|
||||
s3c_gpio_setpull(start, pull);
|
||||
ret = s3c_gpio_cfgpin(start, cfg);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(s3c_gpio_cfgall_range);
|
||||
|
||||
unsigned s3c_gpio_getcfg(unsigned int pin)
|
||||
{
|
||||
struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin);
|
||||
|
@ -108,6 +108,19 @@ extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to);
|
||||
*/
|
||||
extern unsigned s3c_gpio_getcfg(unsigned int pin);
|
||||
|
||||
/**
|
||||
* s3c_gpio_cfgpin_range() - Change the GPIO function for configuring pin range
|
||||
* @start: The pin number to start at
|
||||
* @nr: The number of pins to configure from @start.
|
||||
* @cfg: The configuration for the pin's function
|
||||
*
|
||||
* Call s3c_gpio_cfgpin() for the @nr pins starting at @start.
|
||||
*
|
||||
* @sa s3c_gpio_cfgpin.
|
||||
*/
|
||||
extern int s3c_gpio_cfgpin_range(unsigned int start, unsigned int nr,
|
||||
unsigned int cfg);
|
||||
|
||||
/* Define values for the pull-{up,down} available for each gpio pin.
|
||||
*
|
||||
* These values control the state of the weak pull-{up,down} resistors
|
||||
@ -140,6 +153,31 @@ extern int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull);
|
||||
*/
|
||||
extern s3c_gpio_pull_t s3c_gpio_getpull(unsigned int pin);
|
||||
|
||||
/* configure `all` aspects of an gpio */
|
||||
|
||||
/**
|
||||
* s3c_gpio_cfgall_range() - configure range of gpio functtion and pull.
|
||||
* @start: The gpio number to start at.
|
||||
* @nr: The number of gpio to configure from @start.
|
||||
* @cfg: The configuration to use
|
||||
* @pull: The pull setting to use.
|
||||
*
|
||||
* Run s3c_gpio_cfgpin() and s3c_gpio_setpull() over the gpio range starting
|
||||
* @gpio and running for @size.
|
||||
*
|
||||
* @sa s3c_gpio_cfgpin
|
||||
* @sa s3c_gpio_setpull
|
||||
* @sa s3c_gpio_cfgpin_range
|
||||
*/
|
||||
extern int s3c_gpio_cfgall_range(unsigned int start, unsigned int nr,
|
||||
unsigned int cfg, s3c_gpio_pull_t pull);
|
||||
|
||||
static inline int s3c_gpio_cfgrange_nopull(unsigned int pin, unsigned int size,
|
||||
unsigned int cfg)
|
||||
{
|
||||
return s3c_gpio_cfgall_range(pin, size, cfg, S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
/* Define values for the drvstr available for each gpio pin.
|
||||
*
|
||||
* These values control the value of the output signal driver strength,
|
||||
|
Loading…
Reference in New Issue
Block a user