devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node
@ 2023-09-01 12:00 Krzysztof Kozlowski
  2023-09-01 12:00 ` [PATCH 2/3] power: reset: syscon-poweroff: simplify pdev->dev usage Krzysztof Kozlowski
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-09-01 12:00 UTC (permalink / raw)
  To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-pm, devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

Just like syscon-reboot device, the syscon-poweroff is supposed to be a
child of syscon node, thus we can take the same approach as
syscon-poweroff: deprecate the 'regmap' field in favor of taking it from
the parent's node.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

See also syscon-regmap:
https://lore.kernel.org/all/20200526135102.21236-1-Sergey.Semin@baikalelectronics.ru/
---
 .../bindings/power/reset/syscon-poweroff.yaml          | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml b/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
index 3412fe7e1e80..3c58f8251882 100644
--- a/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
+++ b/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
@@ -15,6 +15,9 @@ description: |+
   defined by the register map pointed by syscon reference plus the offset
   with the value and mask defined in the poweroff node.
   Default will be little endian mode, 32 bit access only.
+  The SYSCON registers map is normally retrieved from the parental dt-node. So
+  the SYSCON poweroff node should be represented as a sub-node of a "syscon",
+  "simple-mfd" node.
 
 properties:
   compatible:
@@ -30,7 +33,10 @@ properties:
 
   regmap:
     $ref: /schemas/types.yaml#/definitions/phandle
-    description: Phandle to the register map node.
+    deprecated: true
+    description:
+      Phandle to the register map node. This property is deprecated in favor of
+      the syscon-poweroff node been a child of a system controller node.
 
   value:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -38,7 +44,6 @@ properties:
 
 required:
   - compatible
-  - regmap
   - offset
 
 additionalProperties: false
@@ -56,7 +61,6 @@ examples:
   - |
     poweroff {
         compatible = "syscon-poweroff";
-        regmap = <&regmapnode>;
         offset = <0x0>;
         mask = <0x7a>;
     };
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] power: reset: syscon-poweroff: simplify pdev->dev usage
  2023-09-01 12:00 [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
@ 2023-09-01 12:00 ` Krzysztof Kozlowski
  2023-09-01 12:00 ` [PATCH 3/3] power: reset: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-09-01 12:00 UTC (permalink / raw)
  To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-pm, devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

Make the probe() code a bit simpler and shorter by storing all the
'&pdev->dev' as 'dev'.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/power/reset/syscon-poweroff.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/power/reset/syscon-poweroff.c b/drivers/power/reset/syscon-poweroff.c
index 430d440d55c6..11b955983279 100644
--- a/drivers/power/reset/syscon-poweroff.c
+++ b/drivers/power/reset/syscon-poweroff.c
@@ -32,23 +32,24 @@ static void syscon_poweroff(void)
 
 static int syscon_poweroff_probe(struct platform_device *pdev)
 {
+	struct device *dev = &pdev->dev;
 	int mask_err, value_err;
 
-	map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "regmap");
+	map = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap");
 	if (IS_ERR(map)) {
-		dev_err(&pdev->dev, "unable to get syscon");
+		dev_err(dev, "unable to get syscon");
 		return PTR_ERR(map);
 	}
 
-	if (of_property_read_u32(pdev->dev.of_node, "offset", &offset)) {
-		dev_err(&pdev->dev, "unable to read 'offset'");
+	if (of_property_read_u32(dev->of_node, "offset", &offset)) {
+		dev_err(dev, "unable to read 'offset'");
 		return -EINVAL;
 	}
 
-	value_err = of_property_read_u32(pdev->dev.of_node, "value", &value);
-	mask_err = of_property_read_u32(pdev->dev.of_node, "mask", &mask);
+	value_err = of_property_read_u32(dev->of_node, "value", &value);
+	mask_err = of_property_read_u32(dev->of_node, "mask", &mask);
 	if (value_err && mask_err) {
-		dev_err(&pdev->dev, "unable to read 'value' and 'mask'");
+		dev_err(dev, "unable to read 'value' and 'mask'");
 		return -EINVAL;
 	}
 
@@ -62,7 +63,7 @@ static int syscon_poweroff_probe(struct platform_device *pdev)
 	}
 
 	if (pm_power_off) {
-		dev_err(&pdev->dev, "pm_power_off already claimed for %ps",
+		dev_err(dev, "pm_power_off already claimed for %ps",
 			pm_power_off);
 		return -EBUSY;
 	}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] power: reset: syscon-poweroff: get regmap from parent node
  2023-09-01 12:00 [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
  2023-09-01 12:00 ` [PATCH 2/3] power: reset: syscon-poweroff: simplify pdev->dev usage Krzysztof Kozlowski
@ 2023-09-01 12:00 ` Krzysztof Kozlowski
  2023-09-01 15:57 ` [PATCH 1/3] dt-bindings: power: " Conor Dooley
  2023-09-12 19:08 ` Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-09-01 12:00 UTC (permalink / raw)
  To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-pm, devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

Just like syscon-reboot device, the syscon-poweroff is supposed to be a
child of syscon node, thus we can take the same approach as
syscon-poweroff: deprecate the 'regmap' field in favor of taking it from
the parent's node.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/power/reset/syscon-poweroff.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/power/reset/syscon-poweroff.c b/drivers/power/reset/syscon-poweroff.c
index 11b955983279..764aeea6c34a 100644
--- a/drivers/power/reset/syscon-poweroff.c
+++ b/drivers/power/reset/syscon-poweroff.c
@@ -37,8 +37,11 @@ static int syscon_poweroff_probe(struct platform_device *pdev)
 
 	map = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap");
 	if (IS_ERR(map)) {
-		dev_err(dev, "unable to get syscon");
-		return PTR_ERR(map);
+		map = syscon_node_to_regmap(dev->parent->of_node);
+		if (IS_ERR(map)) {
+			dev_err(dev, "unable to get syscon");
+			return PTR_ERR(map);
+		}
 	}
 
 	if (of_property_read_u32(dev->of_node, "offset", &offset)) {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node
  2023-09-01 12:00 [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
  2023-09-01 12:00 ` [PATCH 2/3] power: reset: syscon-poweroff: simplify pdev->dev usage Krzysztof Kozlowski
  2023-09-01 12:00 ` [PATCH 3/3] power: reset: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
@ 2023-09-01 15:57 ` Conor Dooley
  2023-09-12 19:08 ` Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Conor Dooley @ 2023-09-01 15:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-pm, devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2525 bytes --]

Yo,

Two minor nits that look like copy-paste duplication of the same
problems in the syscon-reboot binding.

On Fri, Sep 01, 2023 at 02:00:55PM +0200, Krzysztof Kozlowski wrote:
> Just like syscon-reboot device, the syscon-poweroff is supposed to be a
> child of syscon node, thus we can take the same approach as
> syscon-poweroff: deprecate the 'regmap' field in favor of taking it from
> the parent's node.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> See also syscon-regmap:
> https://lore.kernel.org/all/20200526135102.21236-1-Sergey.Semin@baikalelectronics.ru/
> ---
>  .../bindings/power/reset/syscon-poweroff.yaml          | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml b/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
> index 3412fe7e1e80..3c58f8251882 100644
> --- a/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
> +++ b/Documentation/devicetree/bindings/power/reset/syscon-poweroff.yaml
> @@ -15,6 +15,9 @@ description: |+
>    defined by the register map pointed by syscon reference plus the offset
>    with the value and mask defined in the poweroff node.
>    Default will be little endian mode, 32 bit access only.
> +  The SYSCON registers map is normally retrieved from the parental dt-node. So

s/registers/register/, no?

> +  the SYSCON poweroff node should be represented as a sub-node of a "syscon",
> +  "simple-mfd" node.
>  
>  properties:
>    compatible:
> @@ -30,7 +33,10 @@ properties:
>  
>    regmap:
>      $ref: /schemas/types.yaml#/definitions/phandle
> -    description: Phandle to the register map node.
> +    deprecated: true
> +    description:
> +      Phandle to the register map node. This property is deprecated in favor of
> +      the syscon-poweroff node been a child of a system controller node.

s/been/being/

Otherwise,
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

>  
>    value:
>      $ref: /schemas/types.yaml#/definitions/uint32
> @@ -38,7 +44,6 @@ properties:
>  
>  required:
>    - compatible
> -  - regmap
>    - offset
>  
>  additionalProperties: false
> @@ -56,7 +61,6 @@ examples:
>    - |
>      poweroff {
>          compatible = "syscon-poweroff";
> -        regmap = <&regmapnode>;
>          offset = <0x0>;
>          mask = <0x7a>;
>      };
> -- 
> 2.34.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node
  2023-09-01 12:00 [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
                   ` (2 preceding siblings ...)
  2023-09-01 15:57 ` [PATCH 1/3] dt-bindings: power: " Conor Dooley
@ 2023-09-12 19:08 ` Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Sebastian Reichel @ 2023-09-12 19:08 UTC (permalink / raw)
  To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-pm, devicetree, linux-kernel, Krzysztof Kozlowski


On Fri, 01 Sep 2023 14:00:55 +0200, Krzysztof Kozlowski wrote:
> Just like syscon-reboot device, the syscon-poweroff is supposed to be a
> child of syscon node, thus we can take the same approach as
> syscon-poweroff: deprecate the 'regmap' field in favor of taking it from
> the parent's node.
> 
> 

Applied, thanks!

[1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node
      commit: 716293381a0f9a400d0010628a9ba4354c2bea40
[2/3] power: reset: syscon-poweroff: simplify pdev->dev usage
      commit: 6f9c8a1338d90d150767331d4fab051fb8abdba5
[3/3] power: reset: syscon-poweroff: get regmap from parent node
      commit: 92bbb93aaaefe14c01eac18df46f8260ee4c2825

Best regards,
-- 
Sebastian Reichel <sebastian.reichel@collabora.com>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-12 19:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-01 12:00 [PATCH 1/3] dt-bindings: power: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
2023-09-01 12:00 ` [PATCH 2/3] power: reset: syscon-poweroff: simplify pdev->dev usage Krzysztof Kozlowski
2023-09-01 12:00 ` [PATCH 3/3] power: reset: syscon-poweroff: get regmap from parent node Krzysztof Kozlowski
2023-09-01 15:57 ` [PATCH 1/3] dt-bindings: power: " Conor Dooley
2023-09-12 19:08 ` Sebastian Reichel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).