Message ID | 20200904161654.24141-3-narmstrong@baylibre.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | soc: amlogic: add support for the Meson AXG Power Controller | expand |
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
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 >
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,
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(+)