Re: [PATCH v11 1/2] dt-bindings: spi: add loongson spi

From: zhuyinbo
Date: Fri Jun 02 2023 - 02:47:09 EST




在 2023/6/1 下午11:30, Krzysztof Kozlowski 写道:
On 01/06/2023 11:51, zhuyinbo wrote:
Yes, it is make sense as it can reduce the workload of the community.
For the Loongson platform, the versions of spi peripherals are almost
the same, except for a few or individual SoCs. And we have also
discussed compatible internally, and we tend to define it this way.

So you have chosen different path than what's clearly recommended by
community, existing experience and documentation:

https://elixir.bootlin.com/linux/v6.1-rc1/source/Documentation/devicetree/bindings/writing-bindings.rst#L42

Family names are not accepted as specific compatibles. Whenever they
were accepted, it lead to problems. All the time.


Thank you for your documentation and advice and the Loongson platform
have loongson-2h (ls2h), loongson-2k (ls2k), loongson-2p (ls2p) or other
series SoC, which loongson-2 seems to be the family name you mentioned
and the "loongson,ls2k-spi" should be a speific compatible name.


https://lore.kernel.org/all/20220822181701.GA89665-robh@xxxxxxxxxx/
https://lore.kernel.org/all/78651e07-6b3e-4243-8e1f-fcd1dfb3ffe1@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/288f56ba9cfad46354203b7698babe91@xxxxxxxx/
https://lore.kernel.org/all/106e443a-e765-51fe-b556-e4e7e2aa771c@xxxxxxxxxx/
and many many more discussions.

You should choose carefully, because we will keep NAK-ing adding
properties to circumvent missing compatibles.


I have read the documention and patch link that you mentioned and it
seems to advice that We don't have wildcard names in the compatible
string and use wildcard names that will cause issue. and the compatible
"loongson,ls2k-spi" that wasn't a wildcard names, and if the loongson-2k
spi controller hardware upgraded or changed the I will use
"loongson,ls2k-spi-version" as a compatible, such as,
"loongson,ls2k-spi-v1.1", "loongson,ls2k-spi-v1.1a" or other.

Versions? Why? They received a lot of comments in the past, let me just
paste to avoid repeating the same:

https://lore.kernel.org/all/20220926231238.GA3132756-robh@xxxxxxxxxx/

(and many more discussions on devicetree mailing list)



I didn't notice the following words earlier about compatible in
documention and I will use "loongson,ls2k1000-spi" as ls2k1000 SoC spi
compatible, which is a very specific compatible.

"For sub-blocks/components of bigger device (e.g. SoC blocks) use rather
device-based compatible (e.g. SoC-based compatible), instead of custom
versioning of that component.For example use "vendor,soc1234-i2c"
instead of "vendor,i2c-v2".



Or am I misunderstanding and all ls2k SoCs do work with this driver and
you were talking about other, future products?

Actually, in 2k500 has one special type spi was only one cs and their's
register definition was different from common type spi thus this driver
doesn't support but this driver can support another common type spi in
2k500. for this special type spi I will add support as needed in the
future.

Bindings are for hardware, not driver. What does your driver support or
does not, matters less.


okay, I got it, and the loongson spi bindings was for loongson spi
controller hardware. if the spi controller hardware not changed in
different ls2k SoC and the spi compatible should be same thus loongson
spi compatible seems to be adhere to the bindings aggrement.

Specific compatible - yes. Unspecific - not, because you disregard the
clear message in the guideline.

okay, I got it.

Thanks.