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/timer.h>
  17#include <linux/err.h>
  18#include <linux/ctype.h>
  19#include "merisc.h"
  20
  21static ssize_t merisc_model_show(struct class *class, char *buf)
  22{
  23        ssize_t ret = 0;
  24
  25        sprintf(buf, "%s\n", merisc_model());
  26        ret = strlen(buf) + 1;
  27
  28        return ret;
  29}
  30
  31static ssize_t merisc_revision_show(struct class *class, char *buf)
  32{
  33        ssize_t ret = 0;
  34
  35        sprintf(buf, "%s\n", merisc_revision());
  36        ret = strlen(buf) + 1;
  37
  38        return ret;
  39}
  40
  41static struct class_attribute merisc_class_attrs[] = {
  42        __ATTR(model, S_IRUGO, merisc_model_show, NULL),
  43        __ATTR(revision, S_IRUGO, merisc_revision_show, NULL),
  44        __ATTR_NULL,
  45};
  46
  47struct class merisc_class = {
  48        .name =         "merisc",
  49        .owner =        THIS_MODULE,
  50        .class_attrs =  merisc_class_attrs,
  51};
  52
  53static int __init merisc_sysfs_init(void)
  54{
  55        int status;
  56
  57        status = class_register(&merisc_class);
  58        if (status < 0)
  59                return status;
  60
  61        return 0;
  62}
  63
  64postcore_initcall(merisc_sysfs_init);
  65