Lines Matching refs:priv
38 static int tegra124_cpu_switch_to_dfll(struct tegra124_cpufreq_priv *priv) in tegra124_cpu_switch_to_dfll() argument
43 ret = clk_set_rate(priv->dfll_clk, clk_get_rate(priv->cpu_clk)); in tegra124_cpu_switch_to_dfll()
47 orig_parent = clk_get_parent(priv->cpu_clk); in tegra124_cpu_switch_to_dfll()
48 clk_set_parent(priv->cpu_clk, priv->pllp_clk); in tegra124_cpu_switch_to_dfll()
50 ret = clk_prepare_enable(priv->dfll_clk); in tegra124_cpu_switch_to_dfll()
54 clk_set_parent(priv->cpu_clk, priv->dfll_clk); in tegra124_cpu_switch_to_dfll()
59 clk_set_parent(priv->cpu_clk, orig_parent); in tegra124_cpu_switch_to_dfll()
64 static void tegra124_cpu_switch_to_pllx(struct tegra124_cpufreq_priv *priv) in tegra124_cpu_switch_to_pllx() argument
66 clk_set_parent(priv->cpu_clk, priv->pllp_clk); in tegra124_cpu_switch_to_pllx()
67 clk_disable_unprepare(priv->dfll_clk); in tegra124_cpu_switch_to_pllx()
68 regulator_sync_voltage(priv->vdd_cpu_reg); in tegra124_cpu_switch_to_pllx()
69 clk_set_parent(priv->cpu_clk, priv->pllx_clk); in tegra124_cpu_switch_to_pllx()
78 struct tegra124_cpufreq_priv *priv; in tegra124_cpufreq_probe() local
84 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in tegra124_cpufreq_probe()
85 if (!priv) in tegra124_cpufreq_probe()
96 priv->vdd_cpu_reg = regulator_get(cpu_dev, "vdd-cpu"); in tegra124_cpufreq_probe()
97 if (IS_ERR(priv->vdd_cpu_reg)) { in tegra124_cpufreq_probe()
98 ret = PTR_ERR(priv->vdd_cpu_reg); in tegra124_cpufreq_probe()
102 priv->cpu_clk = of_clk_get_by_name(np, "cpu_g"); in tegra124_cpufreq_probe()
103 if (IS_ERR(priv->cpu_clk)) { in tegra124_cpufreq_probe()
104 ret = PTR_ERR(priv->cpu_clk); in tegra124_cpufreq_probe()
108 priv->dfll_clk = of_clk_get_by_name(np, "dfll"); in tegra124_cpufreq_probe()
109 if (IS_ERR(priv->dfll_clk)) { in tegra124_cpufreq_probe()
110 ret = PTR_ERR(priv->dfll_clk); in tegra124_cpufreq_probe()
114 priv->pllx_clk = of_clk_get_by_name(np, "pll_x"); in tegra124_cpufreq_probe()
115 if (IS_ERR(priv->pllx_clk)) { in tegra124_cpufreq_probe()
116 ret = PTR_ERR(priv->pllx_clk); in tegra124_cpufreq_probe()
120 priv->pllp_clk = of_clk_get_by_name(np, "pll_p"); in tegra124_cpufreq_probe()
121 if (IS_ERR(priv->pllp_clk)) { in tegra124_cpufreq_probe()
122 ret = PTR_ERR(priv->pllp_clk); in tegra124_cpufreq_probe()
126 ret = tegra124_cpu_switch_to_dfll(priv); in tegra124_cpufreq_probe()
135 priv->cpufreq_dt_pdev = in tegra124_cpufreq_probe()
137 if (IS_ERR(priv->cpufreq_dt_pdev)) { in tegra124_cpufreq_probe()
138 ret = PTR_ERR(priv->cpufreq_dt_pdev); in tegra124_cpufreq_probe()
142 platform_set_drvdata(pdev, priv); in tegra124_cpufreq_probe()
147 tegra124_cpu_switch_to_pllx(priv); in tegra124_cpufreq_probe()
149 clk_put(priv->pllp_clk); in tegra124_cpufreq_probe()
151 clk_put(priv->pllx_clk); in tegra124_cpufreq_probe()
153 clk_put(priv->dfll_clk); in tegra124_cpufreq_probe()
155 clk_put(priv->cpu_clk); in tegra124_cpufreq_probe()
157 regulator_put(priv->vdd_cpu_reg); in tegra124_cpufreq_probe()
166 struct tegra124_cpufreq_priv *priv = platform_get_drvdata(pdev); in tegra124_cpufreq_remove() local
168 platform_device_unregister(priv->cpufreq_dt_pdev); in tegra124_cpufreq_remove()
169 tegra124_cpu_switch_to_pllx(priv); in tegra124_cpufreq_remove()
171 clk_put(priv->pllp_clk); in tegra124_cpufreq_remove()
172 clk_put(priv->pllx_clk); in tegra124_cpufreq_remove()
173 clk_put(priv->dfll_clk); in tegra124_cpufreq_remove()
174 clk_put(priv->cpu_clk); in tegra124_cpufreq_remove()
175 regulator_put(priv->vdd_cpu_reg); in tegra124_cpufreq_remove()