I have two different drivers for the same i2c device. Both drivers have the same string in their i2c module device table. One of the drivers is built into the kernel and the other was built as an out of tree module. If I load the module first, is there a way to force the device to be bound to the driver provided by the module rather than the driver built into the kernel?
According to this answer:
built-in kernel modules can be blacklisted using kernel boot parameters. To do this, you would need to either edit the 'linux' entry on the GRUB command line or modify the boot parameters in the /boot/grub.cfg file.
Other than that, I believe you would have to re-configure/compile the kernel.
Edited: To incorporate correct information, as mentioned by Ignacio Vasquez-Abrams in the comments.