| // 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); |
| } |