Re: [PATCH 03/18] MIPS: DTS: jz4780: fix tcu timer as reported by dtbscheck
From: H. Nikolaus Schaller
Date: Sat Apr 09 2022 - 09:18:17 EST
> Am 09.04.2022 um 15:11 schrieb Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>:
>
> On 09/04/2022 15:03, H. Nikolaus Schaller wrote:
>>
>>
>>> Am 09.04.2022 um 13:11 schrieb Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>:
>>>
>>> On 08/04/2022 20:37, H. Nikolaus Schaller wrote:
>>>> arch/mips/boot/dts/ingenic/ci20.dtb: timer@10002000: compatible: 'oneOf' conditional failed, one must be fixed:
>>>> ['ingenic,jz4780-tcu', 'ingenic,jz4770-tcu', 'simple-mfd'] is too long
>>>> 'ingenic,jz4780-tcu' is not one of ['ingenic,jz4740-tcu', 'ingenic,jz4725b-tcu', 'ingenic,jz4760-tcu', 'ingenic,x1000-tcu']
>>>> 'simple-mfd' was expected
>>>> 'ingenic,jz4760-tcu' was expected
>>>
>>> Trim it a bit...
>>>
>>>> From schema: Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
>>>
>>> You need to explain this. You're changing the effective compatible of
>>> the device and doing so based only on schema warning does not look
>>> enough. Please write real reason instead of this fat warning, e.g. that
>>> both devices are actually compatible and this has no real effect except
>>> schema checks.
>>
>> both use jz4740_soc_info / jz4770_soc_info and there is no ingenic,jz4780-tcu...
>> So it doesn't change function, just makes it fit to the bindings.
>>
>> We could solve it differently add ingenic,jz4780-tcu to bindings and the
>> driver compatible table.
>
> Just please use it in commit msg instead of or next to the warning.
> Don't focus on the bindings check but focus on actual hardware and its
> description.
Well, again, my assumption is that bindings and .yaml files formally describe the actual
hardware components. And they have been reviewed.
So they have a higher level of authority than any current driver or .dts implementation.
Unless there is evidence that the bindings are wrong.
I.e. if the bindings feel right why is there a need to argue for that?
It is like test-driven development model. There you have to write code that passes
the tests. Not argue against the tests.
BR and thanks,
Nikolaus