Lines Matching defs:asv
23 #include "exynos-asv.h"
24 #include "exynos5422-asv.h"
28 static int exynos_asv_update_cpu_opps(struct exynos_asv *asv,
36 for (i = 0; i < ARRAY_SIZE(asv->subsys); i++) {
38 asv->subsys[i].cpu_dt_compat)) {
39 subsys = &asv->subsys[i];
54 dev_info(asv->dev, "cpu%d opp%d, freq: %u missing\n",
61 new_volt = asv->opp_get_voltage(subsys, i, volt);
70 dev_err(asv->dev,
74 dev_dbg(asv->dev,
82 static int exynos_asv_update_opps(struct exynos_asv *asv)
102 ret = exynos_asv_update_cpu_opps(asv, cpu);
104 dev_err(asv->dev, "Couldn't udate OPPs for cpu%d\n",
116 int (*probe_func)(struct exynos_asv *asv);
117 struct exynos_asv *asv;
122 asv = devm_kzalloc(&pdev->dev, sizeof(*asv), GFP_KERNEL);
123 if (!asv)
126 asv->chipid_regmap = device_node_to_regmap(pdev->dev.of_node);
127 if (IS_ERR(asv->chipid_regmap)) {
129 return PTR_ERR(asv->chipid_regmap);
132 ret = regmap_read(asv->chipid_regmap, EXYNOS_CHIPID_REG_PRO_ID,
153 ret = of_property_read_u32(pdev->dev.of_node, "samsung,asv-bin",
154 &asv->of_bin);
156 asv->of_bin = -EINVAL;
158 asv->dev = &pdev->dev;
159 dev_set_drvdata(&pdev->dev, asv);
161 for (i = 0; i < ARRAY_SIZE(asv->subsys); i++)
162 asv->subsys[i].asv = asv;
164 ret = probe_func(asv);
168 return exynos_asv_update_opps(asv);
178 .name = "exynos-asv",