Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
4d9374f3
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4d9374f3
编写于
10月 25, 2010
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next-gpio-update' into for-next
上级
dc6c0ca3
dff2126c
变更
33
显示空白变更内容
内联
并排
Showing
33 changed file
with
258 addition
and
520 deletion
+258
-520
arch/arm/mach-s3c64xx/dev-audio.c
arch/arm/mach-s3c64xx/dev-audio.c
+18
-46
arch/arm/mach-s3c64xx/setup-fb-24bpp.c
arch/arm/mach-s3c64xx/setup-fb-24bpp.c
+2
-11
arch/arm/mach-s3c64xx/setup-ide.c
arch/arm/mach-s3c64xx/setup-ide.c
+3
-7
arch/arm/mach-s3c64xx/setup-keypad.c
arch/arm/mach-s3c64xx/setup-keypad.c
+2
-13
arch/arm/mach-s3c64xx/setup-sdhci-gpio.c
arch/arm/mach-s3c64xx/setup-sdhci-gpio.c
+8
-33
arch/arm/mach-s5p6442/dev-audio.c
arch/arm/mach-s5p6442/dev-audio.c
+10
-20
arch/arm/mach-s5p6442/dev-spi.c
arch/arm/mach-s5p6442/dev-spi.c
+2
-4
arch/arm/mach-s5p64x0/dev-audio.c
arch/arm/mach-s5p64x0/dev-audio.c
+7
-19
arch/arm/mach-s5p64x0/dev-spi.c
arch/arm/mach-s5p64x0/dev-spi.c
+14
-24
arch/arm/mach-s5p64x0/setup-i2c0.c
arch/arm/mach-s5p64x0/setup-i2c0.c
+4
-8
arch/arm/mach-s5p64x0/setup-i2c1.c
arch/arm/mach-s5p64x0/setup-i2c1.c
+4
-8
arch/arm/mach-s5pc100/dev-audio.c
arch/arm/mach-s5pc100/dev-audio.c
+5
-27
arch/arm/mach-s5pc100/dev-spi.c
arch/arm/mach-s5pc100/dev-spi.c
+6
-16
arch/arm/mach-s5pc100/setup-fb-24bpp.c
arch/arm/mach-s5pc100/setup-fb-24bpp.c
+9
-21
arch/arm/mach-s5pc100/setup-i2c0.c
arch/arm/mach-s5pc100/setup-i2c0.c
+2
-4
arch/arm/mach-s5pc100/setup-i2c1.c
arch/arm/mach-s5pc100/setup-i2c1.c
+2
-4
arch/arm/mach-s5pc100/setup-ide.c
arch/arm/mach-s5pc100/setup-ide.c
+14
-27
arch/arm/mach-s5pc100/setup-keypad.c
arch/arm/mach-s5pc100/setup-keypad.c
+2
-13
arch/arm/mach-s5pc100/setup-sdhci-gpio.c
arch/arm/mach-s5pc100/setup-sdhci-gpio.c
+5
-30
arch/arm/mach-s5pv210/dev-audio.c
arch/arm/mach-s5pv210/dev-audio.c
+7
-39
arch/arm/mach-s5pv210/dev-spi.c
arch/arm/mach-s5pv210/dev-spi.c
+7
-12
arch/arm/mach-s5pv210/setup-fb-24bpp.c
arch/arm/mach-s5pv210/setup-fb-24bpp.c
+11
-23
arch/arm/mach-s5pv210/setup-i2c0.c
arch/arm/mach-s5pv210/setup-i2c0.c
+2
-4
arch/arm/mach-s5pv210/setup-i2c1.c
arch/arm/mach-s5pv210/setup-i2c1.c
+2
-4
arch/arm/mach-s5pv210/setup-i2c2.c
arch/arm/mach-s5pv210/setup-i2c2.c
+2
-4
arch/arm/mach-s5pv210/setup-ide.c
arch/arm/mach-s5pv210/setup-ide.c
+19
-30
arch/arm/mach-s5pv210/setup-keypad.c
arch/arm/mach-s5pv210/setup-keypad.c
+2
-12
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
+12
-45
arch/arm/mach-s5pv310/setup-i2c0.c
arch/arm/mach-s5pv310/setup-i2c0.c
+2
-4
arch/arm/mach-s5pv310/setup-i2c1.c
arch/arm/mach-s5pv310/setup-i2c1.c
+2
-4
arch/arm/mach-s5pv310/setup-i2c2.c
arch/arm/mach-s5pv310/setup-i2c2.c
+2
-4
arch/arm/plat-samsung/gpio-config.c
arch/arm/plat-samsung/gpio-config.c
+31
-0
arch/arm/plat-samsung/include/plat/gpio-cfg.h
arch/arm/plat-samsung/include/plat/gpio-cfg.h
+38
-0
未找到文件。
arch/arm/mach-s3c64xx/dev-audio.c
浏览文件 @
4d9374f3
...
@@ -22,44 +22,33 @@
...
@@ -22,44 +22,33 @@
#include <plat/audio.h>
#include <plat/audio.h>
#include <plat/gpio-cfg.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
)
static
int
s3c64xx_i2sv3_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S3C64XX_GPD
(
0
),
S3C64XX_GPD0_I2S0_CLK
);
base
=
S3C64XX_GPD
(
0
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S3C64XX_GPE
(
0
),
S3C64XX_GPE0_I2S1_CLK
);
base
=
S3C64XX_GPE
(
0
);
s3c_gpio_cfgpin
(
S3C64XX_GPE
(
1
),
S3C64XX_GPE1_I2S1_CDCLK
);
break
;
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
);
default:
default:
printk
(
KERN_DEBUG
"Invalid I2S Controller number!"
);
printk
(
KERN_DEBUG
"Invalid I2S Controller number!"
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgpin_range
(
base
,
5
,
S3C_GPIO_SFN
(
3
));
return
0
;
return
0
;
}
}
static
int
s3c64xx_i2sv4_cfg_gpio
(
struct
platform_device
*
pdev
)
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
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S3C64XX_GPC
(
5
),
S3C64XX_GPC5_I2S_V40_DO1
);
s3c_gpio_cfgpin
(
S3C64XX_GPC
(
5
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S3C64XX_GPC
(
7
),
S3C64XX_GPC7_I2S_V40_DO2
);
s3c_gpio_cfgpin
(
S3C64XX_GPC
(
7
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S3C64XX_GPH
(
6
),
S3C64XX_GPH6_I2S_V40_BCLK
);
s3c_gpio_cfgpin_range
(
S3C64XX_GPH
(
6
),
4
,
S3C_GPIO_SFN
(
5
));
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
);
return
0
;
return
0
;
}
}
...
@@ -168,26 +157,21 @@ EXPORT_SYMBOL(s3c64xx_device_iisv4);
...
@@ -168,26 +157,21 @@ EXPORT_SYMBOL(s3c64xx_device_iisv4);
static
int
s3c64xx_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s3c64xx_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S3C64XX_GPD
(
0
),
S3C64XX_GPD0_PCM0_SCLK
);
base
=
S3C64XX_GPD
(
0
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S3C64XX_GPE
(
0
),
S3C64XX_GPE0_PCM1_SCLK
);
base
=
S3C64XX_GPE
(
0
);
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
);
break
;
break
;
default:
default:
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgpin_range
(
base
,
5
,
S3C_GPIO_SFN
(
2
));
return
0
;
return
0
;
}
}
...
@@ -261,24 +245,12 @@ EXPORT_SYMBOL(s3c64xx_device_pcm1);
...
@@ -261,24 +245,12 @@ EXPORT_SYMBOL(s3c64xx_device_pcm1);
static
int
s3c64xx_ac97_cfg_gpd
(
struct
platform_device
*
pdev
)
static
int
s3c64xx_ac97_cfg_gpd
(
struct
platform_device
*
pdev
)
{
{
s3c_gpio_cfgpin
(
S3C64XX_GPD
(
0
),
S3C64XX_GPD0_AC97_BITCLK
);
return
s3c_gpio_cfgpin_range
(
S3C64XX_GPD
(
0
),
5
,
S3C_GPIO_SFN
(
4
));
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
;
}
}
static
int
s3c64xx_ac97_cfg_gpe
(
struct
platform_device
*
pdev
)
static
int
s3c64xx_ac97_cfg_gpe
(
struct
platform_device
*
pdev
)
{
{
s3c_gpio_cfgpin
(
S3C64XX_GPE
(
0
),
S3C64XX_GPE0_AC97_BITCLK
);
return
s3c_gpio_cfgpin_range
(
S3C64XX_GPE
(
0
),
5
,
S3C_GPIO_SFN
(
4
));
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
;
}
}
static
struct
resource
s3c64xx_ac97_resource
[]
=
{
static
struct
resource
s3c64xx_ac97_resource
[]
=
{
...
...
arch/arm/mach-s3c64xx/setup-fb-24bpp.c
浏览文件 @
4d9374f3
...
@@ -23,15 +23,6 @@
...
@@ -23,15 +23,6 @@
extern
void
s3c64xx_fb_gpio_setup_24bpp
(
void
)
extern
void
s3c64xx_fb_gpio_setup_24bpp
(
void
)
{
{
unsigned
int
gpio
;
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPI
(
0
),
16
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPJ
(
0
),
12
,
S3C_GPIO_SFN
(
2
));
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
);
}
}
}
arch/arm/mach-s3c64xx/setup-ide.c
浏览文件 @
4d9374f3
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
void
s3c64xx_ide_setup_gpio
(
void
)
void
s3c64xx_ide_setup_gpio
(
void
)
{
{
u32
reg
;
u32
reg
;
u32
gpio
=
0
;
reg
=
readl
(
S3C_MEM_SYS_CFG
)
&
(
~
0x3f
);
reg
=
readl
(
S3C_MEM_SYS_CFG
)
&
(
~
0x3f
);
...
@@ -32,15 +31,12 @@ void s3c64xx_ide_setup_gpio(void)
...
@@ -32,15 +31,12 @@ void s3c64xx_ide_setup_gpio(void)
s3c_gpio_cfgpin
(
S3C64XX_GPB
(
4
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S3C64XX_GPB
(
4
),
S3C_GPIO_SFN
(
4
));
/* Set XhiDATA[15:0] pins as CF Data[15:0] */
/* Set XhiDATA[15:0] pins as CF Data[15:0] */
for
(
gpio
=
S3C64XX_GPK
(
0
);
gpio
<=
S3C64XX_GPK
(
15
);
gpio
++
)
s3c_gpio_cfgpin_range
(
S3C64XX_GPK
(
0
),
16
,
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
5
));
/* Set XhiADDR[2:0] pins as CF ADDR[2:0] */
/* Set XhiADDR[2:0] pins as CF ADDR[2:0] */
for
(
gpio
=
S3C64XX_GPL
(
0
);
gpio
<=
S3C64XX_GPL
(
2
);
gpio
++
)
s3c_gpio_cfgpin_range
(
S3C64XX_GPL
(
0
),
3
,
S3C_GPIO_SFN
(
6
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
6
));
/* Set Xhi ctrl pins as CF ctrl pins(IORDY, IOWR, IORD, CE[0:1]) */
/* 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
(
S3C64XX_GPM
(
5
),
S3C_GPIO_SFN
(
1
));
for
(
gpio
=
S3C64XX_GPM
(
0
);
gpio
<=
S3C64XX_GPM
(
4
);
gpio
++
)
s3c_gpio_cfgpin_range
(
S3C64XX_GPM
(
0
),
5
,
S3C_GPIO_SFN
(
6
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
6
));
}
}
arch/arm/mach-s3c64xx/setup-keypad.c
浏览文件 @
4d9374f3
...
@@ -15,20 +15,9 @@
...
@@ -15,20 +15,9 @@
void
samsung_keypad_cfg_gpio
(
unsigned
int
rows
,
unsigned
int
cols
)
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] */
/* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */
end
=
S3C64XX_GPK
(
8
+
rows
);
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPK
(
8
),
8
+
rows
,
S3C_GPIO_SFN
(
3
));
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] */
/* Set all the necessary GPL pins to special-function 3: KP_COL[x] */
end
=
S3C64XX_GPL
(
0
+
cols
);
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPL
(
0
),
cols
,
S3C_GPIO_SFN
(
3
));
for
(
gpio
=
S3C64XX_GPL
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
}
arch/arm/mach-s3c64xx/setup-sdhci-gpio.c
浏览文件 @
4d9374f3
...
@@ -24,16 +24,9 @@
...
@@ -24,16 +24,9 @@
void
s3c64xx_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
void
s3c64xx_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
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 2 */
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPG
(
0
),
2
+
width
,
S3C_GPIO_SFN
(
2
));
/* 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
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S3C64XX_GPG
(
6
),
S3C_GPIO_PULL_UP
);
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)
...
@@ -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
)
void
s3c64xx_setup_sdhci1_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
unsigned
int
end
;
end
=
S3C64XX_GPH
(
2
+
width
);
/* Set all the necessary GPH pins to special-function 2 */
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPH
(
0
),
2
+
width
,
S3C_GPIO_SFN
(
2
));
/* 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
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S3C64XX_GPG
(
6
),
S3C_GPIO_PULL_UP
);
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)
...
@@ -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
)
void
s3c64xx_setup_sdhci2_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
unsigned
int
gpio
;
/* Set all the necessary GPH pins to special-function 3 */
unsigned
int
end
;
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPH
(
6
),
width
,
S3C_GPIO_SFN
(
3
))
;
end
=
S3C64XX_GPH
(
6
+
width
);
/* Set all the necessary GPC pins to special-function 3 */
s3c_gpio_cfgrange_nopull
(
S3C64XX_GPC
(
4
),
2
,
S3C_GPIO_SFN
(
3
));
/* 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
);
}
}
}
arch/arm/mach-s5p6442/dev-audio.c
浏览文件 @
4d9374f3
...
@@ -21,22 +21,16 @@
...
@@ -21,22 +21,16 @@
static
int
s5p6442_cfg_i2s
(
struct
platform_device
*
pdev
)
static
int
s5p6442_cfg_i2s
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
/* configure GPIO for i2s port */
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
0
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6442_GPC1
(
0
);
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
));
break
;
break
;
case
-
1
:
case
-
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
0
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6442_GPC0
(
0
);
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
));
break
;
break
;
default:
default:
...
@@ -44,6 +38,7 @@ static int s5p6442_cfg_i2s(struct platform_device *pdev)
...
@@ -44,6 +38,7 @@ static int s5p6442_cfg_i2s(struct platform_device *pdev)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgpin_range
(
base
,
5
,
S3C_GPIO_SFN
(
2
));
return
0
;
return
0
;
}
}
...
@@ -111,21 +106,15 @@ struct platform_device s5p6442_device_iis1 = {
...
@@ -111,21 +106,15 @@ struct platform_device s5p6442_device_iis1 = {
static
int
s5p6442_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5p6442_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
0
),
S3C_GPIO_SFN
(
3
));
base
=
S5P6442_GPC0
(
0
);
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
));
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
0
),
S3C_GPIO_SFN
(
3
));
base
=
S5P6442_GPC1
(
0
);
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
));
break
;
break
;
default:
default:
...
@@ -133,6 +122,7 @@ static int s5p6442_pcm_cfg_gpio(struct platform_device *pdev)
...
@@ -133,6 +122,7 @@ static int s5p6442_pcm_cfg_gpio(struct platform_device *pdev)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgpin_range
(
base
,
5
,
S3C_GPIO_SFN
(
3
));
return
0
;
return
0
;
}
}
...
...
arch/arm/mach-s5p6442/dev-spi.c
浏览文件 @
4d9374f3
...
@@ -38,11 +38,9 @@ static int s5p6442_spi_cfg_gpio(struct platform_device *pdev)
...
@@ -38,11 +38,9 @@ static int s5p6442_spi_cfg_gpio(struct platform_device *pdev)
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5P6442_GPB
(
0
),
S3C_GPIO_SFN
(
2
));
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
(
0
),
S3C_GPIO_PULL_UP
);
s3c_gpio_
setpull
(
S5P6442_GPB
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_
cfgall_range
(
S5P6442_GPB
(
2
),
2
,
s3c_gpio_setpull
(
S5P6442_GPB
(
3
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
break
;
break
;
default:
default:
...
...
arch/arm/mach-s5p64x0/dev-audio.c
浏览文件 @
4d9374f3
...
@@ -24,13 +24,8 @@ static int s5p6440_cfg_i2s(struct platform_device *pdev)
...
@@ -24,13 +24,8 @@ static int s5p6440_cfg_i2s(struct platform_device *pdev)
/* configure GPIO for i2s port */
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
-
1
:
case
-
1
:
s3c_gpio_cfgpin
(
S5P6440_GPR
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin_range
(
S5P6440_GPR
(
4
),
5
,
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
5
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin_range
(
S5P6440_GPR
(
13
),
2
,
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
));
break
;
break
;
default:
default:
...
@@ -47,13 +42,9 @@ static int s5p6450_cfg_i2s(struct platform_device *pdev)
...
@@ -47,13 +42,9 @@ static int s5p6450_cfg_i2s(struct platform_device *pdev)
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
-
1
:
case
-
1
:
s3c_gpio_cfgpin
(
S5P6450_GPB
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6450_GPB
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6450_GPR
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin_range
(
S5P6450_GPR
(
4
),
5
,
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6450_GPR
(
5
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin_range
(
S5P6450_GPR
(
13
),
2
,
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
));
break
;
break
;
default:
default:
...
@@ -116,11 +107,8 @@ static int s5p6440_pcm_cfg_gpio(struct platform_device *pdev)
...
@@ -116,11 +107,8 @@ static int s5p6440_pcm_cfg_gpio(struct platform_device *pdev)
{
{
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5P6440_GPR
(
7
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5P6440_GPR
(
6
),
3
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
13
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5P6440_GPR
(
13
),
2
,
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
));
break
;
break
;
default:
default:
...
...
arch/arm/mach-s5p64x0/dev-spi.c
浏览文件 @
4d9374f3
...
@@ -39,23 +39,15 @@ static char *s5p64x0_spi_src_clks[] = {
...
@@ -39,23 +39,15 @@ static char *s5p64x0_spi_src_clks[] = {
*/
*/
static
int
s5p6440_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5p6440_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5P6440_GPC
(
0
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6440_GPC
(
0
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5P6440_GPC
(
4
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6440_GPC
(
4
);
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
);
break
;
break
;
default:
default:
...
@@ -63,28 +55,23 @@ static int s5p6440_spi_cfg_gpio(struct platform_device *pdev)
...
@@ -63,28 +55,23 @@ static int s5p6440_spi_cfg_gpio(struct platform_device *pdev)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgall_range
(
base
,
3
,
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
return
0
;
return
0
;
}
}
static
int
s5p6450_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5p6450_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5P6450_GPC
(
0
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6450_GPC
(
0
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5P6450_GPC
(
4
),
S3C_GPIO_SFN
(
2
));
base
=
S5P6450_GPC
(
4
);
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
);
break
;
break
;
default:
default:
...
@@ -92,6 +79,9 @@ static int s5p6450_spi_cfg_gpio(struct platform_device *pdev)
...
@@ -92,6 +79,9 @@ static int s5p6450_spi_cfg_gpio(struct platform_device *pdev)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgall_range
(
base
,
3
,
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
return
0
;
return
0
;
}
}
...
...
arch/arm/mach-s5p64x0/setup-i2c0.c
浏览文件 @
4d9374f3
...
@@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
...
@@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
void
s5p6440_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
void
s5p6440_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5P6440_GPB
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5P6440_GPB
(
5
),
2
,
s3c_gpio_setpull
(
S5P6440_GPB
(
5
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5P6440_GPB
(
6
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5P6440_GPB
(
6
),
S3C_GPIO_PULL_UP
);
}
}
void
s5p6450_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
void
s5p6450_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5P6450_GPB
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5P6450_GPB
(
5
),
2
,
s3c_gpio_setpull
(
S5P6450_GPB
(
5
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5P6450_GPB
(
6
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5P6450_GPB
(
6
),
S3C_GPIO_PULL_UP
);
}
}
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
}
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
}
arch/arm/mach-s5p64x0/setup-i2c1.c
浏览文件 @
4d9374f3
...
@@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
...
@@ -25,18 +25,14 @@ struct platform_device; /* don't need the contents */
void
s5p6440_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
void
s5p6440_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5P6440_GPR
(
9
),
S3C_GPIO_SFN
(
6
));
s3c_gpio_cfgall_range
(
S5P6440_GPR
(
9
),
2
,
s3c_gpio_setpull
(
S5P6440_GPR
(
9
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
6
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5P6440_GPR
(
10
),
S3C_GPIO_SFN
(
6
));
s3c_gpio_setpull
(
S5P6440_GPR
(
10
),
S3C_GPIO_PULL_UP
);
}
}
void
s5p6450_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
void
s5p6450_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5P6450_GPR
(
9
),
S3C_GPIO_SFN
(
6
));
s3c_gpio_cfgall_range
(
S5P6450_GPR
(
9
),
2
,
s3c_gpio_setpull
(
S5P6450_GPR
(
9
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
6
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5P6450_GPR
(
10
),
S3C_GPIO_SFN
(
6
));
s3c_gpio_setpull
(
S5P6450_GPR
(
10
),
S3C_GPIO_PULL_UP
);
}
}
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
}
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
}
arch/arm/mach-s5pc100/dev-audio.c
浏览文件 @
4d9374f3
...
@@ -24,19 +24,11 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
...
@@ -24,19 +24,11 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
/* configure GPIO for i2s port */
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PC100_GPC
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5PC100_GPC
(
0
),
5
,
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
));
break
;
break
;
case
2
:
case
2
:
s3c_gpio_cfgpin
(
S5PC100_GPG3
(
0
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin_range
(
S5PC100_GPG3
(
0
),
5
,
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
));
break
;
break
;
case
-
1
:
/* Dedicated pins */
case
-
1
:
/* Dedicated pins */
...
@@ -144,19 +136,11 @@ static int s5pc100_pcm_cfg_gpio(struct platform_device *pdev)
...
@@ -144,19 +136,11 @@ static int s5pc100_pcm_cfg_gpio(struct platform_device *pdev)
{
{
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5PC100_GPG3
(
0
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin_range
(
S5PC100_GPG3
(
0
),
5
,
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
));
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PC100_GPC
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin_range
(
S5PC100_GPC
(
0
),
5
,
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
));
break
;
break
;
default:
default:
...
@@ -231,13 +215,7 @@ struct platform_device s5pc100_device_pcm1 = {
...
@@ -231,13 +215,7 @@ struct platform_device s5pc100_device_pcm1 = {
static
int
s5pc100_ac97_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5pc100_ac97_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
s3c_gpio_cfgpin
(
S5PC100_GPC
(
0
),
S3C_GPIO_SFN
(
4
));
return
s3c_gpio_cfgpin_range
(
S5PC100_GPC
(
0
),
5
,
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
;
}
}
static
struct
resource
s5pc100_ac97_resource
[]
=
{
static
struct
resource
s5pc100_ac97_resource
[]
=
{
...
...
arch/arm/mach-s5pc100/dev-spi.c
浏览文件 @
4d9374f3
...
@@ -38,30 +38,20 @@ static int s5pc100_spi_cfg_gpio(struct platform_device *pdev)
...
@@ -38,30 +38,20 @@ static int s5pc100_spi_cfg_gpio(struct platform_device *pdev)
{
{
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5PC100_GPB
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PC100_GPB
(
0
),
3
,
s3c_gpio_cfgpin
(
S5PC100_GPB
(
1
),
S3C_GPIO_SFN
(
2
));
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PC100_GPB
(
4
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PC100_GPB
(
4
),
3
,
s3c_gpio_cfgpin
(
S5PC100_GPB
(
5
),
S3C_GPIO_SFN
(
2
));
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
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
);
break
;
break
;
case
2
:
case
2
:
s3c_gpio_cfgpin
(
S5PC100_GPG3
(
0
),
S3C_GPIO_SFN
(
3
));
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
(
0
),
S3C_GPIO_PULL_UP
);
s3c_gpio_
setpull
(
S5PC100_GPG3
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_
cfgall_range
(
S5PC100_GPB
(
2
),
2
,
s3c_gpio_setpull
(
S5PC100_GPG3
(
3
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
3
),
S3C_GPIO_PULL_UP
);
break
;
break
;
default:
default:
...
...
arch/arm/mach-s5pc100/setup-fb-24bpp.c
浏览文件 @
4d9374f3
...
@@ -22,27 +22,15 @@
...
@@ -22,27 +22,15 @@
#define DISR_OFFSET 0x7008
#define DISR_OFFSET 0x7008
void
s5pc100_fb_gpio_setup_24bpp
(
void
)
static
void
s5pc100_fb_setgpios
(
unsigned
int
base
,
unsigned
int
nr
)
{
{
unsigned
int
gpio
=
0
;
s3c_gpio_cfgrange_nopull
(
base
,
nr
,
S3C_GPIO_SFN
(
2
));
}
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
++
)
{
void
s5pc100_fb_gpio_setup_24bpp
(
void
)
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
);
}
}
arch/arm/mach-s5pc100/setup-i2c0.c
浏览文件 @
4d9374f3
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PC100_GPD
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PC100_GPD
(
3
),
2
,
s3c_gpio_setpull
(
S5PC100_GPD
(
3
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PC100_GPD
(
4
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PC100_GPD
(
4
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/mach-s5pc100/setup-i2c1.c
浏览文件 @
4d9374f3
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PC100_GPD
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PC100_GPD
(
5
),
2
,
s3c_gpio_setpull
(
S5PC100_GPD
(
5
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PC100_GPD
(
6
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PC100_GPD
(
6
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/mach-s5pc100/setup-ide.c
浏览文件 @
4d9374f3
...
@@ -17,52 +17,39 @@
...
@@ -17,52 +17,39 @@
#include <mach/regs-clock.h>
#include <mach/regs-clock.h>
#include <plat/gpio-cfg.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
)
void
s5pc100_ide_setup_gpio
(
void
)
{
{
u32
reg
;
u32
reg
;
u32
gpio
=
0
;
/* Independent CF interface, CF chip select configuration */
/* Independent CF interface, CF chip select configuration */
reg
=
readl
(
S5PC100_MEM_SYS_CFG
)
&
(
~
0x3f
);
reg
=
readl
(
S5PC100_MEM_SYS_CFG
)
&
(
~
0x3f
);
writel
(
reg
|
MEM_SYS_CFG_EBI_FIX_PRI_CFCON
,
S5PC100_MEM_SYS_CFG
);
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 */
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST, CF_DMACK */
for
(
gpio
=
S5PC100_GPJ0
(
0
);
gpio
<=
S5PC100_GPJ0
(
7
);
gpio
++
)
{
s5pc100_ide_cfg_gpios
(
S5PC100_GPJ0
(
0
),
8
);
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] */
/*CF_Data[0 - 7] */
for
(
gpio
=
S5PC100_GPJ2
(
0
);
gpio
<=
S5PC100_GPJ2
(
7
);
gpio
++
)
{
s5pc100_ide_cfg_gpios
(
S5PC100_GPJ2
(
0
),
8
);
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] */
/* CF_Data[8 - 15] */
for
(
gpio
=
S5PC100_GPJ3
(
0
);
gpio
<=
S5PC100_GPJ3
(
7
);
gpio
++
)
{
s5pc100_ide_cfg_gpios
(
S5PC100_GPJ3
(
0
),
8
);
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 */
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
for
(
gpio
=
S5PC100_GPJ4
(
0
);
gpio
<=
S5PC100_GPJ4
(
3
);
gpio
++
)
{
s5pc100_ide_cfg_gpios
(
S5PC100_GPJ4
(
0
),
4
);
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
);
}
/* EBI_OE, EBI_WE */
/* EBI_OE, EBI_WE */
for
(
gpio
=
S5PC100_GPK0
(
6
);
gpio
<=
S5PC100_GPK0
(
7
);
gpio
++
)
s3c_gpio_cfgpin_range
(
S5PC100_GPK0
(
6
),
2
,
S3C_GPIO_SFN
(
0
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
0
));
/* CF_OE, CF_WE */
/* CF_OE, CF_WE */
for
(
gpio
=
S5PC100_GPK1
(
6
);
gpio
<=
S5PC100_GPK1
(
7
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PC100_GPK1
(
6
),
8
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* CF_CD */
/* CF_CD */
s3c_gpio_cfgpin
(
S5PC100_GPK3
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PC100_GPK3
(
5
),
S3C_GPIO_SFN
(
2
));
...
...
arch/arm/mach-s5pc100/setup-keypad.c
浏览文件 @
4d9374f3
...
@@ -15,20 +15,9 @@
...
@@ -15,20 +15,9 @@
void
samsung_keypad_cfg_gpio
(
unsigned
int
rows
,
unsigned
int
cols
)
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] */
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
end
=
S5PC100_GPH3
(
rows
);
s3c_gpio_cfgrange_nopull
(
S5PC100_GPH3
(
0
),
rows
,
S3C_GPIO_SFN
(
3
));
for
(
gpio
=
S5PC100_GPH3
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
end
=
S5PC100_GPH2
(
cols
);
s3c_gpio_cfgrange_nopull
(
S5PC100_GPH2
(
0
),
cols
,
S3C_GPIO_SFN
(
3
));
for
(
gpio
=
S5PC100_GPH2
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
}
arch/arm/mach-s5pc100/setup-sdhci-gpio.c
浏览文件 @
4d9374f3
...
@@ -25,8 +25,6 @@
...
@@ -25,8 +25,6 @@
void
s5pc100_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
void
s5pc100_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
unsigned
int
end
;
unsigned
int
num
;
unsigned
int
num
;
num
=
width
;
num
=
width
;
...
@@ -34,20 +32,11 @@ void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
...
@@ -34,20 +32,11 @@ void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
if
(
width
==
8
)
if
(
width
==
8
)
num
=
width
-
2
;
num
=
width
-
2
;
end
=
S5PC100_GPG0
(
2
+
num
);
/* Set all the necessary GPG0/GPG1 pins to special-function 0 */
/* Set all the necessary GPG0/GPG1 pins to special-function 0 */
for
(
gpio
=
S5PC100_GPG0
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PC100_GPG0
(
0
),
2
+
num
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
if
(
width
==
8
)
{
if
(
width
==
8
)
for
(
gpio
=
S5PC100_GPG1
(
0
);
gpio
<=
S5PC100_GPG1
(
1
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PC100_GPG1
(
0
),
2
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S5PC100_GPG1
(
2
),
S3C_GPIO_PULL_UP
);
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)
...
@@ -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
)
void
s5pc100_setup_sdhci1_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
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 */
/* Set all the necessary GPG2 pins to special-function 2 */
for
(
gpio
=
S5PC100_GPG2
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PC100_GPG2
(
0
),
2
+
width
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S5PC100_GPG2
(
6
),
S3C_GPIO_PULL_UP
);
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)
...
@@ -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
)
void
s5pc100_setup_sdhci2_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
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 */
/* Set all the necessary GPG3 pins to special-function 2 */
for
(
gpio
=
S5PC100_GPG3
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PC100_GPG3
(
0
),
2
+
width
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S5PC100_GPG3
(
6
),
S3C_GPIO_PULL_UP
);
s3c_gpio_setpull
(
S5PC100_GPG3
(
6
),
S3C_GPIO_PULL_UP
);
...
...
arch/arm/mach-s5pv210/dev-audio.c
浏览文件 @
4d9374f3
...
@@ -24,29 +24,15 @@ static int s5pv210_cfg_i2s(struct platform_device *pdev)
...
@@ -24,29 +24,15 @@ static int s5pv210_cfg_i2s(struct platform_device *pdev)
/* configure GPIO for i2s port */
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5PV210_GPC0
(
0
),
5
,
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
;
break
;
case
2
:
case
2
:
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
0
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin_range
(
S5PV210_GPC1
(
0
),
5
,
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
;
break
;
case
-
1
:
case
-
1
:
s3c_gpio_cfgpin
(
S5PV210_GPI
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5PV210_GPI
(
0
),
7
,
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
;
break
;
default:
default:
...
@@ -151,25 +137,13 @@ static int s5pv210_pcm_cfg_gpio(struct platform_device *pdev)
...
@@ -151,25 +137,13 @@ static int s5pv210_pcm_cfg_gpio(struct platform_device *pdev)
{
{
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5PV210_GPI
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin_range
(
S5PV210_GPI
(
0
),
5
,
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
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin_range
(
S5PV210_GPC0
(
0
),
5
,
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
;
break
;
case
2
:
case
2
:
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin_range
(
S5PV210_GPC1
(
0
),
5
,
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
;
break
;
default:
default:
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
...
@@ -271,13 +245,7 @@ struct platform_device s5pv210_device_pcm2 = {
...
@@ -271,13 +245,7 @@ struct platform_device s5pv210_device_pcm2 = {
static
int
s5pv210_ac97_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5pv210_ac97_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
4
));
return
s3c_gpio_cfgpin_range
(
S5PV210_GPC0
(
0
),
5
,
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
struct
resource
s5pv210_ac97_resource
[]
=
{
static
struct
resource
s5pv210_ac97_resource
[]
=
{
...
...
arch/arm/mach-s5pv210/dev-spi.c
浏览文件 @
4d9374f3
...
@@ -35,23 +35,15 @@ static char *spi_src_clks[] = {
...
@@ -35,23 +35,15 @@ static char *spi_src_clks[] = {
*/
*/
static
int
s5pv210_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
static
int
s5pv210_spi_cfg_gpio
(
struct
platform_device
*
pdev
)
{
{
unsigned
int
base
;
switch
(
pdev
->
id
)
{
switch
(
pdev
->
id
)
{
case
0
:
case
0
:
s3c_gpio_cfgpin
(
S5PV210_GPB
(
0
),
S3C_GPIO_SFN
(
2
));
base
=
S5PV210_GPB
(
0
);
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
);
break
;
break
;
case
1
:
case
1
:
s3c_gpio_cfgpin
(
S5PV210_GPB
(
4
),
S3C_GPIO_SFN
(
2
));
base
=
S5PV210_GPB
(
4
);
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
);
break
;
break
;
default:
default:
...
@@ -59,6 +51,9 @@ static int s5pv210_spi_cfg_gpio(struct platform_device *pdev)
...
@@ -59,6 +51,9 @@ static int s5pv210_spi_cfg_gpio(struct platform_device *pdev)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
s3c_gpio_cfgall_range
(
base
,
3
,
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
return
0
;
return
0
;
}
}
...
...
arch/arm/mach-s5pv210/setup-fb-24bpp.c
浏览文件 @
4d9374f3
...
@@ -21,33 +21,21 @@
...
@@ -21,33 +21,21 @@
#include <mach/regs-clock.h>
#include <mach/regs-clock.h>
#include <plat/gpio-cfg.h>
#include <plat/gpio-cfg.h>
void
s5pv210_fb_gpio_setup_24bpp
(
void
)
static
void
s5pv210_fb_cfg_gpios
(
unsigned
int
base
,
unsigned
int
nr
)
{
{
unsigned
int
gpio
=
0
;
s3c_gpio_cfgrange_nopull
(
base
,
nr
,
S3C_GPIO_SFN
(
2
));
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
++
)
{
for
(;
nr
>
0
;
nr
--
,
base
++
)
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s5p_gpio_set_drvstr
(
base
,
S5P_GPIO_DRVSTR_LV4
);
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
++
)
{
void
s5pv210_fb_gpio_setup_24bpp
(
void
)
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
{
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5pv210_fb_cfg_gpios
(
S5PV210_GPF0
(
0
),
8
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
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.
/* Set DISPLAY_CONTROL register for Display path selection.
*
*
...
...
arch/arm/mach-s5pv210/setup-i2c0.c
浏览文件 @
4d9374f3
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV210_GPD1
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PV210_GPD1
(
0
),
2
,
s3c_gpio_setpull
(
S5PV210_GPD1
(
0
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV210_GPD1
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PV210_GPD1
(
1
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/mach-s5pv210/setup-i2c1.c
浏览文件 @
4d9374f3
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV210_GPD1
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PV210_GPD1
(
2
),
2
,
s3c_gpio_setpull
(
S5PV210_GPD1
(
2
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
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
);
}
}
arch/arm/mach-s5pv210/setup-i2c2.c
浏览文件 @
4d9374f3
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
...
@@ -23,8 +23,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c2_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c2_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV210_GPD1
(
4
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PV210_GPD1
(
4
),
2
,
s3c_gpio_setpull
(
S5PV210_GPD1
(
4
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV210_GPD1
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PV210_GPD1
(
5
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/mach-s5pv210/setup-ide.c
浏览文件 @
4d9374f3
...
@@ -15,36 +15,25 @@
...
@@ -15,36 +15,25 @@
#include <plat/gpio-cfg.h>
#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
)
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_Data[0 - 7] */
CF_DMACK */
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ2
(
0
),
8
);
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_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
);
}
for
(
gpio
=
S5PV210_GPJ3
(
0
);
gpio
<=
S5PV210_GPJ3
(
7
);
gpio
++
)
{
/* CF_Data[8 - 15] */
/* CF_Data[8 - 15] */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ3
(
0
),
8
);
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 */
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ4
(
0
),
4
);
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
}
}
}
arch/arm/mach-s5pv210/setup-keypad.c
浏览文件 @
4d9374f3
...
@@ -16,19 +16,9 @@
...
@@ -16,19 +16,9 @@
void
samsung_keypad_cfg_gpio
(
unsigned
int
rows
,
unsigned
int
cols
)
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] */
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
end
=
S5PV210_GPH3
(
rows
);
s3c_gpio_cfgrange_nopull
(
S5PV210_GPH3
(
0
),
rows
,
S3C_GPIO_SFN
(
3
));
for
(
gpio
=
S5PV210_GPH3
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
end
=
S5PV210_GPH2
(
cols
);
s3c_gpio_cfgrange_nopull
(
S5PV210_GPH2
(
0
),
cols
,
S3C_GPIO_SFN
(
3
));
for
(
gpio
=
S5PV210_GPH2
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
}
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
浏览文件 @
4d9374f3
...
@@ -26,26 +26,17 @@
...
@@ -26,26 +26,17 @@
void
s5pv210_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
void
s5pv210_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
/* Set all the necessary GPG0/GPG1 pins to special-function 2 */
/* Set all the necessary GPG0/GPG1 pins to special-function 2 */
for
(
gpio
=
S5PV210_GPG0
(
0
);
gpio
<
S5PV210_GPG0
(
2
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG0
(
0
),
2
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
switch
(
width
)
{
switch
(
width
)
{
case
8
:
case
8
:
/* GPG1[3:6] special-funtion 3 */
/* GPG1[3:6] special-funtion 3 */
for
(
gpio
=
S5PV210_GPG1
(
3
);
gpio
<=
S5PV210_GPG1
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG1
(
3
),
4
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
case
4
:
case
4
:
/* GPG0[3:6] special-funtion 2 */
/* GPG0[3:6] special-funtion 2 */
for
(
gpio
=
S5PV210_GPG0
(
3
);
gpio
<=
S5PV210_GPG0
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG0
(
3
),
4
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
default:
default:
break
;
break
;
}
}
...
@@ -59,19 +50,12 @@ void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
...
@@ -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
)
void
s5pv210_setup_sdhci1_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
/* Set all the necessary GPG1[0:1] pins to special-function 2 */
/* Set all the necessary GPG1[0:1] pins to special-function 2 */
for
(
gpio
=
S5PV210_GPG1
(
0
);
gpio
<
S5PV210_GPG1
(
2
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG1
(
0
),
2
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Data pin GPG1[3:6] to special-function 2 */
/* Data pin GPG1[3:6] to special-function 2 */
for
(
gpio
=
S5PV210_GPG1
(
3
);
gpio
<=
S5PV210_GPG1
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG1
(
3
),
4
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S5PV210_GPG1
(
2
),
S3C_GPIO_PULL_UP
);
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)
...
@@ -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
)
void
s5pv210_setup_sdhci2_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
/* Set all the necessary GPG2[0:1] pins to special-function 2 */
/* Set all the necessary GPG2[0:1] pins to special-function 2 */
for
(
gpio
=
S5PV210_GPG2
(
0
);
gpio
<
S5PV210_GPG2
(
2
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG2
(
0
),
2
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
switch
(
width
)
{
switch
(
width
)
{
case
8
:
case
8
:
/* Data pin GPG3[3:6] to special-function 3 */
/* Data pin GPG3[3:6] to special-function 3 */
for
(
gpio
=
S5PV210_GPG3
(
3
);
gpio
<=
S5PV210_GPG3
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG3
(
3
),
4
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
case
4
:
case
4
:
/* Data pin GPG2[3:6] to special-function 2 */
/* Data pin GPG2[3:6] to special-function 2 */
for
(
gpio
=
S5PV210_GPG2
(
3
);
gpio
<=
S5PV210_GPG2
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG2
(
3
),
4
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
default:
default:
break
;
break
;
}
}
...
@@ -116,19 +90,12 @@ void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
...
@@ -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
)
void
s5pv210_setup_sdhci3_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
{
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
struct
s3c_sdhci_platdata
*
pdata
=
dev
->
dev
.
platform_data
;
unsigned
int
gpio
;
/* Set all the necessary GPG3[0:2] pins to special-function 2 */
/* Set all the necessary GPG3[0:1] pins to special-function 2 */
for
(
gpio
=
S5PV210_GPG3
(
0
);
gpio
<
S5PV210_GPG3
(
2
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG3
(
0
),
2
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Data pin GPG3[3:6] to special-function 2 */
/* Data pin GPG3[3:6] to special-function 2 */
for
(
gpio
=
S5PV210_GPG3
(
3
);
gpio
<=
S5PV210_GPG3
(
6
);
gpio
++
)
{
s3c_gpio_cfgrange_nopull
(
S5PV210_GPG3
(
3
),
4
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
if
(
pdata
->
cd_type
==
S3C_SDHCI_CD_INTERNAL
)
{
s3c_gpio_setpull
(
S5PV210_GPG3
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_setpull
(
S5PV210_GPG3
(
2
),
S3C_GPIO_PULL_UP
);
...
...
arch/arm/mach-s5pv310/setup-i2c0.c
浏览文件 @
4d9374f3
...
@@ -21,8 +21,6 @@ struct platform_device; /* don't need the contents */
...
@@ -21,8 +21,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c0_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV310_GPD1
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PV310_GPD1
(
0
),
2
,
s3c_gpio_setpull
(
S5PV310_GPD1
(
0
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV310_GPD1
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PV310_GPD1
(
1
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/mach-s5pv310/setup-i2c1.c
浏览文件 @
4d9374f3
...
@@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
...
@@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c1_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV310_GPD1
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgall_range
(
S5PV310_GPD1
(
2
),
2
,
s3c_gpio_setpull
(
S5PV310_GPD1
(
2
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
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
);
}
}
arch/arm/mach-s5pv310/setup-i2c2.c
浏览文件 @
4d9374f3
...
@@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
...
@@ -18,8 +18,6 @@ struct platform_device; /* don't need the contents */
void
s3c_i2c2_cfg_gpio
(
struct
platform_device
*
dev
)
void
s3c_i2c2_cfg_gpio
(
struct
platform_device
*
dev
)
{
{
s3c_gpio_cfgpin
(
S5PV310_GPA0
(
6
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgall_range
(
S5PV310_GPA0
(
6
),
2
,
s3c_gpio_setpull
(
S5PV310_GPA0
(
6
),
S3C_GPIO_PULL_UP
);
S3C_GPIO_SFN
(
3
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV310_GPA0
(
7
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
S5PV310_GPA0
(
7
),
S3C_GPIO_PULL_UP
);
}
}
arch/arm/plat-samsung/gpio-config.c
浏览文件 @
4d9374f3
...
@@ -41,6 +41,37 @@ int s3c_gpio_cfgpin(unsigned int pin, unsigned int config)
...
@@ -41,6 +41,37 @@ int s3c_gpio_cfgpin(unsigned int pin, unsigned int config)
}
}
EXPORT_SYMBOL
(
s3c_gpio_cfgpin
);
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
)
unsigned
s3c_gpio_getcfg
(
unsigned
int
pin
)
{
{
struct
s3c_gpio_chip
*
chip
=
s3c_gpiolib_getchip
(
pin
);
struct
s3c_gpio_chip
*
chip
=
s3c_gpiolib_getchip
(
pin
);
...
...
arch/arm/plat-samsung/include/plat/gpio-cfg.h
浏览文件 @
4d9374f3
...
@@ -108,6 +108,19 @@ extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to);
...
@@ -108,6 +108,19 @@ extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to);
*/
*/
extern
unsigned
s3c_gpio_getcfg
(
unsigned
int
pin
);
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.
/* Define values for the pull-{up,down} available for each gpio pin.
*
*
* These values control the state of the weak pull-{up,down} resistors
* 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);
...
@@ -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
);
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.
/* Define values for the drvstr available for each gpio pin.
*
*
* These values control the value of the output signal driver strength,
* These values control the value of the output signal driver strength,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录