lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 24 Oct 2022 18:26:48 +0200
From:   Martin Zaťovič <m.zatovic1@...il.com>
To:     robh+dt@...nel.org, krzysztof.kozlowski+dt@...aro.org,
        andersson@...nel.org, jeffrey.l.hugo@...il.com,
        Michael.Srba@...nam.cz, gregkh@...uxfoundation.org,
        elder@...aro.org, hemantk@...eaurora.org, mani@...nel.org,
        linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
        linus.walleij@...aro.org
Cc:     Martin Zaťovič <m.zatovic1@...il.com>
Subject: [RFCv3 PATCH 0/2] Wiegand bus driver

Thank you for all your suggestions and points.

I have realized that I have approached implementing the Wiegand bus
driver wrong. I have used the words 'GPIO controller', which made it
seem like there was a GPIO controller for which another driver would
be needed. What I meant to implement is a simple bit-banged Wiegand
bus driver.

There is no GPIO controller, instead the two GPIO lines are
controlled by the bus. They are utilized to send messages following
the Wiegand protocol and the bus driver should implement such
bit-banging. Now only a single devicetree entry is needed instead
of two as in the previous version - thanks to Krzysztof for
pointing it out.

The driver was based on similar drivers in the drivers/bus directory.
There is also an abstract API in include/linux/wiegand.h that
contains functions to write to the bus or set a particular format.
This API is meant to be used in drivers of devices communicating
using Wiegand protocol.

The user can write on the bus using a device file or change
the format and message payload length via sysfs files.

The driver was tested on NXP Verdin iMX8MP Plus.

With regards,
Martin Zaťovič

v1->v2:
Split the driver into a bus driver a gpio driver and an abstract API.
Fix issues pointed out in RFC

v2->v3:
Discard the bus driver. Implement new bus driver based on the gpio
driver(the gpio driver was actually implementing the functionality
of the bus).
Fix make dt_bindings_check errors.
Use devicetree properties for pulse_len, interval_len and frame_gap
attributes.

Martin Zaťovič (2):
  dt-bindings: bus: add Wiegand bus dt documentation
  bus: add bit banged Wiegand bus driver

 Documentation/ABI/testing/sysfs-bus-wiegand   |  20 +
 .../devicetree/bindings/bus/wiegand.yaml      |  75 +++
 MAINTAINERS                                   |   8 +
 drivers/bus/Kconfig                           |   7 +
 drivers/bus/Makefile                          |   1 +
 drivers/bus/wiegand.c                         | 509 ++++++++++++++++++
 include/linux/wiegand.h                       |  58 ++
 7 files changed, 678 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-wiegand
 create mode 100644 Documentation/devicetree/bindings/bus/wiegand.yaml
 create mode 100644 drivers/bus/wiegand.c
 create mode 100644 include/linux/wiegand.h

--
2.37.3

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ