- 供电引脚配置:
除flash torch两个供电引脚按照常规配置gpio模式外,需另外将ENM pin配置成pwm模式。在dtsi中添加如下代码:
flash_light_pwm_pin: flash_light_pwm_pin {
pins_cmd_dat {
pinmux = <PINMUX_GPIOxxx__FUNC_PWMx>;
slew-rate = <1>;
output-high;
};
};
-
驱动文件:
包含pwm头文件:
#include <mt-plat/mtk_pwm.h> -
闪光灯flash/torch模式下的电流控制:
(1) flash mode:
No matter the status of ENM, only when ENF = “1”, Flash mode is in active and the flashing current is equal to IRF * D, D is the duty cycle of PWM signal at ENM pin, the frequency of PWM is largerthan 15KHz
对应代码:
flashlight_pinctrl_set(FLASHLIGHT_PINCTRL_PIN_FLASH, 0);
flashlight_pinctrl_set(FLASHLIGHT_PINCTRL_PIN_PWM_EN, 1);
mt_flashlight_led_set_pwm(0, tempPWM

本文详细介绍了Android设备中闪光灯的PWM控制机制,包括flash和torch两种模式的切换逻辑及电流控制。在dtsi中配置PWM引脚,驱动文件中通过mt_flashlight_led_set_pwm函数设置PWM占空比来调整电流大小。同时,展示了如何通过g_duty_array数组实现不同亮度级别的控制。
最低0.47元/天 解锁文章
3539

被折叠的 条评论
为什么被折叠?



