Re: [PATCH v4 1/3] dt-bindings: w1: UART 1-Wire bus

From: Rob Herring
Date: Fri Jan 12 2024 - 20:39:29 EST


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