linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND 0/2] soc: amlogic: add support for the Meson AXG Power Controller
@ 2020-09-04 16:16 Neil Armstrong
  2020-09-04 16:16 ` [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings Neil Armstrong
  2020-09-04 16:16 ` [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs Neil Armstrong
  0 siblings, 2 replies; 7+ messages in thread
From: Neil Armstrong @ 2020-09-04 16:16 UTC (permalink / raw)
  To: khilman; +Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel

This adds the bindings and support for the Power Controller found in the
Amlogic AXG SoCs.

The Power Controller in the Amlogic AXG SoCs is similar to the GXL one
but with less VPU memory domains to enable and a supplementary Audio
memory power domain.

Neil Armstrong (2):
  dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power
    controller bindings
  soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs

 .../bindings/power/amlogic,meson-ee-pwrc.yaml | 23 ++++++++++++++--
 drivers/soc/amlogic/meson-ee-pwrc.c           | 26 +++++++++++++++++++
 include/dt-bindings/power/meson-axg-power.h   | 14 ++++++++++
 3 files changed, 61 insertions(+), 2 deletions(-)
 create mode 100644 include/dt-bindings/power/meson-axg-power.h

-- 
2.22.0


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

* [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings
  2020-09-04 16:16 [PATCH RESEND 0/2] soc: amlogic: add support for the Meson AXG Power Controller Neil Armstrong
@ 2020-09-04 16:16 ` Neil Armstrong
  2020-09-14 22:58   ` [PATCH RESEND 1/2] dt-bindings: power: amlogic, meson-ee-pwrc: " Rob Herring
  2020-09-15 19:43   ` Martin Blumenstingl
  2020-09-04 16:16 ` [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs Neil Armstrong
  1 sibling, 2 replies; 7+ messages in thread
From: Neil Armstrong @ 2020-09-04 16:16 UTC (permalink / raw)
  To: khilman, devicetree
  Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel

This adds the bindings of the Power Controller found in the Amlogic AXG SoCs.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 .../bindings/power/amlogic,meson-ee-pwrc.yaml | 23 +++++++++++++++++--
 include/dt-bindings/power/meson-axg-power.h   | 14 +++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 include/dt-bindings/power/meson-axg-power.h

diff --git a/Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml b/Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml
index 4f524f822e84..d30f85cc395e 100644
--- a/Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml
+++ b/Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml
@@ -27,6 +27,7 @@ properties:
       - amlogic,meson8b-pwrc
       - amlogic,meson8m2-pwrc
       - amlogic,meson-gxbb-pwrc
+      - amlogic,meson-axg-pwrc
       - amlogic,meson-g12a-pwrc
       - amlogic,meson-sm1-pwrc
 
@@ -42,11 +43,11 @@ properties:
       - const: vapb
 
   resets:
-    minItems: 11
+    minItems: 5
     maxItems: 12
 
   reset-names:
-    minItems: 11
+    minItems: 5
     maxItems: 12
 
   "#power-domain-cells":
@@ -107,6 +108,24 @@ allOf:
         - resets
         - reset-names
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - amlogic,meson-axg-pwrc
+    then:
+      properties:
+        reset-names:
+          items:
+            - const: viu
+            - const: venc
+            - const: vcbus
+            - const: vencl
+            - const: vid_lock
+      required:
+        - resets
+        - reset-names
+
   - if:
       properties:
         compatible:
diff --git a/include/dt-bindings/power/meson-axg-power.h b/include/dt-bindings/power/meson-axg-power.h
new file mode 100644
index 000000000000..e5243884b249
--- /dev/null
+++ b/include/dt-bindings/power/meson-axg-power.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
+/*
+ * Copyright (c) 2020 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#ifndef _DT_BINDINGS_MESON_AXG_POWER_H
+#define _DT_BINDINGS_MESON_AXG_POWER_H
+
+#define PWRC_AXG_VPU_ID			0
+#define PWRC_AXG_ETHERNET_MEM_ID	1
+#define PWRC_AXG_AUDIO_ID		2
+
+#endif
-- 
2.22.0


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

* [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs
  2020-09-04 16:16 [PATCH RESEND 0/2] soc: amlogic: add support for the Meson AXG Power Controller Neil Armstrong
  2020-09-04 16:16 ` [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings Neil Armstrong
@ 2020-09-04 16:16 ` Neil Armstrong
  2020-09-15 19:45   ` Martin Blumenstingl
  1 sibling, 1 reply; 7+ messages in thread
From: Neil Armstrong @ 2020-09-04 16:16 UTC (permalink / raw)
  To: khilman; +Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel

The Power Controller in the Amlogic AXG SoCs is similar to the GXL one
but with less VPU memory domains to enable and a supplementary Audio
memory power domain.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 drivers/soc/amlogic/meson-ee-pwrc.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
index 43665b77aa9e..81834eb166d0 100644
--- a/drivers/soc/amlogic/meson-ee-pwrc.c
+++ b/drivers/soc/amlogic/meson-ee-pwrc.c
@@ -15,6 +15,7 @@
 #include <linux/reset.h>
 #include <linux/clk.h>
 #include <dt-bindings/power/meson8-power.h>
+#include <dt-bindings/power/meson-axg-power.h>
 #include <dt-bindings/power/meson-g12a-power.h>
 #include <dt-bindings/power/meson-gxbb-power.h>
 #include <dt-bindings/power/meson-sm1-power.h>
@@ -141,6 +142,11 @@ static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_vpu[] = {
 	VPU_HHI_MEMPD(HHI_MEM_PD_REG0),
 };
 
+static struct meson_ee_pwrc_mem_domain axg_pwrc_mem_vpu[] = {
+	VPU_MEMPD(HHI_VPU_MEM_PD_REG0),
+	VPU_HHI_MEMPD(HHI_MEM_PD_REG0),
+};
+
 static struct meson_ee_pwrc_mem_domain gxbb_pwrc_mem_vpu[] = {
 	VPU_MEMPD(HHI_VPU_MEM_PD_REG0),
 	VPU_MEMPD(HHI_VPU_MEM_PD_REG1),
@@ -190,6 +196,10 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_ge2d[] = {
 	{ HHI_MEM_PD_REG0, GENMASK(25, 18) },
 };
 
+static struct meson_ee_pwrc_mem_domain axg_pwrc_mem_audio[] = {
+	{ HHI_MEM_PD_REG0, GENMASK(5, 4) },
+};
+
 static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
 	{ HHI_MEM_PD_REG0, GENMASK(5, 4) },
 	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(1, 0) },
@@ -237,6 +247,13 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
 	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
 };
 
+static struct meson_ee_pwrc_domain_desc axg_pwrc_domains[] = {
+	[PWRC_AXG_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, axg_pwrc_mem_vpu,
+				     pwrc_ee_get_power, 5, 2),
+	[PWRC_AXG_ETHERNET_MEM_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
+	[PWRC_AXG_AUDIO_ID] = MEM_PD("AUDIO", axg_pwrc_mem_audio),
+};
+
 static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {
 	[PWRC_GXBB_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, gxbb_pwrc_mem_vpu,
 				     pwrc_ee_get_power, 12, 2),
@@ -529,6 +546,11 @@ static struct meson_ee_pwrc_domain_data meson_ee_g12a_pwrc_data = {
 	.domains = g12a_pwrc_domains,
 };
 
+static struct meson_ee_pwrc_domain_data meson_ee_axg_pwrc_data = {
+	.count = ARRAY_SIZE(axg_pwrc_domains),
+	.domains = axg_pwrc_domains,
+};
+
 static struct meson_ee_pwrc_domain_data meson_ee_gxbb_pwrc_data = {
 	.count = ARRAY_SIZE(gxbb_pwrc_domains),
 	.domains = gxbb_pwrc_domains,
@@ -566,6 +588,10 @@ static const struct of_device_id meson_ee_pwrc_match_table[] = {
 		.compatible = "amlogic,meson-gxbb-pwrc",
 		.data = &meson_ee_gxbb_pwrc_data,
 	},
+	{
+		.compatible = "amlogic,meson-axg-pwrc",
+		.data = &meson_ee_axg_pwrc_data,
+	},
 	{
 		.compatible = "amlogic,meson-g12a-pwrc",
 		.data = &meson_ee_g12a_pwrc_data,
-- 
2.22.0


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

* Re: [PATCH RESEND 1/2] dt-bindings: power: amlogic, meson-ee-pwrc: add Amlogic AXG power controller bindings
  2020-09-04 16:16 ` [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings Neil Armstrong
@ 2020-09-14 22:58   ` Rob Herring
  2020-09-15 19:43   ` Martin Blumenstingl
  1 sibling, 0 replies; 7+ messages in thread
From: Rob Herring @ 2020-09-14 22:58 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: linux-amlogic, linux-arm-kernel, khilman, linux-kernel, devicetree

On Fri, 04 Sep 2020 18:16:53 +0200, Neil Armstrong wrote:
> This adds the bindings of the Power Controller found in the Amlogic AXG SoCs.
> 
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  .../bindings/power/amlogic,meson-ee-pwrc.yaml | 23 +++++++++++++++++--
>  include/dt-bindings/power/meson-axg-power.h   | 14 +++++++++++
>  2 files changed, 35 insertions(+), 2 deletions(-)
>  create mode 100644 include/dt-bindings/power/meson-axg-power.h
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH RESEND 1/2] dt-bindings: power: amlogic, meson-ee-pwrc: add Amlogic AXG power controller bindings
  2020-09-04 16:16 ` [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings Neil Armstrong
  2020-09-14 22:58   ` [PATCH RESEND 1/2] dt-bindings: power: amlogic, meson-ee-pwrc: " Rob Herring
@ 2020-09-15 19:43   ` Martin Blumenstingl
  1 sibling, 0 replies; 7+ messages in thread
From: Martin Blumenstingl @ 2020-09-15 19:43 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: khilman, devicetree, linux-amlogic, linux-kernel, linux-arm-kernel

On Fri, Sep 4, 2020 at 6:17 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> This adds the bindings of the Power Controller found in the Amlogic AXG SoCs.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

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

* Re: [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs
  2020-09-04 16:16 ` [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs Neil Armstrong
@ 2020-09-15 19:45   ` Martin Blumenstingl
  2020-09-16  7:17     ` Neil Armstrong
  0 siblings, 1 reply; 7+ messages in thread
From: Martin Blumenstingl @ 2020-09-15 19:45 UTC (permalink / raw)
  To: Neil Armstrong; +Cc: khilman, linux-amlogic, linux-kernel, linux-arm-kernel

Hi Neil,

On Fri, Sep 4, 2020 at 6:17 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> The Power Controller in the Amlogic AXG SoCs is similar to the GXL one
> but with less VPU memory domains to enable and a supplementary Audio
> memory power domain.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
I have three small comments below - no show-stoppers though:
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

[...]
> +static struct meson_ee_pwrc_mem_domain axg_pwrc_mem_vpu[] = {
> +       VPU_MEMPD(HHI_VPU_MEM_PD_REG0),
> +       VPU_HHI_MEMPD(HHI_MEM_PD_REG0),
> +};
> +
I would put this above the g12a one

[...]
> +static struct meson_ee_pwrc_domain_desc axg_pwrc_domains[] = {
> +       [PWRC_AXG_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, axg_pwrc_mem_vpu,
> +                                    pwrc_ee_get_power, 5, 2),
> +       [PWRC_AXG_ETHERNET_MEM_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
> +       [PWRC_AXG_AUDIO_ID] = MEM_PD("AUDIO", axg_pwrc_mem_audio),
> +};
> +
same here

[...]
>  static struct meson_ee_pwrc_domain_data meson_ee_gxbb_pwrc_data = {
>         .count = ARRAY_SIZE(gxbb_pwrc_domains),
>         .domains = gxbb_pwrc_domains,
> @@ -566,6 +588,10 @@ static const struct of_device_id meson_ee_pwrc_match_table[] = {
>                 .compatible = "amlogic,meson-gxbb-pwrc",
>                 .data = &meson_ee_gxbb_pwrc_data,
>         },
> +       {
> +               .compatible = "amlogic,meson-axg-pwrc",
> +               .data = &meson_ee_axg_pwrc_data,
> +       },
this one I would put above the GXBB one


Best regards,
Martin

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

* Re: [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs
  2020-09-15 19:45   ` Martin Blumenstingl
@ 2020-09-16  7:17     ` Neil Armstrong
  0 siblings, 0 replies; 7+ messages in thread
From: Neil Armstrong @ 2020-09-16  7:17 UTC (permalink / raw)
  To: Martin Blumenstingl
  Cc: khilman, linux-amlogic, linux-kernel, linux-arm-kernel

On 15/09/2020 21:45, Martin Blumenstingl wrote:
> Hi Neil,
> 
> On Fri, Sep 4, 2020 at 6:17 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>>
>> The Power Controller in the Amlogic AXG SoCs is similar to the GXL one
>> but with less VPU memory domains to enable and a supplementary Audio
>> memory power domain.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> I have three small comments below - no show-stoppers though:
> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> 
> [...]
>> +static struct meson_ee_pwrc_mem_domain axg_pwrc_mem_vpu[] = {
>> +       VPU_MEMPD(HHI_VPU_MEM_PD_REG0),
>> +       VPU_HHI_MEMPD(HHI_MEM_PD_REG0),
>> +};
>> +
> I would put this above the g12a one

Sure, I'll change for v2

> 
> [...]
>> +static struct meson_ee_pwrc_domain_desc axg_pwrc_domains[] = {
>> +       [PWRC_AXG_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, axg_pwrc_mem_vpu,
>> +                                    pwrc_ee_get_power, 5, 2),
>> +       [PWRC_AXG_ETHERNET_MEM_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
>> +       [PWRC_AXG_AUDIO_ID] = MEM_PD("AUDIO", axg_pwrc_mem_audio),
>> +};
>> +
> same here

Sure, I'll change for v2


> 
> [...]
>>  static struct meson_ee_pwrc_domain_data meson_ee_gxbb_pwrc_data = {
>>         .count = ARRAY_SIZE(gxbb_pwrc_domains),
>>         .domains = gxbb_pwrc_domains,
>> @@ -566,6 +588,10 @@ static const struct of_device_id meson_ee_pwrc_match_table[] = {
>>                 .compatible = "amlogic,meson-gxbb-pwrc",
>>                 .data = &meson_ee_gxbb_pwrc_data,
>>         },
>> +       {
>> +               .compatible = "amlogic,meson-axg-pwrc",
>> +               .data = &meson_ee_axg_pwrc_data,
>> +       },
> this one I would put above the GXBB one

Sure, I'll change for v2

Thanks for the review,
Neil
> 
> 
> Best regards,
> Martin
> 


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

end of thread, other threads:[~2020-09-16  7:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-04 16:16 [PATCH RESEND 0/2] soc: amlogic: add support for the Meson AXG Power Controller Neil Armstrong
2020-09-04 16:16 ` [PATCH RESEND 1/2] dt-bindings: power: amlogic,meson-ee-pwrc: add Amlogic AXG power controller bindings Neil Armstrong
2020-09-14 22:58   ` [PATCH RESEND 1/2] dt-bindings: power: amlogic, meson-ee-pwrc: " Rob Herring
2020-09-15 19:43   ` Martin Blumenstingl
2020-09-04 16:16 ` [PATCH RESEND 2/2] soc: amlogic: meson-ee-pwrc: add support for the Meson AXG SoCs Neil Armstrong
2020-09-15 19:45   ` Martin Blumenstingl
2020-09-16  7:17     ` Neil Armstrong

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).