Re: [PATCH v2] dt-binding: ipmi: add fallback to npcm845 compatible

From: Krzysztof Kozlowski
Date: Mon Aug 08 2022 - 02:24:26 EST


On 07/08/2022 16:54, Tomer Maimon wrote:
> On Sun, 7 Aug 2022 at 15:11, Corey Minyard <minyard@xxxxxxx> wrote:
>>
>> On Sun, Aug 07, 2022 at 11:03:56AM +0300, Tomer Maimon wrote:
>>> Hi Corey,
>>>
>>> Thanks for your comment.
>>>
>>> On Fri, 5 Aug 2022 at 14:58, Corey Minyard <minyard@xxxxxxx> wrote:
>>>>
>>>> On Thu, Aug 04, 2022 at 09:18:00PM +0300, Tomer Maimon wrote:
>>>>> Add to npcm845 KCS compatible string a fallback to npcm750 KCS compatible
>>>>> string becuase NPCM845 and NPCM750 BMCs are using identical KCS modules.
>>>>>
>>>>> Signed-off-by: Tomer Maimon <tmaimon77@xxxxxxxxx>
>>>>> ---
>>>>> Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt b/Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt
>>>>> index cbc10a68ddef..4fda76e63396 100644
>>>>> --- a/Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt
>>>>> +++ b/Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt
>>>>> @@ -7,7 +7,7 @@ used to perform in-band IPMI communication with their host.
>>>>> Required properties:
>>>>> - compatible : should be one of
>>>>> "nuvoton,npcm750-kcs-bmc"
>>>>> - "nuvoton,npcm845-kcs-bmc"
>>>>> + "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc"
>>>>
>>>> This is just wrong. The compatible is supposed to identify the device,
>>>> not the board the device is on. I think compatible here should be
>>>> "npcm7xx-kcs-bmc", and just use that everywhere. It's fine if that is
>>>> used on a board named npcm845.
>>> The NPCM8XX is not a board, The Nuvoton NPCM8XX is a fourth-generation
>>> BMC SoC device family.
>>
>> Ok, but same principle applies.
>>
>> If the device is exactly the same, then you would only use one of the
>> "npcm7xx-kcs-bmc" and put that in both device trees. You can use
>> "nuvoton,npcm750-kcs-bmc", it's really not that important. Or even
>> "nuvoton,npcm-kcs-bmc"
> If we use "nuvoton, npcm-kcs-bmc" we should take care of backward dts
> compatibility, and I am not sure we like to change NPCM KCS driver.
>>
>> If the device has a minor difference that can be expressed in a
>> parameter, then create a parameter for it.
>>
>> If the device has enough differences that a parameter or two doesn't
>> cover it, then you put either nuvoton,npcm750-kcs-bmc or
>> nuvoton,npcm750-kcs-bmc in the device tree. Not both. Then you need
>> two entries in the of_device_id array and you use the data field or
>> something to express the difference.
>>
>> Since there appears to be no difference, just put
>> "nuvoton,npcm750-kcs-bmc" in the npcm845 and I will drop the patch
>> adding all this. Then a patch can be added saying it applies to both
>> the 7xx and 8xx series of BMC SOCs. If you want to change the name,
>> then a patch will be needed for that, but then you will need multiple
>> entries in your device tree, but you would not document it as such, as
>> there would only be one that applies for this kernel.
>
> It little bit confusing to use nuvoton,npcm750-kcs-bmc that are
> related to NPCM7XX for NPCM8XX KCS.
> We can use the generic name "nuvoton, npcm-kcs-bmc" as you suggested

No, please don't. It will be NAKed. :)

> above but we should take care of backward dts compatibility, and I am
> not sure we like to change NPCM KCS driver.
>
> We had a disscation with Arnd, Arnd asked us to use a fallback as we
> did here if NPCM8XX device module is similar to NPCM7XX module:
> https://lore.kernel.org/lkml/20220522155046.260146-5-tmaimon77@xxxxxxxxx/
>
> I think we should use a fallback to describe the NPCM8XX KCS in the
> dt-binding document.


Best regards,
Krzysztof