Lines Matching defs:nocp
3 * exynos-nocp.c - Exynos NoC (Network On Chip) Probe support
17 #include "exynos-nocp.h"
30 * The devfreq-event ops structure for nocp probe.
34 struct exynos_nocp *nocp = devfreq_event_get_drvdata(edev);
38 ret = regmap_update_bits(nocp->regmap, NOCP_MAIN_CTL,
41 dev_err(nocp->dev, "failed to disable the NoC probe device\n");
46 ret = regmap_write(nocp->regmap, NOCP_STAT_PERIOD, 0x0);
51 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_0_SRC,
57 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_1_SRC,
63 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_2_SRC,
69 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_3_SRC,
77 ret = regmap_write(nocp->regmap, NOCP_STAT_ALARM_MIN, 0x0);
81 ret = regmap_write(nocp->regmap, NOCP_STAT_ALARM_MAX, 0x0);
86 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_0_ALARM_MODE,
92 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_1_ALARM_MODE,
98 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_2_ALARM_MODE,
104 ret = regmap_update_bits(nocp->regmap, NOCP_COUNTERS_3_ALARM_MODE,
111 ret = regmap_update_bits(nocp->regmap, NOCP_MAIN_CTL,
118 ret = regmap_update_bits(nocp->regmap, NOCP_CFG_CTL,
125 ret = regmap_update_bits(nocp->regmap, NOCP_MAIN_CTL,
135 if (regmap_update_bits(nocp->regmap, NOCP_MAIN_CTL,
137 dev_err(nocp->dev, "Failed to reset NoC probe device\n");
146 struct exynos_nocp *nocp = devfreq_event_get_drvdata(edev);
151 ret = regmap_read(nocp->regmap, NOCP_COUNTERS_0_VAL, &counter[0]);
155 ret = regmap_read(nocp->regmap, NOCP_COUNTERS_1_VAL, &counter[1]);
159 ret = regmap_read(nocp->regmap, NOCP_COUNTERS_2_VAL, &counter[2]);
163 ret = regmap_read(nocp->regmap, NOCP_COUNTERS_3_VAL, &counter[3]);
176 dev_err(nocp->dev, "Failed to read the counter of NoC probe device\n");
187 { .compatible = "samsung,exynos5420-nocp", },
200 struct exynos_nocp *nocp)
202 struct device *dev = nocp->dev;
212 nocp->clk = devm_clk_get(dev, "nocp");
213 if (IS_ERR(nocp->clk))
214 nocp->clk = NULL;
216 /* Maps the memory mapped IO to control nocp register */
224 nocp->regmap = devm_regmap_init_mmio(dev, base,
226 if (IS_ERR(nocp->regmap)) {
228 return PTR_ERR(nocp->regmap);
238 struct exynos_nocp *nocp;
241 nocp = devm_kzalloc(&pdev->dev, sizeof(*nocp), GFP_KERNEL);
242 if (!nocp)
245 nocp->dev = &pdev->dev;
248 ret = exynos_nocp_parse_dt(pdev, nocp);
256 nocp->desc.ops = &exynos_nocp_ops;
257 nocp->desc.driver_data = nocp;
258 nocp->desc.name = np->full_name;
259 nocp->edev = devm_devfreq_event_add_edev(&pdev->dev, &nocp->desc);
260 if (IS_ERR(nocp->edev)) {
263 return PTR_ERR(nocp->edev);
265 platform_set_drvdata(pdev, nocp);
267 ret = clk_prepare_enable(nocp->clk);
273 pr_info("exynos-nocp: new NoC Probe device registered: %s\n",
281 struct exynos_nocp *nocp = platform_get_drvdata(pdev);
283 clk_disable_unprepare(nocp->clk);
292 .name = "exynos-nocp",