diff options
Diffstat (limited to 'arch/arm/mach-s3c2412')
-rw-r--r-- | arch/arm/mach-s3c2412/mach-jive.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c index 2e6350d6877..7f5d0025060 100644 --- a/arch/arm/mach-s3c2412/mach-jive.c +++ b/arch/arm/mach-s3c2412/mach-jive.c @@ -20,6 +20,7 @@ #include <linux/delay.h> #include <linux/serial_core.h> #include <linux/platform_device.h> +#include <linux/i2c.h> #include <video/ili9320.h> @@ -34,6 +35,7 @@ #include <asm/plat-s3c/regs-serial.h> #include <asm/plat-s3c/nand.h> +#include <asm/plat-s3c/iic.h> #include <asm/arch/regs-power.h> #include <asm/arch/regs-gpio.h> @@ -396,7 +398,7 @@ static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs) } static struct s3c2410_spigpio_info jive_lcd_spi = { - .bus_num = 1, + .bus_num = 0, .pin_clk = S3C2410_GPG8, .pin_mosi = S3C2410_GPB8, .chip_select = jive_lcd_spi_chipselect, @@ -449,6 +451,24 @@ static struct spi_board_info __initdata jive_spi_devs[] = { }, }; +/* I2C bus and device configuration. */ + +static struct s3c2410_platform_i2c jive_i2c_cfg = { + .max_freq = 80 * 1000, + .bus_freq = 50 * 1000, + .flags = S3C_IICFLG_FILTER, + .sda_delay = 2, +}; + +static struct i2c_board_info jive_i2c_devs[] = { + [0] = { + I2C_BOARD_INFO("lis302dl", 0x1c), + .irq = IRQ_EINT14, + }, +}; + +/* The platform devices being used. */ + static struct platform_device *jive_devices[] __initdata = { &s3c_device_usb, &s3c_device_rtc, @@ -638,6 +658,9 @@ static void __init jive_machine_init(void) spi_register_board_info(jive_spi_devs, ARRAY_SIZE(jive_spi_devs)); + s3c_device_i2c.dev.platform_data = &jive_i2c_cfg; + i2c_register_board_info(0, jive_i2c_devs, ARRAY_SIZE(jive_i2c_devs)); + platform_add_devices(jive_devices, ARRAY_SIZE(jive_devices)); } |