[patch/rft 4/4] rtc-ds1307 platform update, powerpc mpc834x_itx and mpc8313_rdb
David Brownell
david-b at pacbell.net
Tue May 15 02:46:41 EST 2007
Update powerpc platforms to support new-style rtc-ds1307 driver:
- Make i2c-mpc driver use numbered adapter;
- Update boards identified by defconfig to list a ds1339 device:
* mpc834x_itx
* mpc8313_rdb
Didn't update the pasemi reference board; public info doesn't say
which chip it uses.
UNTESTED
Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>
---
NOTE: cc'd the relevant powerpc maintainers lists; patches 1-3
will be archived in the rtc and i2c lists. I'd like to see these
get tested/fixed so that the rtc-ds1307 driver can swich completely
to use the new-style I2c driver model.
arch/powerpc/platforms/83xx/mpc8313_rdb.c | 11 +++++++++++
arch/powerpc/platforms/83xx/mpc834x_itx.c | 12 ++++++++++++
drivers/i2c/busses/i2c-mpc.c | 3 ++-
3 files changed, 25 insertions(+), 1 deletion(-)
--- at91.orig/drivers/i2c/busses/i2c-mpc.c 2007-05-10 00:48:22.000000000 -0700
+++ at91/drivers/i2c/busses/i2c-mpc.c 2007-05-13 10:56:52.000000000 -0700
@@ -280,6 +280,7 @@ static struct i2c_adapter mpc_ops = {
.owner = THIS_MODULE,
.name = "MPC adapter",
.id = I2C_HW_MPC107,
+ /* .nr = 0, */
.algo = &mpc_algo,
.class = I2C_CLASS_HWMON,
.timeout = 1,
@@ -329,7 +330,7 @@ static int fsl_i2c_probe(struct platform
i2c->adap = mpc_ops;
i2c_set_adapdata(&i2c->adap, i2c);
i2c->adap.dev.parent = &pdev->dev;
- if ((result = i2c_add_adapter(&i2c->adap)) < 0) {
+ if ((result = i2c_add_numbered_adapter(&i2c->adap)) < 0) {
printk(KERN_ERR "i2c-mpc - failed to add adapter\n");
goto fail_add;
}
--- at91.orig/arch/powerpc/platforms/83xx/mpc834x_itx.c 2007-05-12 23:31:24.000000000 -0700
+++ at91/arch/powerpc/platforms/83xx/mpc834x_itx.c 2007-05-13 11:22:36.000000000 -0700
@@ -23,6 +23,7 @@
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <linux/root_dev.h>
+#include <linux/i2c.h>
#include <asm/system.h>
#include <asm/atomic.h>
@@ -48,6 +49,15 @@ unsigned long isa_mem_base = 0;
* Setup the architecture
*
*/
+
+static struct i2c_board_info __initdata mpc834x_itx_i2c_devices[] = {
+ { I2C_BOARD_INFO("rtc-ds1307", 0x68),
+ .type = "ds1339",
+ /* REVISIT .irq = IRQ2 ... this RTC has an alarm */
+ },
+ /* REVISIT: also has an eeprom */
+};
+
static void __init mpc834x_itx_setup_arch(void)
{
#ifdef CONFIG_PCI
@@ -63,6 +73,8 @@ static void __init mpc834x_itx_setup_arc
ppc_md.pci_exclude_device = mpc83xx_exclude_device;
#endif
+ i2c_register_board_info(0, mpc834x_itx_i2c_devices,
+ ARRAY_SIZE(mpc834x_itx_i2c_devices));
}
static void __init mpc834x_itx_init_IRQ(void)
--- at91.orig/arch/powerpc/platforms/83xx/mpc8313_rdb.c 2007-05-13 11:20:25.000000000 -0700
+++ at91/arch/powerpc/platforms/83xx/mpc8313_rdb.c 2007-05-13 11:21:49.000000000 -0700
@@ -14,6 +14,7 @@
*/
#include <linux/pci.h>
+#include <linux/i2c.h>
#include <asm/time.h>
#include <asm/ipic.h>
@@ -38,6 +39,14 @@ unsigned long isa_mem_base = 0;
* Setup the architecture
*
*/
+static struct i2c_board_info __initdata mpc8313_rdb_i2c_devices[] = {
+ { I2C_BOARD_INFO("rtc-ds1307", 0x68),
+ .type = "ds1339",
+ /* REVISIT .irq = IRQ4 ... this RTC has an alarm */
+ },
+ /* REVISIT: also has an eeprom and lm75 */
+};
+
static void __init mpc8313_rdb_setup_arch(void)
{
#ifdef CONFIG_PCI
@@ -53,6 +62,8 @@ static void __init mpc8313_rdb_setup_arc
ppc_md.pci_exclude_device = mpc83xx_exclude_device;
#endif
+ i2c_register_board_info(0, mpc8313_i2c_devices,
+ ARRAY_SIZE(mpc8313_i2c_devices));
}
void __init mpc8313_rdb_init_IRQ(void)
More information about the Linuxppc-dev
mailing list