闪光灯驱动


高通平台
gpio方式,涉及的文件
leds-msm-gpio-flash.c
msm_led_trigger.c
&soc {
        flash_SGM3780:flashlight {
                compatible = "qcom,leds-gpio-flash";
                status = "okay";
                pinctrl-names = "flash_default";
                pinctrl-0 = <&SGM3780_default>;
                qcom,flash-en = <&msm_gpio 31 0>;
                qcom,flash-now = <&msm_gpio 32 0>;
                qcom,op-seq = "flash_en", "flash_now";
                qcom,torch-seq-val = <1 0>;
                qcom,flash-seq-val = <0 1>;
                linux,name = "flashlight";
                linux,default-trigger = "flashlight-trigger";
        };


        led_flash0: qcom,camera-led-flash {
                cell-index = <0>;
                compatible = "qcom,camera-led-flash";
                qcom,flash-type = <3>;
                qcom,flash-source = <&flash_SGM3780>;
                qcom,torch-source = <&flash_SGM3780>;
        };
};
qcom,op-seq = "A", "B";
                qcom,torch-seq-val = <C D>;  
                qcom,flash-seq-val = <E F>;
对于不同芯片而言,在相应的模式下控制引脚的电平逻辑不同
A模式 ,两个引脚状态为CE
B模式 ,两个引脚状态为DF 

参考电路图如下




i2c+gpio方式,如lm3642,涉及的文件
lm3642.c  
msm_led_i2c_trigger.c
&tlmm_pinmux {
        lm3642-en-pin {
                qcom,pins = <&gp 31>, <&gp 86>;
                qcom,num-grp-pins = <2>;
                label = "lm3642_en_pins";
                qcom,pin-func = <0>;


                lm3642_en_default: en-default {
                        driver-strength = <2>;
                        bias-disable;
                };
                lm3642_en_suspend: en-suspend {
                        driver-strength = <2>;
                        bias-pull-down;
                };
        };


};
&i2c_0 {
        flash_lm3642:qcom,led-flash@0 {
                cell-index = <0>;
                reg = <0x63>;
                qcom,slave-id = <0xC6 0x00 0x0011>;
                compatible = "ti,lm3642";
                label = "lm3642";
                qcom,flash-type = <1>;
                pinctrl-names = "cam_flash_default","cam_flash_suspend";
                pinctrl-0 = <&lm3642_en_default>;
                pinctrl-1 = <&lm3642_en_suspend>;
                gpios = <&msm_gpio 86 0>,
                        <&msm_gpio 31 0>;
                qcom,gpio-flash-en = <0>;
                qcom,gpio-flash-now = <1>;
                qcom,gpio-req-tbl-num = <0 1>;
                qcom,gpio-req-tbl-flags = <0 0>;
                qcom,gpio-req-tbl-label = "FLASH_EN",
                        "FLASH_NOW";
        };
};
参考电路图如下


1flash_led_init
2flash_led_low
3flash_led_release
1、2开手电筒 3关手电筒




1flash_led_init
2flash_led_low
3flash_led_off
4flash_led_high
5flash_led_off
6flash_led_release

1打开拍照软件   2、3、4、5一次闪光灯过程   6关闭拍照软件


mtk平台,涉及的文件
kd_flashlightlist.c
Leds_strobe.c


FL_Init
FL_Enable
FLASH_IOC_SET_DUTY(设置模式)
FL_Disable
FL_Uninit

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值