本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/03_beep
蜂鸣器的驱动程序和LED的驱动程序基本一致,创建beep.c文件。具体内容如下:
1 #include <linux/types.h>
2 #include <linux/kernel.h>
3 #include <linux/delay.h>
4 #include <linux/ide.h>
5 #include <linux/init.h>
6 #include <linux/module.h>
7 #include <linux/errno.h>
8 #include <linux/gpio.h>
9 #include <linux/cdev.h>
10 #include <linux/device.h>
11 #include <linux/of.h>
12 #include <linux/of_address.h>
13 #include <linux/of_gpio.h>
14 #include <asm/mach/map.h>
15 #include <asm/uaccess.h>
16 #include <asm/io.h>
17
18 #define BEEP_CNT 1 /* 设备号个数 */
19 #define BEEP_NAME "beep" /* 名字 */
20 #define BEEPOFF 0 /* 关蜂鸣器 */
21 #define BEEPON 1 /* 开蜂鸣器 */
22
23
24 /* beep 设备结构体 */
25 struct beep_dev{
26 dev_t devid; /* 设备号 */
27 struct cdev cdev; /* cdev */
28 struct class *class; /* 类 */
29 struct device *device; /* 设备 */
30 int major; /* 主设备号 */
31 int minor; /* 次设备号 */
32 struct device_node *nd; /* 设备节点 */
33 int beep_gpio; /* beep 所使用的 GPIO 编号 */
34 };
35
36 struct beep_dev beep; /* beep 设备 */