mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Martin Zaťovič" <m.zatovic1@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org, mani@kernel.org,
	hemantk@codeaurora.org, quic_jhugo@quicinc.com,
	andersson@kernel.org, Michael.Srba@seznam.cz, arnd@arndb.de,
	dipenp@nvidia.com, bvanassche@acm.org, iwona.winiarska@intel.com,
	ogabbay@kernel.org, tzimmermann@suse.de, fmdefrancesco@gmail.com,
	jason.m.bills@linux.intel.com, jae.hyun.yoo@linux.intel.com,
	gregkh@linuxfoundation.org, krzysztof.kozlowski+dt@linaro.org,
	robh+dt@kernel.org, "Martin Zaťovič" <m.zatovic1@gmail.com>
Subject: [PATCH 0/3] Wiegand bus driver and GPIO controller driver
Date: Wed,  4 Jan 2023 14:34:11 +0100	[thread overview]
Message-ID: <20230104133414.39305-1-m.zatovic1@gmail.com> (raw)

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


             reply	other threads:[~2023-01-04 13:42 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-04 13:34 Martin Zaťovič [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230104133414.39305-1-m.zatovic1@gmail.com \
    --to=m.zatovic1@gmail.com \
    --cc=Michael.Srba@seznam.cz \
    --cc=andersson@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bvanassche@acm.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dipenp@nvidia.com \
    --cc=fmdefrancesco@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hemantk@codeaurora.org \
    --cc=iwona.winiarska@intel.com \
    --cc=jae.hyun.yoo@linux.intel.com \
    --cc=jason.m.bills@linux.intel.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=ogabbay@kernel.org \
    --cc=quic_jhugo@quicinc.com \
    --cc=robh+dt@kernel.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®