]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-s3c6410/mach-smdk6410.c
[ARM] SMDK6410: Add I2C device board information
[karo-tx-linux.git] / arch / arm / mach-s3c6410 / mach-smdk6410.c
index 35d42e8cab928296ca8349de0234bf02b6e656a4..e845b2a1becf26751d19084730ae2b73d097fee7 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/serial_core.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
+#include <linux/i2c.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,6 +33,7 @@
 #include <asm/mach-types.h>
 
 #include <plat/regs-serial.h>
+#include <plat/iic.h>
 
 #include <plat/s3c6410.h>
 #include <plat/clock.h>
@@ -62,6 +64,19 @@ static struct s3c2410_uartcfg smdk6410_uartcfgs[] __initdata = {
 struct map_desc smdk6410_iodesc[] = {};
 
 static struct platform_device *smdk6410_devices[] __initdata = {
+       &s3c_device_hsmmc0,
+       &s3c_device_i2c0,
+       &s3c_device_i2c1,
+};
+
+
+static struct i2c_board_info i2c_devs0[] __initdata = {
+       { I2C_BOARD_INFO("24c08", 0x50), },
+       { I2C_BOARD_INFO("WM8580", 0X1b), },
+};
+
+static struct i2c_board_info i2c_devs1[] __initdata = {
+       { I2C_BOARD_INFO("24c128", 0x57), },    /* Samsung S524AD0XD1 */
 };
 
 extern void s3c64xx_init_io(struct map_desc *, int);
@@ -75,6 +90,12 @@ static void __init smdk6410_map_io(void)
 
 static void __init smdk6410_machine_init(void)
 {
+       s3c_i2c0_set_platdata(NULL);
+       s3c_i2c1_set_platdata(NULL);
+
+       i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
+       i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
+
        platform_add_devices(smdk6410_devices, ARRAY_SIZE(smdk6410_devices));
 }