66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Merisc sysfs exports
 | |
|  *
 | |
|  * Copyright (C) 2008 Martinsson Elektronik AB
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| #include <linux/module.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/init.h>
 | |
| #include <linux/list.h>
 | |
| #include <linux/spinlock.h>
 | |
| #include <linux/device.h>
 | |
| #include <linux/sysdev.h>
 | |
| #include <linux/timer.h>
 | |
| #include <linux/err.h>
 | |
| #include <linux/ctype.h>
 | |
| #include "merisc.h"
 | |
| 
 | |
| static ssize_t merisc_model_show(struct class *class, char *buf)
 | |
| {
 | |
| 	ssize_t ret = 0;
 | |
| 
 | |
| 	sprintf(buf, "%s\n", merisc_model());
 | |
| 	ret = strlen(buf) + 1;
 | |
| 
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| static ssize_t merisc_revision_show(struct class *class, char *buf)
 | |
| {
 | |
| 	ssize_t ret = 0;
 | |
| 
 | |
| 	sprintf(buf, "%s\n", merisc_revision());
 | |
| 	ret = strlen(buf) + 1;
 | |
| 
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| static struct class_attribute merisc_class_attrs[] = {
 | |
| 	__ATTR(model, S_IRUGO, merisc_model_show, NULL),
 | |
| 	__ATTR(revision, S_IRUGO, merisc_revision_show, NULL),
 | |
| 	__ATTR_NULL,
 | |
| };
 | |
| 
 | |
| struct class merisc_class = {
 | |
| 	.name =		"merisc",
 | |
| 	.owner =	THIS_MODULE,
 | |
| 	.class_attrs =	merisc_class_attrs,
 | |
| };
 | |
| 
 | |
| static int __init merisc_sysfs_init(void)
 | |
| {
 | |
| 	int status;
 | |
| 
 | |
| 	status = class_register(&merisc_class);
 | |
| 	if (status < 0)
 | |
| 		return status;
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| postcore_initcall(merisc_sysfs_init);
 |