Re: [PATCH 2/2] hwmon: add Axiado AX3000 and AX3005 PWM fan controller driver
Uwe Kleine-König <[email protected]> Thu, 6 Aug 2026 12:04:33 +0200
| Newsgroups | org.kernel.vger.linux-hwmon,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pwm |
|---|---|
| Message-ID | <anRaB--HAHoWFkDo@monoceros> |
On Thu, Aug 06, 2026 at 02:01:30AM -0700, Petar Stepanovic wrote:
> +#define PWM_MAX 255
That define has a name that looks much more generic than it actually is.
Please call it AX_TACH_PWM_VAL_MAX or something similar.
> [...]
> +static int axiado_pwm_fan_read(struct device *dev, enum hwmon_sensor_types type,
> + u32 attr, int channel, long *val)
> +{
> + struct axiado_pwm_fan_ctx *ctx = dev_get_drvdata(dev);
> +
> + switch (type) {
> + case hwmon_pwm:
> + if (attr != hwmon_pwm_input)
> + return -EOPNOTSUPP;
> +
> + scoped_guard(mutex, &ctx->pwm_lock)
> + *val = ctx->pwm_value;
If there is a hwmon lock that serializes calls to hwmon_ops::read and
hwmon_ops::write, .pwm_lock isn't needed. (Unless I miss something,
please double check. Also I'm unsure if there is such a hwmon
serialization.)
> [...]
> +static const struct of_device_id axiado_pwm_fan_match[] = {
> + { .compatible = "axiado,ax3000-pwm-fan" },
> + { },
No trailing , after the list terminator please.
> +};
> +MODULE_DEVICE_TABLE(of, axiado_pwm_fan_match);
> +
> +static struct platform_driver axiado_pwm_fan_driver = {
> + .probe = axiado_pwm_fan_probe,
> + .shutdown = axiado_pwm_fan_shutdown,
> + .driver = {
> + .name = "axiado-pwm-fan",
> + .pm = pm_sleep_ptr(&axiado_pwm_fan_pm),
> + .of_match_table = axiado_pwm_fan_match,
> + },
> +};
> +
> +module_platform_driver(axiado_pwm_fan_driver);
Typically `module_platform_driver` follows the struct platform_driver
without a newline.
> +MODULE_AUTHOR("Axiado Corporation");
> +MODULE_DESCRIPTION("Axiado PWM fan controller driver");
> +MODULE_LICENSE("GPL");
> +
Trailing newline at end of file.
Best regards
Uwe
signature.asc
(application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmp0XC8ACgkQj4D7WH0S /k6CtggAqc2SkaT/74paCQn8c06aLqh+ZQkQt9kOhzsh+nqXBbzoUpyzYVbZ1qKf KljBTvQZl662s+bADLObfOmJraNBFmm4geuKju1SwTtb4306Vq9YyVCz1QNSlcVz IGmVDdNGZFpIOa9TpCH6yxDwpSZG0NS6s7AphknUn7pROhVDFGgPAKuU99SxGicj 63kSmknKODrbwIQZNPNQcVGHHwMzbHL8s/cY5KOxhHir6ZcjnL8qeuKVMagPeI1b 4o4/N2UiUDomVIp3Uyj3R2sUBzN+TjtbM+KWQKGfPQZEWanKRDdoo06r2w4yJkdd p3w5vHhYuCUQi44Swaz41xcqITW3sA== =Mni6 -----END PGP SIGNATURE-----