diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch b/target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch deleted file mode 100644 index 4c87289455..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch +++ /dev/null @@ -1,102 +0,0 @@ -From f3470769d4e64084fc7f3060d634aff8fdf8f75d Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Fri, 11 Jan 2019 17:31:07 -0800 -Subject: [PATCH] soc: bcm: bcm2835-pm: Add support for 2711. - -Without the actual power management part any more, there's a lot less -to set up for V3D. We just need to clear the RSTN field for the power -domain, and expose the reset controller for toggling it again. - -This is definitely incomplete -- the old ISP and H264 is in the old -bridge, but since we have no consumers of it I've just done the -minimum to get V3D working. - -Signed-off-by: Eric Anholt <eric@anholt.net> ---- - drivers/mfd/bcm2835-pm.c | 11 +++++++++++ - drivers/soc/bcm/bcm2835-power.c | 22 ++++++++++++++++++++++ - include/linux/mfd/bcm2835-pm.h | 1 + - 3 files changed, 34 insertions(+) - ---- a/drivers/mfd/bcm2835-pm.c -+++ b/drivers/mfd/bcm2835-pm.c -@@ -50,6 +50,17 @@ static int bcm2835_pm_probe(struct platf - if (ret) - return ret; - -+ /* Map the ARGON ASB regs if present. */ -+ res = platform_get_resource(pdev, IORESOURCE_MEM, 2); -+ if (res) { -+ pm->arg_asb = devm_ioremap_resource(dev, res); -+ if (IS_ERR(pm->arg_asb)) { -+ dev_err(dev, "Failed to map ARGON ASB: %ld\n", -+ PTR_ERR(pm->arg_asb)); -+ return PTR_ERR(pm->arg_asb); -+ } -+ } -+ - /* We'll use the presence of the AXI ASB regs in the - * bcm2835-pm binding as the key for whether we can reference - * the full PM register range and support power domains. ---- a/drivers/soc/bcm/bcm2835-power.c -+++ b/drivers/soc/bcm/bcm2835-power.c -@@ -143,6 +143,8 @@ struct bcm2835_power { - /* AXI Async bridge registers. */ - void __iomem *asb; - -+ bool is_2711; -+ - struct genpd_onecell_data pd_xlate; - struct bcm2835_power_domain domains[BCM2835_POWER_DOMAIN_COUNT]; - struct reset_controller_dev reset; -@@ -192,6 +194,10 @@ static int bcm2835_power_power_off(struc - { - struct bcm2835_power *power = pd->power; - -+ /* 2711 has no power domains above the reset controller. */ -+ if (power->is_2711) -+ return 0; -+ - /* Enable functional isolation */ - PM_WRITE(pm_reg, PM_READ(pm_reg) & ~PM_ISFUNC); - -@@ -213,6 +219,10 @@ static int bcm2835_power_power_on(struct - int inrush; - bool powok; - -+ /* 2711 has no power domains above the reset controller. */ -+ if (power->is_2711) -+ return 0; -+ - /* If it was already powered on by the fw, leave it that way. */ - if (PM_READ(pm_reg) & PM_POWUP) - return 0; -@@ -627,6 +637,18 @@ static int bcm2835_power_probe(struct pl - power->base = pm->base; - power->asb = pm->asb; - -+ /* 2711 hack: the new ARGON ASB took over V3D, which is our -+ * only consumer of this driver so far. The old ASB seems to -+ * still be present with ISP and H264 bits but no V3D, but I -+ * don't know if that's real or not. The V3D is in the same -+ * place in the new ASB as the old one, so just poke the new -+ * one for now. -+ */ -+ if (pm->arg_asb) { -+ power->asb = pm->arg_asb; -+ power->is_2711 = true; -+ } -+ - id = ASB_READ(ASB_AXI_BRDG_ID); - if (id != 0x62726467 /* "BRDG" */) { - dev_err(dev, "ASB register ID returned 0x%08x\n", id); ---- a/include/linux/mfd/bcm2835-pm.h -+++ b/include/linux/mfd/bcm2835-pm.h -@@ -9,6 +9,7 @@ struct bcm2835_pm { - struct device *dev; - void __iomem *base; - void __iomem *asb; -+ void __iomem *arg_asb; - }; - - #endif /* BCM2835_MFD_PM_H */ |