aboutsummaryrefslogtreecommitdiff
path: root/src/devices/root_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/root_device.c')
-rw-r--r--src/devices/root_device.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/devices/root_device.c b/src/devices/root_device.c
index 91c706e4b6..2bb4f0afe8 100644
--- a/src/devices/root_device.c
+++ b/src/devices/root_device.c
@@ -74,6 +74,7 @@ void root_dev_set_resources(device_t root)
* @param max Maximum bus number currently used before scanning.
* @return Largest bus number used after scanning.
*/
+static int smbus_max = 0;
unsigned int scan_static_bus(device_t root, unsigned int max)
{
device_t child;
@@ -82,6 +83,11 @@ unsigned int scan_static_bus(device_t root, unsigned int max)
printk_spew("%s for %s\n", __func__, dev_path(root));
for (link = 0; link < root->links; link++) {
+ /* for smbus bus enumerate */
+ child = root->link[link].children;
+ if(child && child->path.type == DEVICE_PATH_I2C) {
+ root->link[link].secondary = ++smbus_max;
+ }
for (child = root->link[link].children; child; child = child->sibling) {
if (child->chip_ops && child->chip_ops->enable_dev) {
child->chip_ops->enable_dev(child);