diff options
-rw-r--r-- | Documentation/ABI/testing/sysfs-class-regulator | 13 | ||||
-rw-r--r-- | drivers/regulator/core.c | 18 |
2 files changed, 31 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-regulator b/Documentation/ABI/testing/sysfs-class-regulator index 84e66fdad028..3731f6f29bcb 100644 --- a/Documentation/ABI/testing/sysfs-class-regulator +++ b/Documentation/ABI/testing/sysfs-class-regulator | |||
@@ -157,6 +157,19 @@ Description: | |||
157 | platform code. | 157 | platform code. |
158 | 158 | ||
159 | 159 | ||
160 | What: /sys/class/regulator/.../name | ||
161 | Date: October 2008 | ||
162 | KernelVersion: 2.6.28 | ||
163 | Contact: Liam Girdwood <lrg@slimlogic.co.uk> | ||
164 | Description: | ||
165 | Each regulator directory will contain a field called | ||
166 | name. This holds a string identifying the regulator for | ||
167 | display purposes. | ||
168 | |||
169 | NOTE: this will be empty if no suitable name is provided | ||
170 | by platform or regulator drivers. | ||
171 | |||
172 | |||
160 | What: /sys/class/regulator/.../num_users | 173 | What: /sys/class/regulator/.../num_users |
161 | Date: April 2008 | 174 | Date: April 2008 |
162 | KernelVersion: 2.6.26 | 175 | KernelVersion: 2.6.26 |
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 9a6757decd3d..02a774424e8d 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -241,6 +241,22 @@ static ssize_t regulator_uA_show(struct device *dev, | |||
241 | return sprintf(buf, "%d\n", _regulator_get_current_limit(rdev)); | 241 | return sprintf(buf, "%d\n", _regulator_get_current_limit(rdev)); |
242 | } | 242 | } |
243 | 243 | ||
244 | static ssize_t regulator_name_show(struct device *dev, | ||
245 | struct device_attribute *attr, char *buf) | ||
246 | { | ||
247 | struct regulator_dev *rdev = dev_get_drvdata(dev); | ||
248 | const char *name; | ||
249 | |||
250 | if (rdev->constraints->name) | ||
251 | name = rdev->constraints->name; | ||
252 | else if (rdev->desc->name) | ||
253 | name = rdev->desc->name; | ||
254 | else | ||
255 | name = ""; | ||
256 | |||
257 | return sprintf(buf, "%s\n", name); | ||
258 | } | ||
259 | |||
244 | static ssize_t regulator_opmode_show(struct device *dev, | 260 | static ssize_t regulator_opmode_show(struct device *dev, |
245 | struct device_attribute *attr, char *buf) | 261 | struct device_attribute *attr, char *buf) |
246 | { | 262 | { |
@@ -473,7 +489,9 @@ static ssize_t regulator_suspend_standby_state_show(struct device *dev, | |||
473 | else | 489 | else |
474 | return sprintf(buf, "disabled\n"); | 490 | return sprintf(buf, "disabled\n"); |
475 | } | 491 | } |
492 | |||
476 | static struct device_attribute regulator_dev_attrs[] = { | 493 | static struct device_attribute regulator_dev_attrs[] = { |
494 | __ATTR(name, 0444, regulator_name_show, NULL), | ||
477 | __ATTR(microvolts, 0444, regulator_uV_show, NULL), | 495 | __ATTR(microvolts, 0444, regulator_uV_show, NULL), |
478 | __ATTR(microamps, 0444, regulator_uA_show, NULL), | 496 | __ATTR(microamps, 0444, regulator_uA_show, NULL), |
479 | __ATTR(opmode, 0444, regulator_opmode_show, NULL), | 497 | __ATTR(opmode, 0444, regulator_opmode_show, NULL), |