On Tue, Mar 24, 2020 at 08:43:20PM +0300, Sergey.Semin@xxxxxxxxxxxxxxxxxxxx wrote: > From: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> > > Modern device tree bindings are supposed to be created as YAML-files > in accordance with DT schema. This commit replaces Synopsys DW Timer > legacy bare text binding with YAML file. As before the binding file > states that the corresponding dts node is supposed to be compatible > with generic DW APB Timer indicated by the "snps,dw-apb-timer" > compatible string and to provide a mandatory registers memory range, > one timer interrupt, either reference clock source or a fixed clock > rate value. It may also have an optional APB bus reference clock > phandle specified. > > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> > Cc: Alexey Malahov <Alexey.Malahov@xxxxxxxxxxxxxxxxxxxx> > Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> > Cc: Paul Burton <paulburton@xxxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx> > Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: linux-rtc@xxxxxxxxxxxxxxx > > --- > > I have doubts that this binding file belongs to the bindings/rtc > directory seeing it's a pure timer with no rtc facilities like > days/months/years counting and alarms. What about moving it to the > "Documentation/devicetree/bindings/timer/" directory? +1 > I also don't know who is the corresponding driver maintainer, so I added > Daniel Lezcano to the maintainers schema. Any idea what email should be > specified there instead? > > Please also note, that "oneOf: - required: ..." pattern isn't working > here. So if you omit any of the clock-related property the > dt_binding_check procedure won't fail. Seeing the anyOf schema is working > I suppose this happens due to the dtschema/lib.py script, which replaces > the global oneOf with a fixup for the interrupts/interrupts-extended > properties: > > > def fixup_interrupts(schema): > > # Supporting 'interrupts' implies 'interrupts-extended' is also supported. > > if not 'interrupts' in schema['properties'].keys(): > > return > > > > # Any node with 'interrupts' can have 'interrupt-parent' > > schema['properties']['interrupt-parent'] = True > > > > schema['properties']['interrupts-extended'] = { "$ref": "#/properties/interrupts" }; > > > > if not ('required' in schema.keys() and 'interrupts' in schema['required']): > > return > > > !> # Currently no better way to express either 'interrupts' or 'interrupts-extended' > !> # is required. If this fails validation, the error reporting is the whole > !> # schema file fails validation > !> schema['oneOf'] = [ {'required': ['interrupts']}, {'required': ['interrupts-extended']} ] I'll fix this. I'll have to check for 'oneOf' and if it exists then put it under an 'allOf'. > --- > .../devicetree/bindings/rtc/dw-apb.txt | 32 ------- > .../bindings/rtc/snps,dw-apb-timer.yaml | 88 +++++++++++++++++++ > 2 files changed, 88 insertions(+), 32 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/rtc/dw-apb.txt > create mode 100644 Documentation/devicetree/bindings/rtc/snps,dw-apb-timer.yaml Otherwise, looks good. Reviewed-by: Rob Herring <robh@xxxxxxxxxx>