在imx6中貌似是没有写buzzer的设备,因此我们若有需要,得自己添加设备才能使用。
1、buzzer.h文件:
#ifndef __BUZZER_H
#define __BUZZER_H
struct buzzer_platform_data
{
unsigned long pin_number;
};
#endif//
2、board.h文件:初始化buzzer的io设置为io,待会对应board.c文件中的io。
3、board.c文件:
#define BUZZER_PIN1 IMX_GPIO_NR(1 , 5)//根据自己的实际情况
static struct buzzer_platform_data imx6_buzzer1_data =
{
.pin_number = BUZZER_PIN,
};
static struct platform_device imx6_buzzer1_device =
{
.name = "buzzer",
.dev =
{
.platform_data = &imx6_buzzer_data,
},
};
static void imx6_buzzer_init(void)
{
printk("imx6 buzzer init!\n");
platform_device_register(&imx6_buzzer_device);
}
static void __init mx6_board_init(void)
{
//添加
imx6_buzzer_init();
}
至此,我们已经写好了buzzer的设备,驱动以匹配名字,会在/dev下生成设备。