Lines Matching full:syscon
23 #include <linux/platform_data/syscon.h>
26 #include <linux/mfd/syscon.h>
34 struct syscon { struct
46 static struct syscon *of_syscon_register(struct device_node *np) in of_syscon_register() argument
48 struct syscon *syscon; in of_syscon_register() local
56 if (!of_device_is_compatible(np, "syscon")) in of_syscon_register()
59 syscon = kzalloc(sizeof(*syscon), GFP_KERNEL); in of_syscon_register()
60 if (!syscon) in of_syscon_register()
122 syscon->regmap = regmap; in of_syscon_register()
123 syscon->np = np; in of_syscon_register()
126 list_add_tail(&syscon->list, &syscon_list); in of_syscon_register()
129 return syscon; in of_syscon_register()
134 kfree(syscon); in of_syscon_register()
140 struct syscon *entry, *syscon = NULL; in syscon_node_to_regmap() local
146 syscon = entry; in syscon_node_to_regmap()
152 if (!syscon) in syscon_node_to_regmap()
153 syscon = of_syscon_register(np); in syscon_node_to_regmap()
155 if (IS_ERR(syscon)) in syscon_node_to_regmap()
156 return ERR_CAST(syscon); in syscon_node_to_regmap()
158 return syscon->regmap; in syscon_node_to_regmap()
186 struct syscon *syscon; in syscon_regmap_lookup_by_pdevname() local
193 syscon = dev_get_drvdata(dev); in syscon_regmap_lookup_by_pdevname()
195 return syscon->regmap; in syscon_regmap_lookup_by_pdevname()
224 struct syscon *syscon; in syscon_probe() local
229 syscon = devm_kzalloc(dev, sizeof(*syscon), GFP_KERNEL); in syscon_probe()
230 if (!syscon) in syscon_probe()
244 syscon->regmap = devm_regmap_init_mmio(dev, base, &syscon_config); in syscon_probe()
245 if (IS_ERR(syscon->regmap)) { in syscon_probe()
247 return PTR_ERR(syscon->regmap); in syscon_probe()
250 platform_set_drvdata(pdev, syscon); in syscon_probe()
258 { "syscon", },
264 .name = "syscon",