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

From: Sean Anderson
Date: Thu May 13 2021 - 17:01:15 EST




On 5/13/21 4:43 PM, Rob Herring wrote:
> 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.

Ok, then I will go with that for v4.

I noticed some another patch regarding a similar situation [1]. Would
you prefer separate files like what is done there, or is a unified file
like this ok?

[1] https://lore.kernel.org/lkml/d36e3690ce8c5a1e53d054552e4fd8b90d6a5478.1620648868.git.geert+renesas@xxxxxxxxx/T/

--Sean

>
>> 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
>