diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c index 7fe7283..a8e31e7 100644 --- arch/arm/mach-bcm2708/bcm2708.c +++ arch/arm/mach-bcm2708/bcm2708.c @@ -689,6 +689,21 @@ static void bcm2708_power_off(void) bcm2708_restart(0, ""); } +#ifdef CONFIG_RTC_DRV_PCF8523 +static struct i2c_board_info offboard_i2c_devices[] = { + { + /* Raspy Juice real-time clock chip */ + I2C_BOARD_INFO("pcf8523", 0x68), + }, +}; + +#if defined(CONFIG_RTC_HCTOSYS) && \ + (!defined(CONFIG_I2C_CHARDEV) || \ + !defined(CONFIG_I2C_BCM2708)) +#error "RTC_DRV_PCF8523 defined as kernel built-in, but I2C_CHARDEV and I2C_BMC2708 isn't: RTC_HCTOSYS will not work." +#endif +#endif + void __init bcm2708_init(void) { int i; @@ -752,6 +767,15 @@ void __init bcm2708_init(void) spi_register_board_info(bcm2708_spi_devices, ARRAY_SIZE(bcm2708_spi_devices)); #endif + +#ifdef CONFIG_RTC_DRV_PCF8523 + i = 0; + /* test of Raspberry Pi Rev.2, where GPIO-header I2C busnum=1 */ + if (system_rev >= 15) + i = 1; + i2c_register_board_info(i, offboard_i2c_devices, + ARRAY_SIZE(offboard_i2c_devices)); +#endif } #define TIMER_PERIOD DIV_ROUND_CLOSEST(STC_FREQ_HZ, HZ)