summaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/interface.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-07-19 15:24:47 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-07-19 19:06:34 -0700
commit441ac1fa9ecdccf9d54803e2548464ca83ad8514 (patch)
treec9309dc97998190d4dc96f73acb241bc0d7e2c6c /drivers/staging/greybus/interface.c
parent1bb61840c4db64e27f0077dcfc5389e662022d40 (diff)
downloadop-kernel-dev-441ac1fa9ecdccf9d54803e2548464ca83ad8514.zip
op-kernel-dev-441ac1fa9ecdccf9d54803e2548464ca83ad8514.tar.gz
greybus: interface: partition attribute group
Partition the current attribute group into four groups for UniPro, Greybus, power and common attributes. This is a step in refining the interface-type handling as attributes are type dependent. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/interface.c')
-rw-r--r--drivers/staging/greybus/interface.c41
1 files changed, 38 insertions, 3 deletions
diff --git a/drivers/staging/greybus/interface.c b/drivers/staging/greybus/interface.c
index 1d50877..1d50bd4 100644
--- a/drivers/staging/greybus/interface.c
+++ b/drivers/staging/greybus/interface.c
@@ -512,20 +512,55 @@ static ssize_t interface_type_show(struct device *dev,
}
static DEVICE_ATTR_RO(interface_type);
-static struct attribute *interface_attrs[] = {
+static struct attribute *interface_unipro_attrs[] = {
&dev_attr_ddbl1_manufacturer_id.attr,
&dev_attr_ddbl1_product_id.attr,
+ NULL
+};
+
+static struct attribute *interface_greybus_attrs[] = {
&dev_attr_interface_id.attr,
&dev_attr_vendor_id.attr,
&dev_attr_product_id.attr,
&dev_attr_serial_number.attr,
+ NULL
+};
+
+static struct attribute *interface_power_attrs[] = {
&dev_attr_voltage_now.attr,
&dev_attr_current_now.attr,
&dev_attr_power_now.attr,
+ NULL
+};
+
+static struct attribute *interface_common_attrs[] = {
&dev_attr_interface_type.attr,
- NULL,
+ NULL
+};
+
+static const struct attribute_group interface_unipro_group = {
+ .attrs = interface_unipro_attrs,
+};
+
+static const struct attribute_group interface_greybus_group = {
+ .attrs = interface_greybus_attrs,
+};
+
+static const struct attribute_group interface_power_group = {
+ .attrs = interface_power_attrs,
+};
+
+static const struct attribute_group interface_common_group = {
+ .attrs = interface_common_attrs,
+};
+
+static const struct attribute_group *interface_groups[] = {
+ &interface_unipro_group,
+ &interface_greybus_group,
+ &interface_power_group,
+ &interface_common_group,
+ NULL
};
-ATTRIBUTE_GROUPS(interface);
static void gb_interface_release(struct device *dev)
{
OpenPOWER on IntegriCloud