On 25/05/2023 04:22, zhuyinbo wrote:
在 2023/5/24 下午6:29, Conor Dooley 写道:
On Wed, May 24, 2023 at 05:44:38PM +0800, zhuyinbo wrote:
在 2023/5/24 下午4:56, Conor Dooley 写道:
On Mon, May 22, 2023 at 03:10:29PM +0800, Yinbo Zhu wrote:
Add the Loongson platform spi binding with DT schema format using
json-schema.
Signed-off-by: Yinbo Zhu <zhuyinbo@xxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
---
.../bindings/spi/loongson,ls2k-spi.yaml | 41 +++++++++++++++++++
MAINTAINERS | 6 +++
2 files changed, 47 insertions(+)
create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls2k-spi.yaml
diff --git a/Documentation/devicetree/bindings/spi/loongson,ls2k-spi.yaml b/Documentation/devicetree/bindings/spi/loongson,ls2k-spi.yaml
new file mode 100644
index 000000000000..d0be6e5378d7
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/loongson,ls2k-spi.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/loongson,ls2k-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson SPI controller
+
+maintainers:
+ - Yinbo Zhu <zhuyinbo@xxxxxxxxxxx>
+
+allOf:
+ - $ref: /schemas/spi/spi-controller.yaml#
+
+properties:
+ compatible:
+ enum:
+ - loongson,ls2k-spi
I am sorry to jump in here at such a late stage with a (potentially)
trivial question. "ls2k" is the SoC family rather than a specific model
as far as I understand.
The answer is probably yes, but do all SoCs in the family have an
identical version of the IP?
No, but the spi supported by this loongson spi driver are all the same
identical version, and other type or verion spi will be supported as
needed in the future.
Does having a catch-all compatible make sense then when not all SoCs in
the ls2k family will actually be able to use this driver?
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.
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.
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.