From: Ondrej Jirman <[email protected]>
The PMIC supports powering off by twiddling some bits in a register. Add support
for it via pre-existing rockchip,system-power-controller DT property.
The series was tested against Linux 6.6-rc4.
Please take a look.
Thank you,
Ondřej Jirman
v3 resend:
- add tags
v3:
- use system-power-controller
- deprecate rockchip,system-power-controller
v2:
- add a missing driver patch
Ondrej Jirman (4):
dt-bindings: mfd: rk8xx: Deprecate rockchip,system-power-controller
dt-bindings: mfd: rk806: Allow system-power-controller property
mfd: rk8xx: Add support for standard system-power-controller property
mfd: rk8xx: Add support for RK806 power off
Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml | 2 ++
Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml | 3 +++
drivers/mfd/rk8xx-core.c | 7 ++++++-
7 files changed, 23 insertions(+), 1 deletion(-)
--
2.42.0
From: Ondrej Jirman <[email protected]>
Deprecate support for this property in favor of standard
system-power-controller one.
Signed-off-by: Ondrej Jirman <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
Reviewed-by: Sebastian Reichel <[email protected]>
---
Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml | 3 +++
Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml | 3 +++
5 files changed, 15 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
index 4992f71b6fc3..ec5e0fadef95 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
@@ -42,9 +42,12 @@ properties:
rockchip,system-power-controller:
type: boolean
+ deprecated: true
description:
Telling whether or not this PMIC is controlling the system power.
+ system-power-controller: true
+
wakeup-source:
type: boolean
description:
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
index f5908fa01a61..f1364c66cd62 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
@@ -37,9 +37,12 @@ properties:
rockchip,system-power-controller:
type: boolean
+ deprecated: true
description:
Telling whether or not this PMIC is controlling the system power.
+ system-power-controller: true
+
wakeup-source:
type: boolean
description:
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml
index 7fb849ac74a7..382bb2f87a54 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml
@@ -37,9 +37,12 @@ properties:
rockchip,system-power-controller:
type: boolean
+ deprecated: true
description:
Telling whether or not this PMIC is controlling the system power.
+ system-power-controller: true
+
wakeup-source:
type: boolean
description:
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
index 269fb85b2027..92b1592e8942 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
@@ -38,9 +38,12 @@ properties:
rockchip,system-power-controller:
type: boolean
+ deprecated: true
description:
Telling whether or not this PMIC is controlling the system power.
+ system-power-controller: true
+
wakeup-source:
type: boolean
description:
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
index b57c4b005cf4..038804ff708d 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
@@ -37,9 +37,12 @@ properties:
rockchip,system-power-controller:
type: boolean
+ deprecated: true
description:
Telling whether or not this PMIC is controlling the system power.
+ system-power-controller: true
+
wakeup-source:
type: boolean
description:
--
2.42.0
From: Ondrej Jirman <[email protected]>
Use DEV_OFF bit to power off the RK806 PMIC, when system-power-controller
is used in DTS.
Signed-off-by: Ondrej Jirman <[email protected]>
Reviewed-by: Sebastian Reichel <[email protected]>
---
drivers/mfd/rk8xx-core.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c
index a50a181b18e9..c47164a3ec1d 100644
--- a/drivers/mfd/rk8xx-core.c
+++ b/drivers/mfd/rk8xx-core.c
@@ -525,6 +525,10 @@ static int rk808_power_off(struct sys_off_data *data)
reg = RK805_DEV_CTRL_REG;
bit = DEV_OFF;
break;
+ case RK806_ID:
+ reg = RK806_SYS_CFG3;
+ bit = DEV_OFF;
+ break;
case RK808_ID:
reg = RK808_DEVCTRL_REG,
bit = DEV_OFF_RST;
--
2.42.0
From: Ondrej Jirman <[email protected]>
DT property rockchip,system-power-controller is now deprecated.
Signed-off-by: Ondrej Jirman <[email protected]>
Reviewed-by: Sebastian Reichel <[email protected]>
---
drivers/mfd/rk8xx-core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c
index 11a831e92da8..a50a181b18e9 100644
--- a/drivers/mfd/rk8xx-core.c
+++ b/drivers/mfd/rk8xx-core.c
@@ -685,7 +685,8 @@ int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap
if (ret)
return dev_err_probe(dev, ret, "failed to add MFD devices\n");
- if (device_property_read_bool(dev, "rockchip,system-power-controller")) {
+ if (device_property_read_bool(dev, "rockchip,system-power-controller") ||
+ device_property_read_bool(dev, "system-power-controller")) {
ret = devm_register_sys_off_handler(dev,
SYS_OFF_MODE_POWER_OFF_PREPARE, SYS_OFF_PRIO_HIGH,
&rk808_power_off, rk808);
--
2.42.0
From: Ondrej Jirman <[email protected]>
Declare support for this property.
Signed-off-by: Ondrej Jirman <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
Reviewed-by: Sebastian Reichel <[email protected]>
---
Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml
index cf2500f2e9a0..3c2b06629b75 100644
--- a/Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml
+++ b/Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml
@@ -29,6 +29,8 @@ properties:
'#gpio-cells':
const: 2
+ system-power-controller: true
+
vcc1-supply:
description:
The input supply for dcdc-reg1.
--
2.42.0
On Thu, 19 Oct 2023 18:57:22 +0200, Ondřej Jirman wrote:
> From: Ondrej Jirman <[email protected]>
>
> The PMIC supports powering off by twiddling some bits in a register. Add support
> for it via pre-existing rockchip,system-power-controller DT property.
>
> The series was tested against Linux 6.6-rc4.
>
> [...]
Applied, thanks!
[1/4] dt-bindings: mfd: rk8xx: Deprecate rockchip,system-power-controller
commit: 8b7fb96f861c17443b7e3a5c256897b72d4c205f
[2/4] dt-bindings: mfd: rk806: Allow system-power-controller property
commit: 517dbecfeafa52c8ada4bd3585d9e8b005f7e542
[3/4] mfd: rk8xx: Add support for standard system-power-controller property
commit: 4be7cc6f62beb8a56c2c8f9748a7e345a645c914
[4/4] mfd: rk8xx: Add support for RK806 power off
commit: 8dc3aab3c45eb0fba9202d2d6ad628cc7b59c17d
--
Lee Jones [李琼斯]