The problem is caused by the initialization order of drivers in the kernel. When all drivers are built-in (=y)
, some may start too early — for example, the twl4030
driver tries to initialize before the I2C controller is ready. The kernel then defers the probe, but if no later trigger re-initiates the initialization, the device is not properly detected. In the case of modules (=m)
, their loading happens later, so the issue does not occur.