In Linux if device drivers are built as loadable kernel modules, then upon inserting the device driver kernel module, the kernel calls the init function of the device driver
As specified by the comments in kernel init.h
"module_init() will either be called during do_initcalls() (if builtin) or at module insertion time (if a module)."
If you look into init.h then you will see
define module_init(x) __initcall(x);
And if you closely observe then
define __initcall(fn) device_initcall(fn)
And
define device_initcall(fn) __define_initcall("6",fn,6)
So basically the module init leads to initcall (NOTE: only for statically compiled modules) at the time of boot only.