The device tree is loaded separately whether your driver or the applicable device is already present or not. Think of it as a configuration storage for drivers. If your driver is not loaded at boot then the kernel marks the device & driver for "deferred probing" at a later time.
Your driver should still include the "compatible" id's that you use in your device tree, loaded via MODULE_DEVICE_TABLE(), which is how the OF framework will "know" what to do with your driver once it does appear. The "compatible" string is the name OF uses to link to your driver. Likewise, your driver code can and should reference OF objects in the device tree to set your driver configurations, as required.
Finally, make sure your drive source includes the "module_platform_driver()" call, or one of the similar calls Linux offers. This replaces the old-style "module_init" and "module_cleanup" calls of old. When your module is loaded, then this macro registers your driver, points where the module_probe() function is, and passes the .of_match_table above to tie it into device tree.