Re: [PATCH v5 04/11] clocksource/drivers: Add HPE GXP timer

From: Arnd Bergmann
Date: Fri Apr 22 2022 - 09:16:51 EST


On Thu, Apr 21, 2022 at 9:21 PM <nick.hawkins@xxxxxxx> wrote:

> +
> +static struct platform_device gxp_watchdog_device = {
> + .name = "gxp-wdt",
> + .id = -1,
> +};
> +/*
> + * This probe gets called after the timer is already up and running. This will create
> + * the watchdog device as a child since the registers are shared.
> + */
> +
> +static int gxp_timer_probe(struct platform_device *pdev)
> +{
> + struct device *dev = &pdev->dev;
> +
> + /* Pass the base address (counter) as platform data and nothing else */
> + gxp_watchdog_device.dev.platform_data = local_gxp_timer->counter;
> + gxp_watchdog_device.dev.parent = dev;
> + return platform_device_register(&gxp_watchdog_device);
> +}

I don't understand what this is about: the device should be created from
DT, not defined statically in the code. There are multiple ways of creating
a platform_device from a DT node, or you can allocate one here, but static
definitions are generally a mistake.

I see that you copied this from the ixp4xx driver, so I think we should fix this
there as well.

Arnd