* [PATCH v2 1/5] soc: loongson: loongson_pm2: Add dependency for INPUT
2023-08-31 11:43 [PATCH v2 0/5] soc: loongson: Fix some issues about loongson_pm2 Binbin Zhou
@ 2023-08-31 11:43 ` Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible Binbin Zhou
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Binbin Zhou @ 2023-08-31 11:43 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou, Randy Dunlap
Since commit 67694c076bd7 ("soc: loongson2_pm: add power management
support"), the Loongson-2K PM driver was added, but it didn't update the
Kconfig entry for the INPUT dependency, leading to build errors, so
update the Kconfig entry to depend on INPUT.
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
drivers/soc/loongson/loongson2_pm.o: in function `loongson2_power_button_init':
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:101:(.text+0x350): undefined reference to `input_allocate_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:109:(.text+0x3dc): undefined reference to `input_set_capability'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:111:(.text+0x3e4): undefined reference to `input_register_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:125:(.text+0x3fc): undefined reference to `input_free_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld: drivers/soc/loongson/loongson2_pm.o: in function `input_report_key':
/work/lnx/next/linux-next-20230825/LOONG64/../include/linux/input.h:425:(.text+0x58c): undefined reference to `input_event'
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/loongson/Kconfig b/drivers/soc/loongson/Kconfig
index 314e13bb3e01..368344943a93 100644
--- a/drivers/soc/loongson/Kconfig
+++ b/drivers/soc/loongson/Kconfig
@@ -20,6 +20,7 @@ config LOONGSON2_GUTS
config LOONGSON2_PM
bool "Loongson-2 SoC Power Management Controller Driver"
depends on LOONGARCH && OF
+ depends on INPUT=y
help
The Loongson-2's power management controller was ACPI, supports ACPI
S2Idle (Suspend To Idle), ACPI S3 (Suspend To RAM), ACPI S4 (Suspend To
--
2.39.3
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v2 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible
2023-08-31 11:43 [PATCH v2 0/5] soc: loongson: Fix some issues about loongson_pm2 Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 1/5] soc: loongson: loongson_pm2: Add dependency for INPUT Binbin Zhou
@ 2023-08-31 11:43 ` Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 3/5] soc: loongson: loongson_pm2: Drop useless of_device_id compatible Binbin Zhou
` (2 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Binbin Zhou @ 2023-08-31 11:43 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
The Loongson-2K series chips (ls2k0500/ls2k1000/ls2k2000) share the same
PM system controller, using ls2k0500 compatible as fallback for the
others.
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
.../soc/loongson/loongson,ls2k-pmc.yaml | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
index da2dcfeebf12..c45f5e7fc0e6 100644
--- a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
+++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
@@ -11,11 +11,16 @@ maintainers:
properties:
compatible:
- items:
- - enum:
- - loongson,ls2k0500-pmc
- - loongson,ls2k1000-pmc
- - const: syscon
+ oneOf:
+ - items:
+ - const: loongson,ls2k0500-pmc
+ - const: syscon
+ - items:
+ - enum:
+ - loongson,ls2k1000-pmc
+ - loongson,ls2k2000-pmc
+ - const: loongson,ls2k0500-pmc
+ - const: syscon
reg:
maxItems: 1
@@ -44,7 +49,7 @@ examples:
#include <dt-bindings/interrupt-controller/irq.h>
power-management@1fe27000 {
- compatible = "loongson,ls2k1000-pmc", "syscon";
+ compatible = "loongson,ls2k1000-pmc", "loongson,ls2k0500-pmc", "syscon";
reg = <0x1fe27000 0x58>;
interrupt-parent = <&liointc1>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
--
2.39.3
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v2 3/5] soc: loongson: loongson_pm2: Drop useless of_device_id compatible
2023-08-31 11:43 [PATCH v2 0/5] soc: loongson: Fix some issues about loongson_pm2 Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 1/5] soc: loongson: loongson_pm2: Add dependency for INPUT Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible Binbin Zhou
@ 2023-08-31 11:43 ` Binbin Zhou
[not found] ` <20230831-ambition-refusing-08e63b345573@spud>
2023-08-31 11:43 ` [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child Binbin Zhou
2023-08-31 11:43 ` [PATCH v2 5/5] soc: loongson: loongson_pm2: Populate children syscon nodes Binbin Zhou
4 siblings, 1 reply; 11+ messages in thread
From: Binbin Zhou @ 2023-08-31 11:43 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
Now, "loongson,ls2k0500-pmc" is used as fallback compatible, so the
ls2k1000 compatible in the driver can be dropped directly.
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/loongson2_pm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/soc/loongson/loongson2_pm.c b/drivers/soc/loongson/loongson2_pm.c
index 796add6e8b63..5ffb77afd9eb 100644
--- a/drivers/soc/loongson/loongson2_pm.c
+++ b/drivers/soc/loongson/loongson2_pm.c
@@ -197,7 +197,6 @@ static int loongson2_pm_probe(struct platform_device *pdev)
static const struct of_device_id loongson2_pm_match[] = {
{ .compatible = "loongson,ls2k0500-pmc", },
- { .compatible = "loongson,ls2k1000-pmc", },
{},
};
--
2.39.3
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child
2023-08-31 11:43 [PATCH v2 0/5] soc: loongson: Fix some issues about loongson_pm2 Binbin Zhou
` (2 preceding siblings ...)
2023-08-31 11:43 ` [PATCH v2 3/5] soc: loongson: loongson_pm2: Drop useless of_device_id compatible Binbin Zhou
@ 2023-08-31 11:43 ` Binbin Zhou
2023-09-01 9:06 ` Krzysztof Kozlowski
2023-08-31 11:43 ` [PATCH v2 5/5] soc: loongson: loongson_pm2: Populate children syscon nodes Binbin Zhou
4 siblings, 1 reply; 11+ messages in thread
From: Binbin Zhou @ 2023-08-31 11:43 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
The reboot and poweroff features are actually part of the Power
Management Unit system controller, thus allow them as its children,
instead of specifying as separate device nodes with syscon phandle.
Without it, the reboot/poweroff feature becomes unavailable.
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
.../soc/loongson/loongson,ls2k-pmc.yaml | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
index c45f5e7fc0e6..510f6cb0f084 100644
--- a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
+++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
@@ -37,6 +37,18 @@ properties:
addition, the PM need according to it to indicate that current
SoC whether support Suspend To RAM.
+ syscon-poweroff:
+ $ref: /schemas/power/reset/syscon-poweroff.yaml#
+ type: object
+ description:
+ Node for power off method
+
+ syscon-reboot:
+ $ref: /schemas/power/reset/syscon-reboot.yaml#
+ type: object
+ description:
+ Node for reboot method
+
required:
- compatible
- reg
@@ -54,4 +66,18 @@ examples:
interrupt-parent = <&liointc1>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
loongson,suspend-address = <0x0 0x1c000500>;
+
+ syscon-reboot {
+ compatible = "syscon-reboot";
+ offset = <0x30>;
+ mask = <0x1>;
+ };
+
+ syscon-poweroff {
+ compatible = "syscon-poweroff";
+ regmap = <&pmc>;
+ offset = <0x14>;
+ mask = <0x3c00>;
+ value = <0x3c00>;
+ };
};
--
2.39.3
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child
2023-08-31 11:43 ` [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child Binbin Zhou
@ 2023-09-01 9:06 ` Krzysztof Kozlowski
2023-09-01 9:27 ` Binbin Zhou
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-09-01 9:06 UTC (permalink / raw)
To: Binbin Zhou, Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch
On 31/08/2023 13:43, Binbin Zhou wrote:
> required:
> - compatible
> - reg
> @@ -54,4 +66,18 @@ examples:
> interrupt-parent = <&liointc1>;
> interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
> loongson,suspend-address = <0x0 0x1c000500>;
> +
> + syscon-reboot {
> + compatible = "syscon-reboot";
> + offset = <0x30>;
> + mask = <0x1>;
> + };
> +
> + syscon-poweroff {
> + compatible = "syscon-poweroff";
> + regmap = <&pmc>;
???
This is a friendly reminder during the review process.
It seems my previous comments were not fully addressed. Maybe my
feedback got lost between the quotes, maybe you just forgot to apply it.
Please go back to the previous discussion and either implement all
requested changes or keep discussing them.
Thank you.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child
2023-09-01 9:06 ` Krzysztof Kozlowski
@ 2023-09-01 9:27 ` Binbin Zhou
2023-09-01 11:44 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Binbin Zhou @ 2023-09-01 9:27 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Huacai Chen, loongson-kernel,
soc, devicetree, linux-pm, Xuerui Wang, loongarch
Hi Krzysztof:
On Fri, Sep 1, 2023 at 5:06 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 31/08/2023 13:43, Binbin Zhou wrote:
> > required:
> > - compatible
> > - reg
> > @@ -54,4 +66,18 @@ examples:
> > interrupt-parent = <&liointc1>;
> > interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
> > loongson,suspend-address = <0x0 0x1c000500>;
> > +
> > + syscon-reboot {
> > + compatible = "syscon-reboot";
> > + offset = <0x30>;
> > + mask = <0x1>;
> > + };
> > +
> > + syscon-poweroff {
> > + compatible = "syscon-poweroff";
> > + regmap = <&pmc>;
>
> ???
I did notice that commit [1] changed "regmap" to "unrequired" for
"syscon-reboot", but "syscon-poweroff" did not do the same.
So, at least under the current "syscon-poweroff" rule, "regmap" is "required".
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml?h=v6.5#n41
I had my doubts before, but seeing that some dts do have
"syscon-poweroff" as a separate node, I assumed there was a
difference.
commit[1]: 2140d68d69d4 dt-bindings: power: reset: Unrequired regmap
property in syscon-reboot node
Thanks.
Binbin
>
> This is a friendly reminder during the review process.
>
> It seems my previous comments were not fully addressed. Maybe my
> feedback got lost between the quotes, maybe you just forgot to apply it.
> Please go back to the previous discussion and either implement all
> requested changes or keep discussing them.
>
> Thank you.
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child
2023-09-01 9:27 ` Binbin Zhou
@ 2023-09-01 11:44 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-09-01 11:44 UTC (permalink / raw)
To: Binbin Zhou
Cc: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Huacai Chen, loongson-kernel,
soc, devicetree, linux-pm, Xuerui Wang, loongarch
On 01/09/2023 11:27, Binbin Zhou wrote:
> Hi Krzysztof:
>
>
> On Fri, Sep 1, 2023 at 5:06 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 31/08/2023 13:43, Binbin Zhou wrote:
>>> required:
>>> - compatible
>>> - reg
>>> @@ -54,4 +66,18 @@ examples:
>>> interrupt-parent = <&liointc1>;
>>> interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
>>> loongson,suspend-address = <0x0 0x1c000500>;
>>> +
>>> + syscon-reboot {
>>> + compatible = "syscon-reboot";
>>> + offset = <0x30>;
>>> + mask = <0x1>;
>>> + };
>>> +
>>> + syscon-poweroff {
>>> + compatible = "syscon-poweroff";
>>> + regmap = <&pmc>;
>>
>> ???
>
> I did notice that commit [1] changed "regmap" to "unrequired" for
> "syscon-reboot", but "syscon-poweroff" did not do the same.
> So, at least under the current "syscon-poweroff" rule, "regmap" is "required".
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml?h=v6.5#n41
>
> I had my doubts before, but seeing that some dts do have
> "syscon-poweroff" as a separate node, I assumed there was a
> difference.
>
> commit[1]: 2140d68d69d4 dt-bindings: power: reset: Unrequired regmap
> property in syscon-reboot node
>
You are right. I wonder why Serge did not change others.
Looks good, thanks for clarification.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 5/5] soc: loongson: loongson_pm2: Populate children syscon nodes
2023-08-31 11:43 [PATCH v2 0/5] soc: loongson: Fix some issues about loongson_pm2 Binbin Zhou
` (3 preceding siblings ...)
2023-08-31 11:43 ` [PATCH v2 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child Binbin Zhou
@ 2023-08-31 11:43 ` Binbin Zhou
4 siblings, 0 replies; 11+ messages in thread
From: Binbin Zhou @ 2023-08-31 11:43 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
The syscon poweroff and reboot nodes logically belong to the Power
Management Unit so populate possible children.
Without it, the reboot/poweroff feature becomes unavailable.
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/loongson2_pm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/soc/loongson/loongson2_pm.c b/drivers/soc/loongson/loongson2_pm.c
index 5ffb77afd9eb..b8e5e1e3528a 100644
--- a/drivers/soc/loongson/loongson2_pm.c
+++ b/drivers/soc/loongson/loongson2_pm.c
@@ -11,6 +11,7 @@
#include <linux/input.h>
#include <linux/suspend.h>
#include <linux/interrupt.h>
+#include <linux/of_platform.h>
#include <linux/pm_wakeirq.h>
#include <linux/platform_device.h>
#include <asm/bootinfo.h>
@@ -192,6 +193,11 @@ static int loongson2_pm_probe(struct platform_device *pdev)
if (loongson_sysconf.suspend_addr)
suspend_set_ops(&loongson2_suspend_ops);
+ /* Populate children */
+ retval = devm_of_platform_populate(dev);
+ if (retval)
+ dev_err(dev, "Error populating children, reboot and poweroff might not work properly\n");
+
return 0;
}
--
2.39.3
^ permalink raw reply related [flat|nested] 11+ messages in thread