wcd->ch_info = &wcd937x_sdw_rx_ch_info[0];
        }
 
-       pm_runtime_set_autosuspend_delay(dev, 3000);
-       pm_runtime_use_autosuspend(dev);
-       pm_runtime_mark_last_busy(dev);
-       pm_runtime_set_active(dev);
-       pm_runtime_enable(dev);
 
-       return component_add(dev, &wcd937x_sdw_component_ops);
+       ret = component_add(dev, &wcd937x_sdw_component_ops);
+       if (ret)
+               return ret;
+
+       /* Set suspended until aggregate device is bind */
+       pm_runtime_set_suspended(dev);
+
+       return 0;
 }
 
 static int wcd9370_remove(struct sdw_slave *pdev)
 
        component_del(dev, &wcd937x_sdw_component_ops);
 
-       pm_runtime_disable(dev);
-       pm_runtime_set_suspended(dev);
-       pm_runtime_dont_use_autosuspend(dev);
-
        return 0;
 }