内容如下:
/*
test spi device driver
add by zjh 2011-08-10
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/sched.h>
#include <linux/spi/spi.h>
#define TEST_REG 0x08
static int read_reg(struct spi_device *spi,int reg)
{
char buf[2];
buf[0] = reg <<3;
spi_write_then_read(spi,buf,2,buf,2);
return buf[1]<<8 ;
}
static int spi_test_probe(struct spi_device *spi)
{
printk("\n----------------------------\n");
printk("TEST_REG:0x%02x\n",read_reg(spi,TEST_REG));
printk("\n----------------------------\n");
return 0;
}
static int spi_test_remove(struct spi_device *spi)
{
printk(" spi driver remove\n");
return 0;
}
static struct spi_driver spi_test_driver={
.probe = spi_test_probe,
.remove = spi_test_remove,
.driver ={
.name = "testspi",
},
};
static int __init spi_test_init(void)
{
return spi_register_driver(&spi_test_driver);
}
static void __exit spi_test_exit(void)
{
spi_unregister_driver(&spi_test_driver);
}
module_init(spi_test_init);
module_exit(spi_test_exit);
MODULE_DESCRIPTION("spi device test");
MODULE_LICENSE("GPL");
第二步,在/driver/spi/Makefile 文件中添加一行,如下图
第三步,/driver/spi/Kconfig文件中添加如下几行:
config SPI_TESTSPI
tristate "Test SPI device driver"
help
This user test driver spi
mode.
第四步,make menuconfig
第五步,编译。