On Wed, Jan 04, 2023 at 02:34:12PM +0100, Martin Zaťovič wrote: > A Weigand bus is defined by a Wiegand controller node. This node > can contain one or more device nodes for devices attached to > the controller(it is advised to only connect one device as Wiegand > is a point-to-point bus). > > Wiegand controller needs to specify several attributes such as > the pulse length in order to function properly. These attributes > are documented here. For the subject, drop 'dt-binding documentation'. That's already stated once. > > Signed-off-by: Martin Zaťovič <m.zatovic1@xxxxxxxxx> > --- > .../bindings/wiegand/wiegand-controller.yaml | 83 +++++++++++++++++++ > MAINTAINERS | 5 ++ > 2 files changed, 88 insertions(+) > create mode 100644 Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml > > diff --git a/Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml b/Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml > new file mode 100644 > index 000000000000..645306c65d43 > --- /dev/null > +++ b/Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml > @@ -0,0 +1,83 @@ > +# SPDX-License-Identifier: GPL-2.0 (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/wiegand/wiegand-controller.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Wiegand Controller Generic Binding s/Binding/Common Properties/ > + > +maintainers: > + - Martin Zaťovič <martin.zatovic@xxxxxxxxxxxxxxxxxx> > + > +description: | Don't need '|'. > + Wiegand busses can be described with a node for the Wiegand controller device > + and a set of child nodes for each SPI slave on the bus. > + > +properties: > + $nodename: > + pattern: "^wiegand(@.*|-[0-9a-f])*$" '?' instead of '*' for the last '*'. > + > + compatible: > + maxItems: 1 Drop 'compatible' as the specific controller has to list this anyways. Also, a controller can have as many compatible strings as it wants. > + description: Compatible of the Wiegand controller. > + > + data-high-gpios: > + maxItems: 1 > + description: GPIO used as Wiegands data-hi line. This line is initially > + pulled up to high value. Wiegand write of a bit of value 1 results in > + this line being pulled down for pulse length duration. > + > + data-lo-gpios: > + maxItems: 1 > + description: GPIO used as Wiegands data-lo line. This line is initially > + pulled up to high value. Wiegand write of a bit of value 0 results in > + this line being pulled down for pulse length duration. > + > + pulse-len-us: > + maxItems: 1 > + description: Length of the low pulse in microseconds. > + > + interval-len-us: > + maxItems: 1 > + description: Length of a whole bit (both the pulse and the high phase) > + in microseconds. > + > + frame-gap-us: > + maxItems: 1 > + description: Length of the last bit of a frame (both the pulse and the > + high phase) in microseconds. > + > + slave-device: A slave device should be named for the class of device it is, not 'slave-device'. Just drop all of this as there's no way to match a node name. > + type: object > + > + properties: > + compatible: > + description: > + Compatible of the Wiegand device. > + > + required: > + - compatible > + > +required: > + - compatible > + - pulse-len-us > + - interval-len-us > + - frame-gap-us > + > +additionalProperties: false Common bindings should be 'true'. > + > +examples: > + - | > + wiegand@f00 { > + compatible = "wiegand-gpio"; > + data-hi-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; > + data-lo-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; > + pulse-len-us = <50>; > + interval-len-us = <2000>; > + frame-gap-us = <2000>; > + status = "okay"; Drop 'status'. > + > + wiegand-foo-device { > + compatible = "wiegand-foo"; > + }; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 7f86d02cb427..db9624d93af0 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -22428,6 +22428,11 @@ L: linux-input@xxxxxxxxxxxxxxx > S: Maintained > F: drivers/hid/hid-wiimote* > > +WIEGAND BUS DRIVER > +M: Martin Zaťovič <m.zatovic1@xxxxxxxxx> > +S: Maintained > +F: Documentation/devicetree/bindings/wiegand/wiegand-controller.yaml > + > WILOCITY WIL6210 WIRELESS DRIVER > L: linux-wireless@xxxxxxxxxxxxxxx > S: Orphan > -- > 2.38.1 > >