Add a new initial driver for Maxim MAX6958/6959 chips. While developing that driver I realised that there is a lot of duplication between ht16k33 and a new one. Hence set of cleanups and refactorings. Note, the new driver has minimum support of the hardware and I have plans to cover more features in the future. In v2: - updated DT bindings to follow specifications and requirements (Krzysztof) - unified return code variable (err everywhere) - left patches 10 and 13 untouched, we may amend later on (Robin) Andy Shevchenko (15): auxdisplay: img-ascii-lcd: Make container_of() no-op for struct linedisp auxdisplay: linedisp: Free allocated resources in ->release() auxdisplay: linedisp: Use unique number for id auxdisplay: linedisp: Unshadow error codes in ->store() auxdisplay: linedisp: Add missing header(s) auxdisplay: linedisp: Move exported symbols to a namespace auxdisplay: linedisp: Group line display drivers together auxdisplay: linedisp: Provide struct linedisp_ops for future extension auxdisplay: linedisp: Add support for overriding character mapping auxdisplay: linedisp: Provide a small buffer in the struct linedisp auxdisplay: ht16k33: Move ht16k33_linedisp_ops down auxdisplay: ht16k33: Switch to use line display character mapping auxdisplay: ht16k33: Use buffer from struct linedisp dt-bindings: auxdisplay: Add Maxim MAX6958/6959 auxdisplay: Add driver for MAX695x 7-segment LED controllers .../bindings/auxdisplay/maxim,max6959.yaml | 35 +++ drivers/auxdisplay/Kconfig | 40 ++-- drivers/auxdisplay/Makefile | 13 +- drivers/auxdisplay/ht16k33.c | 145 +++++-------- drivers/auxdisplay/img-ascii-lcd.c | 24 ++- drivers/auxdisplay/line-display.c | 162 ++++++++++++-- drivers/auxdisplay/line-display.h | 57 ++++- drivers/auxdisplay/max6959.c | 200 ++++++++++++++++++ 8 files changed, 530 insertions(+), 146 deletions(-) create mode 100644 Documentation/devicetree/bindings/auxdisplay/maxim,max6959.yaml create mode 100644 drivers/auxdisplay/max6959.c -- 2.43.0.rc1.1.gbec44491f096