devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Wiegand bus driver and GPIO controller driver
@ 2023-01-04 13:34 Martin Zaťovič
  2023-01-04 13:34 ` [PATCH 1/3] dt-bindings: add Wiegand controller dt-binding documentation Martin Zaťovič
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Martin Zaťovič @ 2023-01-04 13:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree, mani, hemantk, quic_jhugo, andersson, Michael.Srba,
	arnd, dipenp, bvanassche, iwona.winiarska, ogabbay, tzimmermann,
	fmdefrancesco, jason.m.bills, jae.hyun.yoo, gregkh,
	krzysztof.kozlowski+dt, robh+dt, Martin Zaťovič

I would like to thank everyone that commented on my last RFC,
which made me realize the shortcuts in design I was making.
I think I have finally understood the concept of how bus drivers
operate and I have implemented a Wiegand bus driver. The driver
now manages controllers and devices connected to them. It attaches
drivers to Wiegand devices and provides an abstract API in
"include/linux/wiegand.h". Most of the Wiegand bus driver code is
inspired by the SPI bus driver written by David Brownell.

I have also implemented a driver for Wiegand GPIO bit-banging.
This driver gets the devicetree defined GPIO lines and sends
Wiegand formatted data through them.

I have also tested creating sample drivers for devices attached
to the bus and working with them.

CHANGELOG since RFCv3:
- implemented a proper bus driver for controller and device
allocation, devicetree probing and driver matching
- Wiegand bus is now represented as Wiegand controller node in the
devicetree
- re-wrote the old version of GPIO bit-banging driver as
a Wiegand controller
- used standard units for devicetree attributes
- removed global variables
- tested unbinding of drivers and fixed memory leaks
- created a Wiegand protocol sub-system - a folder "drivers/wiegand/"
for Wiegand controller drivers

I am not sure, whether this bus is complex enough to create a subsystem
for, however I do believe that this is the way most buses do it.

Martin Zaťovič (3):
  dt-bindings: add Wiegand controller dt-binding documentation
  bus: add Wiegand bus driver
  wiegand: add Wiegand GPIO bit-banged controller driver

 .../ABI/testing/sysfs-driver-wiegand-gpio     |  17 +
 .../bindings/wiegand/wiegand-controller.yaml  |  83 ++
 MAINTAINERS                                   |   9 +
 drivers/Kconfig                               |   2 +
 drivers/bus/Kconfig                           |   5 +
 drivers/bus/Makefile                          |   1 +
 drivers/bus/wiegand.c                         | 768 ++++++++++++++++++
 drivers/wiegand/Kconfig                       |   8 +
 drivers/wiegand/Makefile                      |   1 +
 drivers/wiegand/wiegand-gpio.c                | 471 +++++++++++
 include/linux/wiegand.h                       | 228 ++++++
 11 files changed, 1593 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-wiegand-gpio
 create mode 100644 Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml
 create mode 100644 drivers/bus/wiegand.c
 create mode 100644 drivers/wiegand/Kconfig
 create mode 100644 drivers/wiegand/Makefile
 create mode 100644 drivers/wiegand/wiegand-gpio.c
 create mode 100644 include/linux/wiegand.h

-- 
2.38.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-01-25 13:37 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-04 13:34 [PATCH 0/3] Wiegand bus driver and GPIO controller driver Martin Zaťovič
2023-01-04 13:34 ` [PATCH 1/3] dt-bindings: add Wiegand controller dt-binding documentation Martin Zaťovič
2023-01-05  2:53   ` Rob Herring
2023-01-05  2:53   ` Rob Herring
2023-01-08 16:30   ` Rob Herring
2023-01-22 14:21   ` Krzysztof Kozlowski
2023-01-04 13:34 ` [PATCH 2/3] bus: add Wiegand bus driver Martin Zaťovič
2023-01-04 14:03   ` Greg KH
2023-01-04 14:05   ` Greg KH
2023-01-25 13:05     ` Martin Zaťovič
2023-01-25 13:16       ` Arnd Bergmann
2023-01-25 13:21         ` Martin Zaťovič
2023-01-25 13:26       ` Greg KH
2023-01-25 13:37         ` Martin Zaťovič
2023-01-04 14:06   ` Greg KH
2023-01-04 13:34 ` [PATCH 3/3] wiegand: add Wiegand GPIO bit-banged controller driver Martin Zaťovič
2023-01-04 14:05   ` Greg KH
2023-01-04 16:39   ` kernel test robot
2023-01-04 16:59   ` Andy Shevchenko
2023-01-04 17:01     ` Andy Shevchenko
2023-01-25  9:28       ` Martin Zaťovič
2023-01-25 11:49         ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).