Lines Matching full:syscon
22 #include <linux/platform_data/syscon.h>
26 #include <linux/mfd/syscon.h>
34 struct syscon { struct
47 static struct syscon *of_syscon_register(struct device_node *np, bool check_res) in of_syscon_register() argument
60 struct syscon *syscon __free(kfree) = kzalloc(sizeof(*syscon), GFP_KERNEL); in of_syscon_register()
61 if (!syscon) in of_syscon_register()
147 syscon->regmap = regmap; in of_syscon_register()
148 syscon->np = np; in of_syscon_register()
150 list_add_tail(&syscon->list, &syscon_list); in of_syscon_register()
152 return_ptr(syscon); in of_syscon_register()
169 struct syscon *entry, *syscon = NULL; in device_node_get_regmap() local
175 syscon = entry; in device_node_get_regmap()
179 if (!syscon) in device_node_get_regmap()
180 syscon = of_syscon_register(np, check_res); in device_node_get_regmap()
184 if (IS_ERR(syscon)) in device_node_get_regmap()
185 return ERR_CAST(syscon); in device_node_get_regmap()
187 return syscon->regmap; in device_node_get_regmap()
195 * Register an externally created regmap object with syscon for the specified
203 struct syscon *entry, *syscon = NULL; in of_syscon_register_regmap() local
209 syscon = kzalloc(sizeof(*syscon), GFP_KERNEL); in of_syscon_register_regmap()
210 if (!syscon) in of_syscon_register_regmap()
213 /* check if syscon entry already exists */ in of_syscon_register_regmap()
222 syscon->regmap = regmap; in of_syscon_register_regmap()
223 syscon->np = np; in of_syscon_register_regmap()
225 /* register the regmap in syscon list */ in of_syscon_register_regmap()
226 list_add_tail(&syscon->list, &syscon_list); in of_syscon_register_regmap()
233 kfree(syscon); in of_syscon_register_regmap()
246 if (!of_device_is_compatible(np, "syscon")) in syscon_node_to_regmap()
343 struct syscon *syscon; in syscon_probe() local
348 syscon = devm_kzalloc(dev, sizeof(*syscon), GFP_KERNEL); in syscon_probe()
349 if (!syscon) in syscon_probe()
363 syscon->regmap = devm_regmap_init_mmio(dev, base, &syscon_config); in syscon_probe()
364 if (IS_ERR(syscon->regmap)) { in syscon_probe()
366 return PTR_ERR(syscon->regmap); in syscon_probe()
369 platform_set_drvdata(pdev, syscon); in syscon_probe()
377 { "syscon", },
383 .name = "syscon",