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