Lines Matching +full:syscon +full:- +full:dev
1 // SPDX-License-Identifier: GPL-2.0
8 #include <linux/mfd/syscon.h>
29 for (i = 0; i < desc->num_clk_clks; i++) { in sprd_clk_set_regmap()
30 cclk = desc->clk_clks[i]; in sprd_clk_set_regmap()
34 cclk->regmap = regmap; in sprd_clk_set_regmap()
42 struct device *dev = &pdev->dev; in sprd_clk_regmap_init() local
43 struct device_node *node = dev->of_node, *np; in sprd_clk_regmap_init()
48 if (of_property_present(node, "sprd,syscon")) { in sprd_clk_regmap_init()
49 regmap = syscon_regmap_lookup_by_phandle(node, "sprd,syscon"); in sprd_clk_regmap_init()
51 pr_err("%s: failed to get syscon regmap\n", __func__); in sprd_clk_regmap_init()
54 } else if (of_device_is_compatible(np = of_get_parent(node), "syscon") || in sprd_clk_regmap_init()
59 dev_err(dev, "failed to get regmap from its parent.\n"); in sprd_clk_regmap_init()
67 reg_config.max_register = resource_size(res) - reg_config.reg_stride; in sprd_clk_regmap_init()
69 regmap = devm_regmap_init_mmio(&pdev->dev, base, in sprd_clk_regmap_init()
83 int sprd_clk_probe(struct device *dev, struct clk_hw_onecell_data *clkhw) in sprd_clk_probe() argument
88 for (i = 0; i < clkhw->num; i++) { in sprd_clk_probe()
91 hw = clkhw->hws[i]; in sprd_clk_probe()
95 name = hw->init->name; in sprd_clk_probe()
96 ret = devm_clk_hw_register(dev, hw); in sprd_clk_probe()
98 dev_err(dev, "Couldn't register clock %d - %s\n", in sprd_clk_probe()
104 ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clkhw); in sprd_clk_probe()
106 dev_err(dev, "Failed to add clock provider\n"); in sprd_clk_probe()