These changes were made to support a custom board where one PWM output is routed to two fans, each of which has a tachometer signal routed to a GPIO input on the SoC. As the custom board doesn't currently support the latest mainline kernel I've tested these changes on a SanCloud BeagleBone Enhanced using an oscilloscope to check the PWM output and a signal generator to simulate the fan tachometer signals. I've tested variants of the device tree with 0, 1 and 2 fan tachometer inputs configured to ensure the logic in the probe function is correct. The device tree bindings changes have been submitted in a separate series: https://lore.kernel.org/linux-devicetree/20200920180943.352526-1-pbarker@xxxxxxxxxxxx/ These changes can also be pulled from: https://gitlab.com/pbarker.dev/staging/linux.git tag: for-hwmon/pwm-fan-tachometers-v2_2020-11-13 Changes since v1: * Split RPM calculation fix into a separate patch which has now been accepted. * Break the changes down into smaller patches so they're easier to review. * Rebased changes on hwmon-next. Paul Barker (4): hwmon: pwm-fan: Refactor pwm_fan_probe hwmon: pwm-fan: Dynamically setup attribute groups hwmon: pwm-fan: Store tach data separately hwmon: pwm-fan: Support multiple fan tachometers drivers/hwmon/pwm-fan.c | 155 ++++++++++++++++++++++++---------------- 1 file changed, 95 insertions(+), 60 deletions(-) base-commit: 414920a4a5d5613e4aa77c89944f9c1dc86b06c4 -- 2.29.2