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 
merisc_model_show(struct class * class,char * buf)21 static 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 
merisc_revision_show(struct class * class,char * buf)31 static 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 
41 static 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 
47 struct class merisc_class = {
48 	.name =		"merisc",
49 	.owner =	THIS_MODULE,
50 	.class_attrs =	merisc_class_attrs,
51 };
52 
merisc_sysfs_init(void)53 static 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 
64 postcore_initcall(merisc_sysfs_init);
65