Re: [PATCH RFC] timer: of: Create a platform_device before the framework is initialized
From: Arnd Bergmann
Date: Tue Jul 01 2025 - 03:54:25 EST
On Tue, Jul 1, 2025, at 01:53, William McVicker wrote:
>> @@ -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