Lines Matching full:sclk
103 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk) in scmi_clk_ops_init() argument
112 .name = sclk->info->name, in scmi_clk_ops_init()
115 sclk->hw.init = &init; in scmi_clk_ops_init()
116 ret = devm_clk_hw_register(dev, &sclk->hw); in scmi_clk_ops_init()
120 if (sclk->info->rate_discrete) { in scmi_clk_ops_init()
121 int num_rates = sclk->info->list.num_rates; in scmi_clk_ops_init()
126 min_rate = sclk->info->list.rates[0]; in scmi_clk_ops_init()
127 max_rate = sclk->info->list.rates[num_rates - 1]; in scmi_clk_ops_init()
129 min_rate = sclk->info->range.min_rate; in scmi_clk_ops_init()
130 max_rate = sclk->info->range.max_rate; in scmi_clk_ops_init()
133 clk_hw_set_rate_range(&sclk->hw, min_rate, max_rate); in scmi_clk_ops_init()
164 struct scmi_clk *sclk; in scmi_clocks_probe() local
166 sclk = devm_kzalloc(dev, sizeof(*sclk), GFP_KERNEL); in scmi_clocks_probe()
167 if (!sclk) in scmi_clocks_probe()
170 sclk->info = handle->clk_ops->info_get(handle, idx); in scmi_clocks_probe()
171 if (!sclk->info) { in scmi_clocks_probe()
176 sclk->id = idx; in scmi_clocks_probe()
177 sclk->handle = handle; in scmi_clocks_probe()
179 err = scmi_clk_ops_init(dev, sclk); in scmi_clocks_probe()
182 devm_kfree(dev, sclk); in scmi_clocks_probe()
185 dev_dbg(dev, "Registered clock:%s\n", sclk->info->name); in scmi_clocks_probe()
186 hws[idx] = &sclk->hw; in scmi_clocks_probe()