diff options
Diffstat (limited to 'drivers/i2c/busses/i2c-versatile.c')
| -rw-r--r-- | drivers/i2c/busses/i2c-versatile.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c index 4678babd3ce6..fede619ba227 100644 --- a/drivers/i2c/busses/i2c-versatile.c +++ b/drivers/i2c/busses/i2c-versatile.c | |||
| @@ -102,7 +102,13 @@ static int i2c_versatile_probe(struct platform_device *dev) | |||
| 102 | i2c->algo = i2c_versatile_algo; | 102 | i2c->algo = i2c_versatile_algo; |
| 103 | i2c->algo.data = i2c; | 103 | i2c->algo.data = i2c; |
| 104 | 104 | ||
| 105 | ret = i2c_bit_add_bus(&i2c->adap); | 105 | if (dev->id >= 0) { |
| 106 | /* static bus numbering */ | ||
| 107 | i2c->adap.nr = dev->id; | ||
| 108 | ret = i2c_bit_add_numbered_bus(&i2c->adap); | ||
| 109 | } else | ||
| 110 | /* dynamic bus numbering */ | ||
| 111 | ret = i2c_bit_add_bus(&i2c->adap); | ||
| 106 | if (ret >= 0) { | 112 | if (ret >= 0) { |
| 107 | platform_set_drvdata(dev, i2c); | 113 | platform_set_drvdata(dev, i2c); |
| 108 | return 0; | 114 | return 0; |
| @@ -146,7 +152,7 @@ static void __exit i2c_versatile_exit(void) | |||
| 146 | platform_driver_unregister(&i2c_versatile_driver); | 152 | platform_driver_unregister(&i2c_versatile_driver); |
| 147 | } | 153 | } |
| 148 | 154 | ||
| 149 | module_init(i2c_versatile_init); | 155 | subsys_initcall(i2c_versatile_init); |
| 150 | module_exit(i2c_versatile_exit); | 156 | module_exit(i2c_versatile_exit); |
| 151 | 157 | ||
| 152 | MODULE_DESCRIPTION("ARM Versatile I2C bus driver"); | 158 | MODULE_DESCRIPTION("ARM Versatile I2C bus driver"); |
