diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-03-10 10:23:53 +0000 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-03-10 10:23:53 +0000 |
commit | 805b71e6e9155f2f6b10ce9fa085d1f8f6683f9e (patch) | |
tree | bf4366cdebebaa81e770c4caf56f9169545c6e3e /arch/arm/mach-realview | |
parent | be646593ac812ed3af2a230a67b7029568b223c0 (diff) |
RealView: Add support for the DS1338 RTC chip
This chip is on the I2C bus on the RealView and Versatile boards. The
patch adds the i2c_board_info definition for this device and registers
it with the I2C subsystem.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/mach-realview')
-rw-r--r-- | arch/arm/mach-realview/core.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_pb1176.c | 1 |
2 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 3623a099a31b..4dc66a502ab0 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c @@ -157,11 +157,25 @@ static struct resource realview_i2c_resource = { struct platform_device realview_i2c_device = { .name = "versatile-i2c", - .id = -1, + .id = 0, .num_resources = 1, .resource = &realview_i2c_resource, }; +static struct i2c_board_info realview_i2c_board_info[] = { + { + I2C_BOARD_INFO("rtc-ds1307", 0xd0 >> 1), + .type = "ds1338", + }, +}; + +static int __init realview_i2c_init(void) +{ + return i2c_register_board_info(0, realview_i2c_board_info, + ARRAY_SIZE(realview_i2c_board_info)); +} +arch_initcall(realview_i2c_init); + #define REALVIEW_SYSMCI (__io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_MCI_OFFSET) static unsigned int realview_mmc_status(struct device *dev) diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index 0388ed06f1e5..29bde0b670b5 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c @@ -262,6 +262,7 @@ static void __init realview_pb1176_init(void) realview_flash_register(&realview_pb1176_flash_resource, 1); realview_eth_register(NULL, realview_pb1176_smsc911x_resources); + platform_device_register(&realview_i2c_device); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; |