Re: [PATCH v3 1/2] dt-bindings: pwm: Add Xilinx AXI Timer

From: Rob Herring
Date: Thu May 13 2021 - 16:43:41 EST


On Thu, May 13, 2021 at 10:28 AM Sean Anderson <sean.anderson@xxxxxxxx> wrote:
>
>
>
> On 5/13/21 10:33 AM, Sean Anderson wrote:
> >
> >
> > On 5/12/21 10:16 PM, Rob Herring wrote:
> > > On Tue, May 11, 2021 at 03:12:37PM -0400, Sean Anderson wrote:
> > >> This adds a binding for the Xilinx LogiCORE IP AXI Timer. This device is
> > >> a "soft" block, so it has many parameters which would not be
> > >> configurable in most hardware. This binding is usually automatically
> > >> generated by Xilinx's tools, so the names and values of some properties
> > >> must be kept as they are. Replacement properties have been provided for
> > >> new device trees.
> > >
> > > Because you have some tool generating properties is not a reason we have
> > > to accept them upstream.
> >
> > These properties are already in arch/microblaze/boot/dts/system.dts and
> > in the devicetree supplied to Linux by qemu. Removing these properties
> > will break existing setups, which I would like to avoid.

Already in use in upstream dts files is different than just
'automatically generated' by vendor tools.

> >
> > > 'deprecated' is for what *we* have deprecated.
> >
> > Ok. I will remove that then.
> >
> > >
> > > In this case, I don't really see the point in defining new properties
> > > just to have bool.
> >
> > I don't either, but it was requested, by Michal...
>
> Err, your comment on the original bindings was
>
> > Can't all these be boolean?

With no other context, yes that's what I would ask. Now you've given
me some context, between using the existing ones and 2 sets of
properties to maintain, I choose the former.

> And Michal commented
>
> > I think in this case you should described what it is used by current
> > driver in Microblaze and these options are required. The rest are by
> > design optional.
> > If you want to change them to different value then current binding
> > should be deprecated and have any transition time with code alignment.
>
> So that is what I tried to accomplish with this revision. I also tried
> allowing something like
>
> xlnx,one-timer-only = <0>; /* two timers */
> xlnx,one-timer-only = <1>; /* one timer */
> xlnx,one-timer-only; /* one timer */
> /* property absent means two timers */
>
> but I was unable to figure out how to express this with json-schema. I
> don't think it's the best design either...

json-schema would certainly let you, but generally we don't want
properties to have more than 1 type.

Rob