Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
4d9374f3
Commit
4d9374f3
authored
Oct 25, 2010
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-gpio-update' into for-next
parents
dc6c0ca3
dff2126c
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
258 additions
and
520 deletions
+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
No files found.
arch/arm/mach-s3c64xx/dev-audio.c
View file @
4d9374f3
...
...
@@ -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
[]
=
{
...
...
arch/arm/mach-s3c64xx/setup-fb-24bpp.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s3c64xx/setup-ide.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s3c64xx/setup-keypad.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s3c64xx/setup-sdhci-gpio.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s5p6442/dev-audio.c
View file @
4d9374f3
...
...
@@ -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
;
}
...
...
arch/arm/mach-s5p6442/dev-spi.c
View file @
4d9374f3
...
...
@@ -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:
...
...
arch/arm/mach-s5p64x0/dev-audio.c
View file @
4d9374f3
...
...
@@ -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:
...
...
arch/arm/mach-s5p64x0/dev-spi.c
View file @
4d9374f3
...
...
@@ -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
;
}
...
...
arch/arm/mach-s5p64x0/setup-i2c0.c
View file @
4d9374f3
...
...
@@ -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
)
{
}
arch/arm/mach-s5p64x0/setup-i2c1.c
View file @
4d9374f3
...
...
@@ -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
)
{
}
arch/arm/mach-s5pc100/dev-audio.c
View file @
4d9374f3
...
...
@@ -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
[]
=
{
...
...
arch/arm/mach-s5pc100/dev-spi.c
View file @
4d9374f3
...
...
@@ -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:
...
...
arch/arm/mach-s5pc100/setup-fb-24bpp.c
View file @
4d9374f3
...
...
@@ -22,27 +22,15 @@
#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
;
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
);
}
s3c_gpio_cfgrange_nopull
(
base
,
nr
,
S3C_GPIO_SFN
(
2
));
}
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
);
}
void
s5pc100_fb_gpio_setup_24bpp
(
void
)
{
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
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pc100/setup-i2c1.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pc100/setup-ide.c
View file @
4d9374f3
...
...
@@ -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
));
...
...
arch/arm/mach-s5pc100/setup-keypad.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s5pc100/setup-sdhci-gpio.c
View file @
4d9374f3
...
...
@@ -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
);
...
...
arch/arm/mach-s5pv210/dev-audio.c
View file @
4d9374f3
...
...
@@ -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
[]
=
{
...
...
arch/arm/mach-s5pv210/dev-spi.c
View file @
4d9374f3
...
...
@@ -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
;
}
...
...
arch/arm/mach-s5pv210/setup-fb-24bpp.c
View file @
4d9374f3
...
...
@@ -21,33 +21,21 @@
#include <mach/regs-clock.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
;
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
);
}
s3c_gpio_cfgrange_nopull
(
base
,
nr
,
S3C_GPIO_SFN
(
2
));
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
(;
nr
>
0
;
nr
--
,
base
++
)
s5p_gpio_set_drvstr
(
base
,
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
);
}
void
s5pv210_fb_gpio_setup_24bpp
(
void
)
{
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.
*
...
...
arch/arm/mach-s5pv210/setup-i2c0.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pv210/setup-i2c1.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pv210/setup-i2c2.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pv210/setup-ide.c
View file @
4d9374f3
...
...
@@ -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
;
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
);
}
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] */
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_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST, CF_DMACK */
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ0
(
0
),
8
);
/* CF_Data[0 - 7] */
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ2
(
0
),
8
);
/* CF_Data[8 - 15] */
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ3
(
0
),
8
);
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
s5pv210_ide_cfg_gpios
(
S5PV210_GPJ4
(
0
),
4
);
}
arch/arm/mach-s5pv210/setup-keypad.c
View file @
4d9374f3
...
...
@@ -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
));
}
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
View file @
4d9374f3
...
...
@@ -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
);
...
...
arch/arm/mach-s5pv310/setup-i2c0.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pv310/setup-i2c1.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/mach-s5pv310/setup-i2c2.c
View file @
4d9374f3
...
...
@@ -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
);
}
arch/arm/plat-samsung/gpio-config.c
View file @
4d9374f3
...
...
@@ -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
);
...
...
arch/arm/plat-samsung/include/plat/gpio-cfg.h
View file @
4d9374f3
...
...
@@ -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,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment