Re: [PATCH v3 2/3] soc: dt-bindings: add loongson-2 pm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





在 2023/6/16 下午4:03, Conor Dooley 写道:
On Fri, Jun 16, 2023 at 03:53:38PM +0800, zhuyinbo wrote:
在 2023/6/16 下午2:58, Conor Dooley 写道:

Rob, could you take a look at this please? On v2 while you were away I
was kinda struggling w/ suspend-address & whether it made sense.

The v2 & v1 are here:
https://lore.kernel.org/all/20230522093156.7108-3-zhuyinbo@xxxxxxxxxxx/
https://lore.kernel.org/all/20230517073149.31980-3-zhuyinbo@xxxxxxxxxxx/

On Thu, Jun 15, 2023 at 05:17:56PM +0800, Yinbo Zhu wrote:
Add the Loongson-2 SoC Power Management Controller binding with DT
schema format using json-schema.

Signed-off-by: Yinbo Zhu <zhuyinbo@xxxxxxxxxxx>
---
   .../soc/loongson/loongson,ls2k-pmc.yaml       | 53 +++++++++++++++++++
   MAINTAINERS                                   |  6 +++
   2 files changed, 59 insertions(+)
   create mode 100644 Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml

diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
new file mode 100644
index 000000000000..32499bd10f8c
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml

The filename should ideally match one of the compatibles.


I learn about that yaml file name need match this compatible, but here
using a specific compatible as the name of the yaml file seems a bit
inappropriate . After all, this yaml file needs to cover lots of ls2k
series SoC rather than a specific SoC, and the yaml file naming in
kernel drivers is basically the same that use cover a series SoC's way.


@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/loongson/loongson,ls2k-pmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson-2 Power Manager controller
+
+maintainers:
+  - Yinbo Zhu <zhuyinbo@xxxxxxxxxxx>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - loongson,ls2k1000-pmc
+              - loongson,ls2k0500-pmc

I notice the driver only supports one of these two. Is there a reason
for that?


The driver can support both of the above, and I will add another.

The driver only contains
	static const struct of_device_id loongson2_pm_match[] = {
	       { .compatible = "loongson,ls2k1000-pmc", },
	       {},
	};
so it only supports the 2k1000 right now. Are the 2k1000 and 2k0500
compatible with eachother?


They are not completely compatible, 2k500 may still require some work to
be done, but I can confirm this driver was can compatible 2k0500 and
2k1000. for match yaml file, and I can add 2k0500 compatible in driver.


+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  suspend-address:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The "suspend-address" is a deep sleep state (Suspend To RAM)
+      firmware entry address which was jumped from kernel and it's
+      value was dependent on specific platform firmware code. In
+      addition, the PM need according to it to indicate that current
+      SoC whether support Suspend To RAM.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    pmc: pm@1fe27000 {
         ^^^

nit: this label isn't used, so you can drop it.


This lable need to be used by poweroff and reboot node but I don't add
these node that reference pmc here.

Right, in the dts it might need those, but not in the example in the
binding.


okay, I got it.

Thanks,
Yinbo




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux