Commit 764e824e authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

greybus: module.c: add attributes

This adds the attributes power_control and present to a module.  It also
removes the unneeded module_id attribute, as that comes from the name of
the module itself.
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Reviewed-by: default avatarAlex Elder <elder@linaro.org>
parent 24ef4853
...@@ -11,37 +11,62 @@ ...@@ -11,37 +11,62 @@
/* module sysfs attributes */ /* module sysfs attributes */
#define gb_module_attr(field, type) \
static ssize_t field##_show(struct device *dev, \
struct device_attribute *attr, \
char *buf) \
{ \
struct gb_module *module = to_gb_module(dev); \
return sprintf(buf, "%"#type"\n", module->field); \
} \
static DEVICE_ATTR_RO(field)
// FIXME, do we really need this attribute?
gb_module_attr(module_id, x);
static ssize_t epm_show(struct device *dev, struct device_attribute *attr, static ssize_t epm_show(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
{ {
// FIXME, implement something here // FIXME
// Implement something here when we have a working control protocol
return sprintf(buf, "1\n"); return sprintf(buf, "1\n");
} }
static ssize_t epm_store(struct device *dev, struct device_attribute *attr, static ssize_t epm_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
// FIXME, implement something here. // FIXME
// Implement something here when we have a working control protocol
return 0; return 0;
} }
static DEVICE_ATTR_RW(epm); static DEVICE_ATTR_RW(epm);
static ssize_t power_control_show(struct device *dev,
struct device_attribute *addr, char *buf)
{
// FIXME
// Implement something here when we have a working control protocol
return sprintf(buf, "1\n");
}
static ssize_t power_control_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t size)
{
// FIXME
// Implement something here when we have a working control protocol
return 0;
}
static DEVICE_ATTR_RW(power_control);
static ssize_t present_show(struct device *dev,
struct device_attribute *addr, char *buf)
{
// FIXME
// Implement something here when we have a working control protocol
return sprintf(buf, "1\n");
}
static ssize_t present_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t size)
{
// FIXME
// Implement something here when we have a working control protocol
return 0;
}
static DEVICE_ATTR_RW(present);
static struct attribute *module_attrs[] = { static struct attribute *module_attrs[] = {
&dev_attr_module_id.attr,
&dev_attr_epm.attr, &dev_attr_epm.attr,
&dev_attr_power_control.attr,
&dev_attr_present.attr,
NULL, NULL,
}; };
ATTRIBUTE_GROUPS(module); ATTRIBUTE_GROUPS(module);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment