On Tue, Jul 1, 2025, at 01:53, William McVicker wrote:
quoted
@@ -1550,6 +1553,8 @@ typedef void (*of_init_fn_1)(struct device_node *);
_OF_DECLARE(table, name, compat, fn, of_init_fn_1_ret)
#define OF_DECLARE_2(table, name, compat, fn) \
_OF_DECLARE(table, name, compat, fn, of_init_fn_2)
+#define OF_DECLARE_PDEV(table, name, compat, fn) \
+ _OF_DECLARE(table, name, compat, fn, of_init_fn_pdev)
To support auto-module loading you'll need to also define the
MODULE_DEVICE_TABLE() as part of TIMER_OF_DECLARE_PDEV().
I haven't tested the patch yet, but aside from my comment above it LGTM.
The patch doesn't actually have a module_platform_driver_probe()
yet either, so loading the module wouldn't actually do anything.
I feel that this RFC by itself a good step in the direction we want,
so Daniel should go ahead with prototyping the next two steps:
adding the platform_driver registration into OF_DECLARE_PDEV,
and converting a driver so it can be used either with the _OF_DECLARE()
or the platform_driver case.
Regarding the sh_early_platform_driver code that Rob mentioned,
I think this one is already better since it doesn't duplicate
parts of the platform_driver framework and it interfaces with
device tree based probing.
Arnd