Lines Matching +full:enabled +full:- +full:strings
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * userspace-consumer.c
19 #include <linux/regulator/userspace-consumer.h>
26 bool enabled; member
37 return sprintf(buf, "%s\n", data->name); in reg_show_name()
45 if (data->enabled) in reg_show_state()
46 return sprintf(buf, "enabled\n"); in reg_show_state()
55 bool enabled; in reg_set_state() local
59 * sysfs_streq() doesn't need the \n's, but we add them so the strings in reg_set_state()
62 if (sysfs_streq(buf, "enabled\n") || sysfs_streq(buf, "1")) in reg_set_state()
63 enabled = true; in reg_set_state()
65 enabled = false; in reg_set_state()
71 mutex_lock(&data->lock); in reg_set_state()
72 if (enabled != data->enabled) { in reg_set_state()
73 if (enabled) in reg_set_state()
74 ret = regulator_bulk_enable(data->num_supplies, in reg_set_state()
75 data->supplies); in reg_set_state()
77 ret = regulator_bulk_disable(data->num_supplies, in reg_set_state()
78 data->supplies); in reg_set_state()
81 data->enabled = enabled; in reg_set_state()
85 mutex_unlock(&data->lock); in reg_set_state()
109 pdata = dev_get_platdata(&pdev->dev); in regulator_userspace_consumer_probe()
111 return -EINVAL; in regulator_userspace_consumer_probe()
113 drvdata = devm_kzalloc(&pdev->dev, in regulator_userspace_consumer_probe()
117 return -ENOMEM; in regulator_userspace_consumer_probe()
119 drvdata->name = pdata->name; in regulator_userspace_consumer_probe()
120 drvdata->num_supplies = pdata->num_supplies; in regulator_userspace_consumer_probe()
121 drvdata->supplies = pdata->supplies; in regulator_userspace_consumer_probe()
123 mutex_init(&drvdata->lock); in regulator_userspace_consumer_probe()
125 ret = devm_regulator_bulk_get(&pdev->dev, drvdata->num_supplies, in regulator_userspace_consumer_probe()
126 drvdata->supplies); in regulator_userspace_consumer_probe()
128 dev_err(&pdev->dev, "Failed to get supplies: %d\n", ret); in regulator_userspace_consumer_probe()
132 ret = sysfs_create_group(&pdev->dev.kobj, &attr_group); in regulator_userspace_consumer_probe()
136 if (pdata->init_on) { in regulator_userspace_consumer_probe()
137 ret = regulator_bulk_enable(drvdata->num_supplies, in regulator_userspace_consumer_probe()
138 drvdata->supplies); in regulator_userspace_consumer_probe()
140 dev_err(&pdev->dev, in regulator_userspace_consumer_probe()
146 drvdata->enabled = pdata->init_on; in regulator_userspace_consumer_probe()
152 sysfs_remove_group(&pdev->dev.kobj, &attr_group); in regulator_userspace_consumer_probe()
161 sysfs_remove_group(&pdev->dev.kobj, &attr_group); in regulator_userspace_consumer_remove()
163 if (data->enabled) in regulator_userspace_consumer_remove()
164 regulator_bulk_disable(data->num_supplies, data->supplies); in regulator_userspace_consumer_remove()
173 .name = "reg-userspace-consumer",