diff options
Diffstat (limited to 'drivers/staging/most/dim2/sysfs.c')
-rw-r--r-- | drivers/staging/most/dim2/sysfs.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/staging/most/dim2/sysfs.c b/drivers/staging/most/dim2/sysfs.c new file mode 100644 index 000000000000..c85b2cdcdca3 --- /dev/null +++ b/drivers/staging/most/dim2/sysfs.c @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * sysfs.c - MediaLB sysfs information + * + * Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG + */ + +/* Author: Andrey Shvetsov <andrey.shvetsov@k2l.de> */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/kernel.h> +#include "sysfs.h" +#include <linux/device.h> + +static ssize_t state_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + bool state = dim2_sysfs_get_state_cb(); + + return sprintf(buf, "%s\n", state ? "locked" : ""); +} + +static DEVICE_ATTR_RO(state); + +static struct attribute *dev_attrs[] = { + &dev_attr_state.attr, + NULL, +}; + +static struct attribute_group dev_attr_group = { + .attrs = dev_attrs, +}; + +static const struct attribute_group *dev_attr_groups[] = { + &dev_attr_group, + NULL, +}; + +int dim2_sysfs_probe(struct device *dev) +{ + dev->groups = dev_attr_groups; + return device_register(dev); +} + +void dim2_sysfs_destroy(struct device *dev) +{ + device_unregister(dev); +} |