Re: [PATCH 9/9] ARM: dts: uniphier: Remove compatible "snps,dw-pcie-ep" from Pro5 pcie-ep node

From: Kunihiko Hayashi
Date: Tue Aug 02 2022 - 09:11:05 EST


On 2022/08/02 17:33, Krzysztof Kozlowski wrote:
On 30/07/2022 13:58, Arnd Bergmann wrote:
On Mon, Jul 4, 2022 at 2:20 AM Kunihiko Hayashi
<hayashi.kunihiko@xxxxxxxxxxxxx> wrote:

UniPhier PCIe endpoint controller doesn't use "snps,dw-pcie-ep"
compatible,
so this is no longer needed. Remove the compatible string from the
pcie-ep
node to fix the following warning.

uniphier-pro5-epcore.dtb: pcie@66000000: compatible:
['socionext,uniphier-pro5-pcie-ep', 'snps,dw-pcie-ep'] is too long
From schema:
Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml


This sounds like a problem with the binding rather than the dt file. Is
this not
a designware pci endpoint? Should it be documented in that binding
instead?

In term of the binding, it seems that the current binding doesn't allow descriptions
that list two compatibles. There is something wrong with the binding.

Depends. We had one or two similar cases, where we dropped the snps/dw
generic compatible, because device was actually quite different and
could not match against snps/dw compatible. IOW, if device bound/matched
via generic compatible it would be entirely non-operational. Logically I
think it is okay to drop the generic compatible. Different question is
any ABI break.

In term of the controller, we can add dw general compatible if the more generic
driver (pcie-designware-plat) works on the controller.

However, the generic driver can't do the initialization what the controller
needs, so we can add controller-specific compatible only.
The commit bf2942a8b7c3 ("arm64: tegra: Fix Tegra194 PCIe EP compatible string")
removes the generic compatible for the same reason.

This patch suggests removing the generic compatible for the former reason,
though, I might suggest it for the controller reason.

Thank you,

---
Best Regards
Kunihiko Hayashi