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"); |