Lines Matching full:sclk
105 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk) in scmi_clk_ops_init() argument
114 .name = sclk->info->name, in scmi_clk_ops_init()
117 sclk->hw.init = &init; in scmi_clk_ops_init()
118 ret = devm_clk_hw_register(dev, &sclk->hw); in scmi_clk_ops_init()
122 if (sclk->info->rate_discrete) { in scmi_clk_ops_init()
123 int num_rates = sclk->info->list.num_rates; in scmi_clk_ops_init()
128 min_rate = sclk->info->list.rates[0]; in scmi_clk_ops_init()
129 max_rate = sclk->info->list.rates[num_rates - 1]; in scmi_clk_ops_init()
131 min_rate = sclk->info->range.min_rate; in scmi_clk_ops_init()
132 max_rate = sclk->info->range.max_rate; in scmi_clk_ops_init()
135 clk_hw_set_rate_range(&sclk->hw, min_rate, max_rate); in scmi_clk_ops_init()
172 struct scmi_clk *sclk; in scmi_clocks_probe() local
174 sclk = devm_kzalloc(dev, sizeof(*sclk), GFP_KERNEL); in scmi_clocks_probe()
175 if (!sclk) in scmi_clocks_probe()
178 sclk->info = scmi_proto_clk_ops->info_get(ph, idx); in scmi_clocks_probe()
179 if (!sclk->info) { in scmi_clocks_probe()
184 sclk->id = idx; in scmi_clocks_probe()
185 sclk->ph = ph; in scmi_clocks_probe()
187 err = scmi_clk_ops_init(dev, sclk); in scmi_clocks_probe()
190 devm_kfree(dev, sclk); in scmi_clocks_probe()
193 dev_dbg(dev, "Registered clock:%s\n", sclk->info->name); in scmi_clocks_probe()
194 hws[idx] = &sclk->hw; in scmi_clocks_probe()