蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。TQ335XB_V2工控板上载有一路蜂鸣器,通过烧写Linux+QT系统后发现使用蜂鸣器不响,该如何解决?其实方法很简单,AM335X旧版本内核源码的蜂鸣器驱动有BUG,可向天嵌科技技术支持或者客服获取可用的tq3358_beep.c的文件替换到drivers/char/tq3358_beep.c,然后修改arch/arm/mach-omap2/board-tq335x_coreb_v2.c 文件,添加以下代码:
- #ifdef CONFIG_TQ3358_BEEP
- static struct platform_pwm_beep_data beep_data = {
- .pwm_id = "ehrpwm.0",
- .ch = 1,
- };
- static struct platform_device pwm_beep = {
- .name = "pwm-beeper",
- .id = -1,
- .dev = {
- .platform_data = &beep_data,
- },
- };
- static void beep_init(int evm_id, int profile)
- {
- int err;
- setup_pin_mux(ehrpwm0B_pin_mux);
- //gany mask
- err = platform_device_register(&pwm_beep);
- if (err)
- pr_err("failed to register gpio led device\n");
- }
- #endif
复制代码
并且在TQ3358_EVM_dev_cfg 中添加:
- #ifdef CONFIG_TQ3358_BEEP
- {beep_init, DEV_ON_BASEBOARD, PROFILE_2},
- #endif
复制代码
重新编译烧写内核即可。
|