linux/drivers/staging/most/dim2/sysfs.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * sysfs.c - MediaLB sysfs information
   4 *
   5 * Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG
   6 */
   7
   8/* Author: Andrey Shvetsov <andrey.shvetsov@k2l.de> */
   9
  10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
  11
  12#include <linux/kernel.h>
  13#include "sysfs.h"
  14#include <linux/device.h>
  15
  16static ssize_t state_show(struct device *dev, struct device_attribute *attr,
  17                          char *buf)
  18{
  19        bool state = dim2_sysfs_get_state_cb();
  20
  21        return sprintf(buf, "%s\n", state ? "locked" : "");
  22}
  23
  24static DEVICE_ATTR_RO(state);
  25
  26static struct attribute *dev_attrs[] = {
  27        &dev_attr_state.attr,
  28        NULL,
  29};
  30
  31static struct attribute_group dev_attr_group = {
  32        .attrs = dev_attrs,
  33};
  34
  35static const struct attribute_group *dev_attr_groups[] = {
  36        &dev_attr_group,
  37        NULL,
  38};
  39
  40int dim2_sysfs_probe(struct device *dev)
  41{
  42        dev->groups = dev_attr_groups;
  43        return device_register(dev);
  44}
  45
  46void dim2_sysfs_destroy(struct device *dev)
  47{
  48        device_unregister(dev);
  49}
  50