.h
#ifndef __M74HC595_H__
#define __M74HC595_H__
/*
0->0xfc,1->0x6,2->0xda,3->0xf2,4->0x66,
5->0x6d,6->0x7d,7->0x7,8->0x7f,9->0x6f
*/
#define ONE 0x1
#define TWO 0x2
#define THREE 0x4
#define FOUR 0x8
#define num0 0xfc
#define num1 0x6
#define num2 0xda
#define num3 0xf2
#define num4 0x66
#define num5 0x6d
#define num6 0x7d
#define num7 0x7
#define num8 0x7f
#define num9 0x6f
#endif
.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/spi/spi.h>
#include <linux/fs.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#include "m74hc595.h"
unsigned int major;
struct class *cls;
struct device *dev;
char kbuf[2];
wait_queue_head_t head;
unsigned int condition;
int m74hc595_open(struct inode *inode, struct file *file)
{
printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);
return 0;
}
int m74hc595_close(struct inode *inode, struct file *file)
{
printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);
return 0;
}
ssize_t m74hc595_read(struct file *file, char __user *ubuf, size_t size, loff_t *loff)
{
int ret;
if(file->f_flags&O_NONBLOCK)
{
return -EINVAL;
}else
{
ret=wa