Lines Matching +full:cpufreq +full:- +full:hw
1 // SPDX-License-Identifier: GPL-2.0
3 #include <linux/arm-smccc.h>
5 #include <linux/clk-provider.h>
20 struct clk_hw hw; member
24 static long airoha_cpu_pmdomain_clk_round(struct clk_hw *hw, unsigned long rate, in airoha_cpu_pmdomain_clk_round() argument
30 static unsigned long airoha_cpu_pmdomain_clk_get(struct clk_hw *hw, in airoha_cpu_pmdomain_clk_get() argument
43 static int airoha_cpu_pmdomain_clk_is_enabled(struct clk_hw *hw) in airoha_cpu_pmdomain_clk_is_enabled() argument
63 return res.a0 & BIT(0) ? -EINVAL : 0; in airoha_cpu_pmdomain_set_performance_state()
69 struct device *dev = &pdev->dev; in airoha_cpu_pmdomain_probe()
81 return -ENOMEM; in airoha_cpu_pmdomain_probe()
83 /* Init and register a get-only clk for Cpufreq */ in airoha_cpu_pmdomain_probe()
84 priv->hw.init = &init; in airoha_cpu_pmdomain_probe()
85 ret = devm_clk_hw_register(dev, &priv->hw); in airoha_cpu_pmdomain_probe()
90 &priv->hw); in airoha_cpu_pmdomain_probe()
95 pd = &priv->pd; in airoha_cpu_pmdomain_probe()
96 pd->name = "cpu_pd"; in airoha_cpu_pmdomain_probe()
97 pd->flags = GENPD_FLAG_ALWAYS_ON; in airoha_cpu_pmdomain_probe()
98 pd->set_performance_state = airoha_cpu_pmdomain_set_performance_state; in airoha_cpu_pmdomain_probe()
104 ret = of_genpd_add_provider_simple(dev->of_node, pd); in airoha_cpu_pmdomain_probe()
122 of_genpd_del_provider(pdev->dev.of_node); in airoha_cpu_pmdomain_remove()
123 pm_genpd_remove(&priv->pd); in airoha_cpu_pmdomain_remove()
127 { .compatible = "airoha,en7581-cpufreq" },
136 .name = "airoha-cpu-pmdomain",