Add a temperature and fan controller driver for the Microchip LAN9668 SoC. The temperature sensor uses a polynomial to calculate the actual temperature. Fortunately, the bt1-pvt already has such a calculation. It seems that the LAN9668 uses the same Analog Bits sensor as the BT1 although with a different characteristic. To be able to reuse the code move it to lib/ as it seems pretty generic to calculate any polynomial using integers only, which might also be used by other parts of the kernel. Another option might be to move the code to hwmon-poly.c, I'm not sure. Thoughts? I also plan on submitting patches to add temperature sensor support for the GPYxxx and LAN8814 PHYs which also use polynomial_calc(). The last two patches adds the actual driver and the dt-binding for it. Michael Walle (4): lib: add generic polynomial calculation hwmon: (bt1-pvt) use generic polynomial functions dt-bindings: hwmon: add Microchip LAN966x bindings hwmon: add driver for the Microchip LAN966x SoC .../bindings/hwmon/microchip,lan966x.yaml | 53 +++ drivers/hwmon/Kconfig | 12 + drivers/hwmon/Makefile | 1 + drivers/hwmon/bt1-pvt.c | 50 +-- drivers/hwmon/lan966x-hwmon.c | 384 ++++++++++++++++++ include/linux/polynomial.h | 35 ++ lib/Kconfig | 3 + lib/Makefile | 2 + lib/polynomial.c | 95 +++++ 9 files changed, 598 insertions(+), 37 deletions(-) create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,lan966x.yaml create mode 100644 drivers/hwmon/lan966x-hwmon.c create mode 100644 include/linux/polynomial.h create mode 100644 lib/polynomial.c -- 2.30.2