From: Hoegeun Kwon Date: Tue, 9 Jan 2024 08:47:25 +0000 (+0900) Subject: soc: starfive: Add feature for hw event masks X-Git-Tag: accepted/tizen/unified/x/20240220.145856~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb1e3d716f4e6b3df079a79740d368f0f0943b48;p=platform%2Fkernel%2Flinux-starfive.git soc: starfive: Add feature for hw event masks Add hw event masks off feature for use with other drives. Signed-off-by: Walker Chen Signed-off-by: Hoegeun Kwon Signed-off-by: Seung-Woo Kim Change-Id: I5b8862cd50b35f0b8ceed770d95a5c17bde8b12c --- diff --git a/drivers/pmdomain/starfive/jh71xx-pmu.c b/drivers/pmdomain/starfive/jh71xx-pmu.c index 7d5f50d71c0d..8bb03c9fd7d1 100644 --- a/drivers/pmdomain/starfive/jh71xx-pmu.c +++ b/drivers/pmdomain/starfive/jh71xx-pmu.c @@ -16,6 +16,7 @@ #include /* register offset */ +#define JH71XX_PMU_HW_EVENT_TURN_OFF_MASK 0x08 #define JH71XX_PMU_SW_TURN_ON_POWER 0x0C #define JH71XX_PMU_SW_TURN_OFF_POWER 0x10 #define JH71XX_PMU_SW_ENCOURAGE 0x44 @@ -72,6 +73,14 @@ struct jh71xx_pmu_dev { struct generic_pm_domain genpd; }; +static void __iomem *pmu_base; + +void jh71xx_pmu_hw_event_turn_off_mask(u32 mask) +{ + writel(mask, pmu_base + JH71XX_PMU_HW_EVENT_TURN_OFF_MASK); +} +EXPORT_SYMBOL(jh71xx_pmu_hw_event_turn_off_mask); + static int jh71xx_pmu_get_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool *is_on) { struct jh71xx_pmu *pmu = pmd->pmu; @@ -316,6 +325,8 @@ static int jh71xx_pmu_probe(struct platform_device *pdev) return ret; } + pmu_base = pmu->base; + dev_dbg(dev, "registered %u power domains\n", i); return 0; diff --git a/include/soc/starfive/jh71xx_pmu.h b/include/soc/starfive/jh71xx_pmu.h new file mode 100644 index 000000000000..425fea5e8f4b --- /dev/null +++ b/include/soc/starfive/jh71xx_pmu.h @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * StarFive JH71XX PMU (Power Management Unit) Controller Driver + * + * Copyright (C) 2022 StarFive Technology Co., Ltd. + */ + + +#ifndef __SOC_STARFIVE_JH71XX_PMU_H__ +#define __SOC_STARFIVE_JH71XX_PMU_H__ + +void jh71xx_pmu_hw_event_turn_off_mask(u32 mask); + +#endif /* __SOC_STARFIVE_JH71XX_PMU_H__ */