[v1,00/15] auxdisplay: linedisp: Clean up and add new driver

Message ID 20240208165937.2221193-1-andriy.shevchenko@linux.intel.com
Headers
Series auxdisplay: linedisp: Clean up and add new driver |

Message

Andy Shevchenko Feb. 8, 2024, 4:58 p.m. UTC
  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.

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
  

Comments

Andy Shevchenko Feb. 8, 2024, 6:16 p.m. UTC | #1
On Thu, Feb 08, 2024 at 05:50:51PM +0000, Conor Dooley wrote:
> On Thu, Feb 08, 2024 at 06:58:57PM +0200, Andy Shevchenko wrote:
> > Add initial device tree documentation for Maxim MAX6958/6959.
> 
> Why "initial"? Are there elements this display that you've not
> documented yet? 

s/documented/implemented/

There are features of the hardware that may need additional properties.

> > +title: MAX6958/6959 7-segment LED display controller with keyscan
> 
> > +properties:
> > +  compatible:
> > +    const: maxim,max6959
> 
> Where's the max6958's compatible? I don't see it in your driver either.

For now, see above, there is no need. Moreover, there is no need at all
as we have autodetection mechanism. I don't see why we should have two
compatible strings just for the sake of having them.

> It seems that the max6959 has some interrupt capabilities that are not
> available on the max6958, so a dedicated compatible seems suitable to
> me.

So, please clarify the DT's p.o.v. on the hardware that can be autodetected.
Do we need to still have different compatible strings? What for? I don't
see the need, sorry for my (silly) questions.
  
Andy Shevchenko Feb. 8, 2024, 6:49 p.m. UTC | #2
On Thu, Feb 08, 2024 at 07:10:40PM +0100, Geert Uytterhoeven wrote:
> On Thu, Feb 8, 2024 at 6:52 PM Conor Dooley <conor@kernel.org> wrote:
> > On Thu, Feb 08, 2024 at 06:58:43PM +0200, Andy Shevchenko wrote:
> > > 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.
> > >
> > > 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
> >
> > Not all of these patches have made their way to the lists FYI:
> > 2024-02-08 16:58 Andy Shevchenko [this message]
> > 2024-02-08 16:58 ` [PATCH v1 01/15] auxdisplay: img-ascii-lcd: Make container_of() no-op for struct linedisp Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 02/15] auxdisplay: linedisp: Free allocated resources in ->release() Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 03/15] auxdisplay: linedisp: Use unique number for id Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 06/15] auxdisplay: linedisp: Move exported symbols to a namespace Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 07/15] auxdisplay: linedisp: Group line display drivers together Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 08/15] auxdisplay: linedisp: Provide struct linedisp_ops for future extension Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 09/15] auxdisplay: linedisp: Add support for overriding character mapping Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 10/15] auxdisplay: linedisp: Provide a small buffer in the struct linedisp Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 14/15] dt-bindings: auxdisplay: Add Maxim MAX6958/6959 Andy Shevchenko
> > 2024-02-08 16:58 ` [PATCH v1 15/15] auxdisplay: Add driver for MAX695x 7-segment LED controllers Andy Shevchenko
> > https://lore.kernel.org/all/20240208165937.2221193-1-andriy.shevchenko@linux.intel.com/
> 
> Same for my mailbox.

I just resent it, hopefully without missing parts now.