On Sat, Jan 06, 2024 at 05:02:24PM +0100, Christoph Winklhofer wrote: > Add device tree binding for UART 1-Wire bus. > > Signed-off-by: Christoph Winklhofer <cj.winklhofer@xxxxxxxxx> > --- > Documentation/devicetree/bindings/w1/w1-uart.yaml | 62 +++++++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/Documentation/devicetree/bindings/w1/w1-uart.yaml b/Documentation/devicetree/bindings/w1/w1-uart.yaml > new file mode 100644 > index 000000000000..6b90693b2ca0 > --- /dev/null > +++ b/Documentation/devicetree/bindings/w1/w1-uart.yaml > @@ -0,0 +1,62 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/w1/w1-uart.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: UART 1-Wire Bus > + > +maintainers: > + - Christoph Winklhofer <cj.winklhofer@xxxxxxxxx> > + > +description: | > + UART 1-wire bus. Utilizes the UART interface via the Serial Device Bus > + to create the 1-Wire timing patterns. > + > + The UART peripheral must support full-duplex and operate in open-drain > + mode. The timing patterns are generated by a specific combination of > + baud-rate and transmitted byte, which corresponds to a 1-Wire read bit, > + write bit or reset pulse. > + > + The default baud-rate for reset and presence detection is 9600 and for > + a 1-Wire read or write operation 115200. In case the actual baud-rate > + is different from the requested one, the transmitted byte is adapted > + to generate the 1-Wire timing patterns. > + > + https://www.analog.com/en/technical-articles/using-a-uart-to-implement-a-1wire-bus-master.html > + > + > +properties: > + compatible: > + const: w1-uart > + > + reset-speed: > + $ref: /schemas/types.yaml#/definitions/uint32 > + default: 9600 > + description: | Don't need '|' if no formatting > + The baud rate for the 1-Wire reset and presence detect. > + > + touch_0-speed: Don't use '_' in property names. I'm somewhat familar with 1-wire, but I don't get what 'touch' means here. I assume these are low and high times which are a function of the baudrate. > + $ref: /schemas/types.yaml#/definitions/uint32 > + default: 115200 > + description: | > + The baud rate for the 1-Wire write-0 cycle (touch bit 0). > + > + touch_1-speed: > + $ref: /schemas/types.yaml#/definitions/uint32 > + default: 115200 > + description: | > + The baud rate for the 1-Wire write-1 and read cycle (touch bit 1). > + > +required: > + - compatible > + > +additionalProperties: false w1.txt says there can be a child node for the 1-wire device. You need 'type: object'. Or w1.txt needs to be converted to schema and referenced here (along with using unevaluatedProperties here instead). Rob