Lines Matching refs:info
101 struct exynos_ppmu *info = devfreq_event_get_drvdata(edev); in exynos_ppmu_disable() local
110 info->ppmu.base + PPMU_CNTENC); in exynos_ppmu_disable()
113 pmnc = __raw_readl(info->ppmu.base + PPMU_PMNC); in exynos_ppmu_disable()
115 __raw_writel(pmnc, info->ppmu.base + PPMU_PMNC); in exynos_ppmu_disable()
122 struct exynos_ppmu *info = devfreq_event_get_drvdata(edev); in exynos_ppmu_set_event() local
130 cntens = __raw_readl(info->ppmu.base + PPMU_CNTENS); in exynos_ppmu_set_event()
132 __raw_writel(cntens, info->ppmu.base + PPMU_CNTENS); in exynos_ppmu_set_event()
136 info->ppmu.base + PPMU_BEVTxSEL(id)); in exynos_ppmu_set_event()
139 pmnc = __raw_readl(info->ppmu.base + PPMU_PMNC); in exynos_ppmu_set_event()
146 __raw_writel(pmnc, info->ppmu.base + PPMU_PMNC); in exynos_ppmu_set_event()
154 struct exynos_ppmu *info = devfreq_event_get_drvdata(edev); in exynos_ppmu_get_event() local
162 pmnc = __raw_readl(info->ppmu.base + PPMU_PMNC); in exynos_ppmu_get_event()
164 __raw_writel(pmnc, info->ppmu.base + PPMU_PMNC); in exynos_ppmu_get_event()
167 edata->total_count = __raw_readl(info->ppmu.base + PPMU_CCNT); in exynos_ppmu_get_event()
175 = __raw_readl(info->ppmu.base + PPMU_PMNCT(id)); in exynos_ppmu_get_event()
179 ((__raw_readl(info->ppmu.base + PPMU_PMCNT3_HIGH) << 8) in exynos_ppmu_get_event()
180 | __raw_readl(info->ppmu.base + PPMU_PMCNT3_LOW)); in exynos_ppmu_get_event()
187 cntenc = __raw_readl(info->ppmu.base + PPMU_CNTENC); in exynos_ppmu_get_event()
189 __raw_writel(cntenc, info->ppmu.base + PPMU_CNTENC); in exynos_ppmu_get_event()
204 struct exynos_ppmu *info) in of_get_devfreq_events() argument
207 struct device *dev = info->dev; in of_get_devfreq_events()
222 info->num_events = count; in of_get_devfreq_events()
242 desc[j].driver_data = info; in of_get_devfreq_events()
250 info->desc = desc; in of_get_devfreq_events()
257 static int exynos_ppmu_parse_dt(struct exynos_ppmu *info) in exynos_ppmu_parse_dt() argument
259 struct device *dev = info->dev; in exynos_ppmu_parse_dt()
269 info->ppmu.base = of_iomap(np, 0); in exynos_ppmu_parse_dt()
270 if (IS_ERR_OR_NULL(info->ppmu.base)) { in exynos_ppmu_parse_dt()
275 info->ppmu.clk = devm_clk_get(dev, "ppmu"); in exynos_ppmu_parse_dt()
276 if (IS_ERR(info->ppmu.clk)) { in exynos_ppmu_parse_dt()
277 info->ppmu.clk = NULL; in exynos_ppmu_parse_dt()
281 ret = of_get_devfreq_events(np, info); in exynos_ppmu_parse_dt()
290 iounmap(info->ppmu.base); in exynos_ppmu_parse_dt()
297 struct exynos_ppmu *info; in exynos_ppmu_probe() local
302 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); in exynos_ppmu_probe()
303 if (!info) in exynos_ppmu_probe()
306 mutex_init(&info->lock); in exynos_ppmu_probe()
307 info->dev = &pdev->dev; in exynos_ppmu_probe()
310 ret = exynos_ppmu_parse_dt(info); in exynos_ppmu_probe()
316 desc = info->desc; in exynos_ppmu_probe()
318 size = sizeof(struct devfreq_event_dev *) * info->num_events; in exynos_ppmu_probe()
319 info->edev = devm_kzalloc(&pdev->dev, size, GFP_KERNEL); in exynos_ppmu_probe()
320 if (!info->edev) { in exynos_ppmu_probe()
325 edev = info->edev; in exynos_ppmu_probe()
326 platform_set_drvdata(pdev, info); in exynos_ppmu_probe()
328 for (i = 0; i < info->num_events; i++) { in exynos_ppmu_probe()
338 clk_prepare_enable(info->ppmu.clk); in exynos_ppmu_probe()
342 iounmap(info->ppmu.base); in exynos_ppmu_probe()
349 struct exynos_ppmu *info = platform_get_drvdata(pdev); in exynos_ppmu_remove() local
351 clk_disable_unprepare(info->ppmu.clk); in exynos_ppmu_remove()
352 iounmap(info->ppmu.base); in exynos_ppmu_remove()