Skip to content

Commit

Permalink
[POWERPC] fsl: Update fsl_soc to use cell-index property of I2C nodes
Browse files Browse the repository at this point in the history
Currently, fsl_i2c_of_init() uses the order of the I2C adapter nodes in the
device tree to enumerate the I2C adapters.  Instead, let's check for the
cell-index property and use it if it exists.

This is handy for device drivers that need to identify the I2C adapters by
specific numbers.  The Freescale MPC8610 ASoC V2 sound drivers are an example.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
  • Loading branch information
Timur Tabi authored and Kumar Gala committed Jun 3, 2008
1 parent fca622c commit e026892
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions arch/powerpc/sysdev/fsl_soc.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,8 @@ static int __init fsl_i2c_of_init(void)
struct resource r[2];
struct fsl_i2c_platform_data i2c_data;
const unsigned char *flags = NULL;
int idx;
const u32 *iprop;

memset(&r, 0, sizeof(r));
memset(&i2c_data, 0, sizeof(i2c_data));
Expand All @@ -506,7 +508,10 @@ static int __init fsl_i2c_of_init(void)

of_irq_to_resource(np, 0, &r[1]);

i2c_dev = platform_device_register_simple("fsl-i2c", i, r, 2);
iprop = of_get_property(np, "cell-index", NULL);
idx = iprop ? *iprop : i;

i2c_dev = platform_device_register_simple("fsl-i2c", idx, r, 2);
if (IS_ERR(i2c_dev)) {
ret = PTR_ERR(i2c_dev);
goto err;
Expand All @@ -528,7 +533,8 @@ static int __init fsl_i2c_of_init(void)
if (ret)
goto unreg;

of_register_i2c_devices(np, i++);
of_register_i2c_devices(np, idx);
i++;
}

return 0;
Expand Down

0 comments on commit e026892

Please sign in to comment.