Skip to content

Commit

Permalink
ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Browse files Browse the repository at this point in the history
commit e4b0b2c (ARM: OMAP2+: gpmc-smsc911x: add required smsc911x
regulators) added regulators which are registered during
gpmc_smsc911x_init().  However, some platforms (OMAP3/Overo) have more
than one instance of the SMSC911x and result in attempting to register
the same regulator more than once which causes a panic().

Fix this by only registering the regulator when the platform_data id
field is zero, indicating its the first instance.

Cc: Matt Porter <mporter@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
Kevin Hilman authored and Tony Lindgren committed Mar 7, 2012
1 parent cc4ad90 commit bb60424
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions arch/arm/mach-omap2/gpmc-smsc911x.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data)

gpmc_cfg = board_data;

ret = platform_device_register(&gpmc_smsc911x_regulator);
if (ret < 0) {
pr_err("Unable to register smsc911x regulators: %d\n", ret);
return;
if (!gpmc_cfg->id) {
ret = platform_device_register(&gpmc_smsc911x_regulator);
if (ret < 0) {
pr_err("Unable to register smsc911x regulators: %d\n",
ret);
return;
}
}

if (gpmc_cs_request(gpmc_cfg->cs, SZ_16M, &cs_mem_base) < 0) {
Expand Down

0 comments on commit bb60424

Please sign in to comment.