8. LED调试日志

1. led灯又称三色灯,有R/G/B三基色。均有256(0-255)的亮度级别(用PWM波实现?),
	256*256*256 = 1600w,通过设置三基色可以配出1600w种颜色,几乎包括所有颜色。

调试: 通过adb读写led亮度
		ac50sax: # find /sys -name brightness
			/sys/devices/platform/leds-mt65xx/leds/red/brightness
			/sys/devices/platform/leds-mt65xx/leds/blue/brightness
			/sys/devices/platform/leds-mt65xx/leds/green/brightness
			/sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness
			
		ac50sax: # cat /sys/devices/platform/leds-mt65xx/leds/red/brightness
		ac50sax: # echo 255 > /sys/devices/platform/leds-mt65xx/leds/red/brightness
		ac50sax: # echo 0 > /sys/devices/platform/leds-mt65xx/leds/red/brightness
		
		ac50sax: # echo 0 > /sys/devices/platform/leds-mt65xx/leds/blue/brightness
		ac50sax: # echo 255 > /sys/devices/platform/leds-mt65xx/leds/blue/brightness
		
		ac50sax: # echo 0 > /sys/devices/platform/leds-mt65xx/leds/green/brightness
		ac50sax: # echo 255 > /sys/devices/platform/leds-mt65xx/leds/green/brightness
		
		ac50sax: # cat /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness
		ac50sax: # echo 255 > /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness
		ac50sax: # echo 0 > /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness
		
	
2. 驱动只负责【关机充电】的led指示灯控制,控制代码在(开机状态的控制由上层负责):
	alps\vendor\mediatek\proprietary\external\charger(关机充电指示灯控制)、
	alps\vendor\mediatek\proprietary\external\ipod(开启了快速启动的关机充电指示灯控制)
	
	alps\vendor\mediatek\proprietary\external\charger\charging_control.cpp(关机充电指示灯控制)
	mtk默认的控制策略:0~89亮红灯   90~100亮绿灯
	on_uevent()
		if (is_charging_source_available()
		
		) 		// 如果正在充电(AC/USB/wireless) - 读取sysfs节点
		{
			bc = get_capacity();					// 获取电池电量百分比 - 读取"/sys/class/power_supply/battery/capacity"
			if (bc >= 90) {
				lights_full();		// 关闭red,打开green(255)- 通过 写"/sys/class/leds/green/brightness" ""/sys/class/leds/red/brightness""
			} else {
				lights_on();		// 关闭green,打开red(255)- 通过 写"/sys/class/leds/green/brightness" ""/sys/class/leds/red/brightness""
			}
		}

	定制化控制策略:0~14亮红灯  15~89亮蓝灯 90~100亮绿灯
	on_uevent()
		if (is_charging_source_available()) 		// 如果正在充电(AC/USB/wireless) - 读取sysfs节点
		{
			bc = get_capacity();					// 获取电池电量百分比 - 读取"/sys/class/power_supply/battery/capacity"
			if (bc >= 90) {
				lights_full();			// 关闭red,关闭blue,打开green(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"
			} else {
		+		if((bc >= 15)&&(bc < 90))
		+			lights_on_15_89();	// 关闭red,关闭green,打开blue(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"
		+		else
					lights_on();		// 关闭green,关闭blue,打开red(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"
			}
		}

3. 关闭三色灯 
	dts中将led_mode改为0
	    led0:led@0 {
            compatible = "mediatek,red";
	-       led_mode = <3>;
	+       led_mode = <0>;
        led1:led@1 {
            compatible = "mediatek,green";
	-      led_mode = <2>;
	+      led_mode = <0>;
        led2:led@2 {
            compatible = "mediatek,blue";
	-       led_mode = <3>;
	+       led_mode = <0>;

一、 mt6739平台(kernel-4.4)三色灯 即充电指示灯驱动实现:
	1. mt6739.dts
		+   charge_led: charge_led {
		+           compatible = "mediatek,mt6739_leds";
		+   };
			mtkfb: mtkfb {
					compatible = "mediatek,mtkfb";
			};
			
	2. k39tv1_bsp_1g.dts
			&odm {
				led0:led@0 {
					compatible = "mediatek,red";	// 6739的red led接在pmic上
					led_mode = <0>;
					data = <1>;
					pwm_config = <0 0 0 0 0>;
				};
				led1:led@1 {
					compatible = "mediatek,green";	// GPIO122
					led_mode = <2>;
					data = <1>;
					pwm_config = <0 0 0 0 0>;
				};
				led2:led@2 {
					compatible = "mediatek,blue";	// GPIO17
					led_mode = <2>;
					data = <2>;
					pwm_config = <0 0 0 0 0>;
				};
	
		+	/* LEDS GPIO Kernel Standardization start */
		+	&charge_led {
		+       pinctrl-names = "pinctrl_led1_low", "pinctrl_led1_high", "pinctrl_led2_low", "pinctrl_led2_high";
		+       pinctrl-0 = <&pinctrl_led1_low>;
		+       pinctrl-1 = <&pinctrl_led1_high>;
		+       pinctrl-2 = <&pinctrl_led2_low>;
		+       pinctrl-3 = <&pinctrl_led2_high>;
		+       status = "okay";
		+	};
		+
		+	&pio {
		+       pinctrl_led1_low: pinctrl_led1_low {
		+               pins_cmd_dat {
		+                       pins = <PINMUX_GPIO122__FUNC_GPIO122>;
		+                       slew-rate = <1>;
		+                       output-low;
		+               };
		+       };
		+
		+       pinctrl_led1_high: pinctrl_led1_high {
		+               pins_cmd_dat {
		+                       pins = <PINMUX_GPIO122__FUNC_GPIO122>;
		+                       slew-rate = <1>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值