I am writing platform device drivers to handle the creation of I2C devices on pluggable boards in our system. The system is x86 based so device tree is not an option at this point (would have loved to use the device tree with overlay to handle pluggable boards). Anyways, these boards contain a mix of i2c devices such as eeproms, temperature & voltage sensors and i2c muxes. The muxes used are PCA9548 (8 channel i2c mux). The instantiation of the pca9548 devices is easy enough with the i2c_new_device API. However, I do need to create devices behind this mux and this is where things get difficult. The driver itself can not simply instantiate them after the pca9548 as the muxes have not been added yet (pca9548 probe function not invoked yet). So without the muxes being added, I can not get a pointer to the corresponding i2c adapter for the next i2c_new_device call. Any ideas on how I can accomplish this? Is it possible to "stage" the platform device probe function to give the kernel time to actually instantiate the pca9548?