Re: [PATCH v2 5/8] mfd: exynos-lpass: Remove pad retention control

From: Lee Jones
Date: Wed Feb 08 2017 - 06:05:04 EST


On Thu, 26 Jan 2017, Marek Szyprowski wrote:

> Pad retention should be controlled from pin control driver, so remove it
> from Exynos LPASS driver. After this change, no more access to PMU regmap
> is needed, so remove also the code for handling PMU regmap.
>
> Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
> Acked-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> ---
> .../bindings/mfd/samsung,exynos5433-lpass.txt | 2 --
> drivers/mfd/exynos-lpass.c | 17 -----------------
> include/linux/mfd/syscon/exynos5-pmu.h | 3 ---
> 3 files changed, 22 deletions(-)

Love the diff! :)

For my own reference:
Acked-for-MFD-by: Lee Jones <lee.jones@xxxxxxxxxx>

> diff --git a/Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt b/Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt
> index c110e118b79f..a8deaee82c44 100644
> --- a/Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt
> +++ b/Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt
> @@ -5,7 +5,6 @@ Required properties:
> - compatible : "samsung,exynos5433-lpass"
> - reg : should contain the LPASS top SFR region location
> and size
> - - samsung,pmu-syscon : the phandle to the Power Management Unit node
> - #address-cells : should be 1
> - #size-cells : should be 1
> - ranges : must be present
> @@ -25,7 +24,6 @@ Example:
> audio-subsystem {
> compatible = "samsung,exynos5433-lpass";
> reg = <0x11400000 0x100>, <0x11500000 0x08>;
> - samsung,pmu-syscon = <&pmu_system_controller>;
> #address-cells = <1>;
> #size-cells = <1>;
> ranges;
> diff --git a/drivers/mfd/exynos-lpass.c b/drivers/mfd/exynos-lpass.c
> index 2e064fb8826f..17915daa2e80 100644
> --- a/drivers/mfd/exynos-lpass.c
> +++ b/drivers/mfd/exynos-lpass.c
> @@ -18,7 +18,6 @@
> #include <linux/io.h>
> #include <linux/module.h>
> #include <linux/mfd/syscon.h>
> -#include <linux/mfd/syscon/exynos5-pmu.h>
> #include <linux/of.h>
> #include <linux/of_platform.h>
> #include <linux/platform_device.h>
> @@ -51,8 +50,6 @@
> #define LPASS_INTR_SFR BIT(0)
>
> struct exynos_lpass {
> - /* pointer to the Power Management Unit regmap */
> - struct regmap *pmu;
> /* pointer to the LPASS TOP regmap */
> struct regmap *top;
> };
> @@ -81,10 +78,6 @@ static void exynos_lpass_enable(struct exynos_lpass *lpass)
> regmap_write(lpass->top, SFR_LPASS_INTR_CPU_MASK,
> LPASS_INTR_SFR | LPASS_INTR_DMA | LPASS_INTR_I2S);
>
> - /* Activate related PADs from retention state */
> - regmap_write(lpass->pmu, EXYNOS5433_PAD_RETENTION_AUD_OPTION,
> - EXYNOS5433_PAD_INITIATE_WAKEUP_FROM_LOWPWR);
> -
> exynos_lpass_core_sw_reset(lpass, LPASS_I2S_SW_RESET);
> exynos_lpass_core_sw_reset(lpass, LPASS_DMA_SW_RESET);
> exynos_lpass_core_sw_reset(lpass, LPASS_MEM_SW_RESET);
> @@ -95,9 +88,6 @@ static void exynos_lpass_disable(struct exynos_lpass *lpass)
> /* Mask any unmasked IP interrupt sources */
> regmap_write(lpass->top, SFR_LPASS_INTR_CPU_MASK, 0);
> regmap_write(lpass->top, SFR_LPASS_INTR_CA5_MASK, 0);
> -
> - /* Deactivate related PADs from retention state */
> - regmap_write(lpass->pmu, EXYNOS5433_PAD_RETENTION_AUD_OPTION, 0);
> }
>
> static const struct regmap_config exynos_lpass_reg_conf = {
> @@ -131,13 +121,6 @@ static int exynos_lpass_probe(struct platform_device *pdev)
> return PTR_ERR(lpass->top);
> }
>
> - lpass->pmu = syscon_regmap_lookup_by_phandle(dev->of_node,
> - "samsung,pmu-syscon");
> - if (IS_ERR(lpass->pmu)) {
> - dev_err(dev, "Failed to lookup PMU regmap\n");
> - return PTR_ERR(lpass->pmu);
> - }
> -
> platform_set_drvdata(pdev, lpass);
> exynos_lpass_enable(lpass);
>
> diff --git a/include/linux/mfd/syscon/exynos5-pmu.h b/include/linux/mfd/syscon/exynos5-pmu.h
> index c28ff21ca4d2..0622ae86f9db 100644
> --- a/include/linux/mfd/syscon/exynos5-pmu.h
> +++ b/include/linux/mfd/syscon/exynos5-pmu.h
> @@ -46,7 +46,4 @@
> #define EXYNOS5_MIPI_PHY_S_RESETN BIT(1)
> #define EXYNOS5_MIPI_PHY_M_RESETN BIT(2)
>
> -#define EXYNOS5433_PAD_RETENTION_AUD_OPTION (0x3028)
> -#define EXYNOS5433_PAD_INITIATE_WAKEUP_FROM_LOWPWR BIT(28)
> -
> #endif /* _LINUX_MFD_SYSCON_PMU_EXYNOS5_H_ */

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog