Hi, I am seeing an issue with the PCA935X driver in 6.6.41 and 6.11.0-rc4-next-20240820. The pca953x is getting probed before its I2C parent (i2c-2): [ 1.872917] pca953x 2-0020: supply vcc not found, using dummy regulator [ 1.889195] pca953x 2-0020: using no AI [ 1.893260] pca953x 2-0020: failed writing register [ 1.898258] pca953x 2-0020: probe with driver pca953x failed with error -11 [ 1.905575] i2c i2c-2: IMX I2C adapter registered This problem is seen on a custom imx8mp board. I am not able to reproduce it on an imx8mm-evk. If I select the pca953x as a module or insert a delay inside its probe() function, it probes successfully. The drivers/gpio/gpio-pca953x.c has the following comments: /* register after i2c postcore initcall and before * subsys initcalls that may rely on these GPIOs */ subsys_initcall(pca953x_init); but it seems this is not happening. I have also tried to register it like this: --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -1369,21 +1369,7 @@ static struct i2c_driver pca953x_driver = { .remove = pca953x_remove, .id_table = pca953x_id, }; - -static int __init pca953x_init(void) -{ - return i2c_add_driver(&pca953x_driver); -} -/* register after i2c postcore initcall and before - * subsys initcalls that may rely on these GPIOs - */ -subsys_initcall(pca953x_init); - -static void __exit pca953x_exit(void) -{ - i2c_del_driver(&pca953x_driver); -} -module_exit(pca953x_exit); +module_i2c_driver(pca953x_driver); ) but this did not help either. Does anyone have any suggestions on how to fix this problem when the pca953x driver is built-in? Thanks, Fabio Estevam