Skip to content

Commit

Permalink
ARM: S5PC1xx: add platform helpers for i2c adapter devices
Browse files Browse the repository at this point in the history
Samsung S5PC100 has I2C bus controller compatible with the one known from
previous SoCs series. Add required platform setup and support code that
it can be used with s3c2410-i2c driver.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
  • Loading branch information
Kyungmin Park authored and Ben Dooks committed Dec 1, 2009
1 parent 079b032 commit 5eda288
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 6 deletions.
4 changes: 4 additions & 0 deletions arch/arm/mach-s5pc100/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ void __init s5pc100_map_io(void)
iotable_init(s5pc100_iodesc, ARRAY_SIZE(s5pc100_iodesc));

/* initialise device information early */

/* the i2c devices are directly compatible with s3c2440 */
s3c_i2c0_setname("s3c2440-i2c");
s3c_i2c1_setname("s3c2440-i2c");
}

void __init s5pc100_init_clocks(int xtal)
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/plat-s5pc1xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ config S5PC1XX_SETUP_FB_24BPP
help
Common setup code for S5PC1XX with an 24bpp RGB display helper.

config S5PC100_SETUP_I2C0
config S5PC1XX_SETUP_I2C0
bool
default y
help
Expand All @@ -51,7 +51,7 @@ config S5PC100_SETUP_I2C0
Note, currently since i2c0 is always compiled, this setup helper
is always compiled with it.

config S5PC100_SETUP_I2C1
config S5PC1XX_SETUP_I2C1
bool
help
Common setup code for i2c bus 1.
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/plat-s5pc1xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ obj-$(CONFIG_CPU_S5PC100_CLOCK) += s5pc100-clock.o

obj-$(CONFIG_S5P_GPIO_CFG_S5PC1XX) += gpio-config.o
obj-$(CONFIG_S5PC1XX_SETUP_FB_24BPP) += setup-fb-24bpp.o
obj-$(CONFIG_S5PC100_SETUP_I2C0) += setup-i2c0.o
obj-$(CONFIG_S5PC100_SETUP_I2C1) += setup-i2c1.o
obj-$(CONFIG_S5PC1XX_SETUP_I2C0) += setup-i2c0.o
obj-$(CONFIG_S5PC1XX_SETUP_I2C1) += setup-i2c1.o
7 changes: 6 additions & 1 deletion arch/arm/plat-s5pc1xx/setup-i2c0.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,14 @@

struct platform_device; /* don't need the contents */

#include <linux/gpio.h>
#include <plat/iic.h>
#include <plat/gpio-cfg.h>

void s3c_i2c0_cfg_gpio(struct platform_device *dev)
{
/* Pin configuration would be needed */
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);
}
7 changes: 6 additions & 1 deletion arch/arm/plat-s5pc1xx/setup-i2c1.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,14 @@

struct platform_device; /* don't need the contents */

#include <linux/gpio.h>
#include <plat/iic.h>
#include <plat/gpio-cfg.h>

void s3c_i2c1_cfg_gpio(struct platform_device *dev)
{
/* Pin configuration would be needed */
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);
}

0 comments on commit 5eda288

Please sign in to comment.