linux/arch/avr32/boards/merisc/merisc_sysfs.c
<<
>>
Prefs
   1/*
   2 * Merisc sysfs exports
   3 *
   4 * Copyright (C) 2008 Martinsson Elektronik AB
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10#include <linux/module.h>
  11#include <linux/kernel.h>
  12#include <linux/init.h>
  13#include <linux/list.h>
  14#include <linux/spinlock.h>
  15#include <linux/device.h>
  16#include <linux/sysdev.h>
  17#include <linux/timer.h>
  18#include <linux/err.h>
  19#include <linux/ctype.h>
  20#include "merisc.h"
  21
  22static ssize_t merisc_model_show(struct class *class, char *buf)
  23{
  24        ssize_t ret = 0;
  25
  26        sprintf(buf, "%s\n", merisc_model());
  27        ret = strlen(buf) + 1;
  28
  29        return ret;
  30}
  31
  32static ssize_t merisc_revision_show(struct class *class, char *buf)
  33{
  34        ssize_t ret = 0;
  35
  36        sprintf(buf, "%s\n", merisc_revision());
  37        ret = strlen(buf) + 1;
  38
  39        return ret;
  40}
  41
  42static struct class_attribute merisc_class_attrs[] = {
  43        __ATTR(model, S_IRUGO, merisc_model_show, NULL),
  44        __ATTR(revision, S_IRUGO, merisc_revision_show, NULL),
  45        __ATTR_NULL,
  46};
  47
  48struct class merisc_class = {
  49        .name =         "merisc",
  50        .owner =        THIS_MODULE,
  51        .class_attrs =  merisc_class_attrs,
  52};
  53
  54static int __init merisc_sysfs_init(void)
  55{
  56        int status;
  57
  58        status = class_register(&merisc_class);
  59        if (status < 0)
  60                return status;
  61
  62        return 0;
  63}
  64
  65postcore_initcall(merisc_sysfs_init);
  66