On Thu, 12 Oct 2023 09:53:02 +0200 Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > On 12/10/2023 00:21, Hugo Villeneuve wrote: > > From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > > > Convert binding from text format to YAML. > > Please use subject prefixes matching the subsystem. You can get them for > example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory > your patch is touching. Missing prefix: serial: Hi, will add it for V2. > > > > Additions to original text binding: > > - add rs485 reference. > > > > Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > --- > > > > diff --git a/Documentation/devicetree/bindings/serial/maxim,max310x.yaml b/Documentation/devicetree/bindings/serial/maxim,max310x.yaml > > new file mode 100644 > > index 000000000000..05fd00d95260 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/serial/maxim,max310x.yaml > > @@ -0,0 +1,107 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/serial/maxim,max310x.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Maxim MAX310X Advanced Universal Asynchronous Receiver-Transmitter (UART) > > + > > +maintainers: > > + - Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > + > > +properties: > > + compatible: > > + enum: > > + - maxim,max3107 > > + - maxim,max3108 > > + - maxim,max3109 > > + - maxim,max14830 > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + > > + clock-frequency: > > + description: > > + When there is no clock provider visible to the platform, this > > + is the source crystal frequency for the IC in Hz. > > + minimum: 1000000 > > + maximum: 4000000 > > This wasn't in original binding. Explain this in the commit msg. I will add the corresponding explanation in V2. The 'clock-frequency' property is already supported by the driver but was not documented in the original txt binding. This is related to the commit d4d6f03c4fb3: serial: max310x: Try to get crystal clock rate from property (Author: Andy Shevchenko): In some configurations, mainly ACPI-based, the clock frequency of the device is supplied by very well established 'clock-frequency' property. Hence, try to get it from the property at last if no other providers are available. > > > + > > + clock-names: > > + enum: > > + - xtal # External crystal > > + - osc # External clock source > > clock-names follow immediately clocks. Will fix for V2. > > > + > > + gpio-controller: true > > + > > + "#gpio-cells": > > + const: 2 > > + > > + gpio-line-names: > > + minItems: 1 > > + maxItems: 16 > > + > > +allOf: > > allOf: block goes after required: block. Will fix for V2. > > > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > > + - $ref: /schemas/serial/serial.yaml# > > + - $ref: /schemas/serial/rs485.yaml# > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + > > +oneOf: > > + - required: > > + - clocks > > + - clock-names > > + - required: > > + - clock-frequency > > That's also something new as well. The original binding required clocks. > Why are you changing this? See explanation above about clock-frequency. If clocks is not provided, than at least 'clock-frequency' must be provided. > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + serial@2c { > > + compatible = "maxim,max3107"; > > + reg = <0x2c>; > > + clocks = <&xtal4m>; > > + clock-names = "xtal"; > > + interrupt-parent = <&gpio3>; > > + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; > > + gpio-controller; > > + #gpio-cells = <2>; > > + }; > > + > > One example is enuogh. All other are the same. Not really, clock-names is different for example 2 (osc), and example 3 shows that 'clock-frequency' can be used if no clock is provided? Hugo.