蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。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
重新编译烧写内核即可。