led充電指示燈除錯
相關檔案目錄
custom//kernel/leds/mt65xx/cust_leds.c
kernel/drivers/leds/leds_drv.c
platform/mt6572/kernel/drivers/leds/leds.c
static struct cust_mt65xx_led cust_led_list[mt65xx_led_type_total] = },
}, },
},}, },
}, };
}; 對於led閃爍燈來說我們用pwm波控制方式去呼叫具體要到kernel/drivers/leds/leds_drv.c目錄下新增以下**來提供節點給上層呼叫
static unsigned int notify_led_enable;
static unsigned long delayon = 512;
static unsigned long delayoff = 512;
static ssize_t store_notify_led(struct device *dev, struct device_attribute *attr ,const char *buf,size_t size) //控制led閃爍
if(notify_led == 0)
} return size; }
static ssize_t show_notify_led(struct device *dev,struct device_attribute *attr, char *buf)
static device_attr (notify_led, 0664, show_notify_led, store_notify_led);
static ssize_t store_delay_on(struct device *dev,struct device_attribute *attr,const char *buf,size_t size)
return size; }
static ssize_t show_delay_on(struct device *dev,struct device_attribute *attr,char *buf)
static device_attr(delay_on,0664, show_delay_on,store_delay_on);
static ssize_t store_delay_off(struct device *dev,struct device_attribute *attr,const char *buf,size_t size)
return size; }
static ssize_t show_delay_off(struct device *dev,struct device_attribute *attr,char *buf)
static device_attr(delay_off,0664, show_delay_off,store_delay_off);
通過iadb shell進入cd /sys/class/leds/red
brightness
delay_off
delay_on
device
max_brightness
notify_led
power
subsystem
trigger
uevent
對以下節點進行操作控制led燈閃爍
echo 1 > notify_led 這時就會閃爍led
echo 0 > notify_led 停止閃爍
控制閃爍延遲亮滅時間
delay_off
delay_on
控制led初始化
static int __init mt65xx_leds_probe(struct platform_device *pdev)
g_leds_data[i] = kzalloc(sizeof(struct mt65xx_led_data), gfp_kernel);
if (!g_leds_data[i])
g_leds_data[i]->cust.mode = cust_led_list[i].mode;
g_leds_data[i]->cust.data = cust_led_list[i].data;
g_leds_data[i]->cust.name = cust_led_list[i].name;
g_leds_data[i]->cdev.name = cust_led_list[i].name;
g_leds_data[i]->cust.config_data = cust_led_list[i].config_data;//bei add
g_leds_data[i]->cdev.brightness_set = mt65xx_led_set;
g_leds_data[i]->cdev.blink_set = mt65xx_blink_set;
init_work(&g_leds_data[i]->work, mt_mt65xx_led_work);
ret = led_classdev_register(&pdev->dev, &g_leds_data[i]->cdev);
if(strcmp(g_leds_data[i]->cdev.name,"lcd-backlight") == 0)
rc = device_create_file(g_leds_data[i]->cdev.dev, &dev_attr_div);
if(rc)
rc = device_create_file(g_leds_data[i]->cdev.dev, &dev_attr_frequency);
if(rc)
rc = device_create_file(g_leds_data[i]->cdev.dev, &dev_attr_pwm_register);
if(rc)
bl_setting = &g_leds_data[i]->cust; }
if(strcmp(g_leds_data[i]->cdev.name,"red")==0)//建立各個節點如notify_led delay_off delay_on
rc = device_create_file(g_leds_data[i]->cdev.dev, &dev_attr_delay_on);
if(rc)
rc = device_create_file(g_leds_data[i]->cdev.dev, &dev_attr_delay_off);
if(rc)
//brightness_set_pmic(mt65xx_led_pmic_nled_isink3,255, 0);
//mt_set_gpio_mode(gpio75, gpio_mode_01);
mt_set_gpio_mode(gpio128, gpio_mode_00);
mt_set_gpio_dir(gpio128, gpio_dir_out);
mt_set_gpio_out(gpio128, gpio_out_one);
//mt65xx_led_set_cust(&cust_led_list[0],0); }
if (ret)
goto err; }
#ifdef control_bl_temperature
last_level = 0;
limit = 255;
limit_flag = 0;
current_level = 0;
leds_drv_debug("[led]led probe last_level = %d, limit = %d, limit_flag = %d, current_level = %d\n",last_level,limit,limit_flag,current_level);
#endif
return 0;
err:
if (i) }
return ret; }
LED指示燈的使用
在設計一款dsp的板子時,核心需要使用到1.26v的電壓,設計電路時想,為了方便確定1.26v供電是否正確,在1.26v處接了個led電源指示燈。板子回來焊上,發現led怎麼都不亮,用萬用表測電壓正確 1.26v非常準。為什麼燈就是不亮呢?試著把限流電阻改到非常小了,還是不亮,問題出在哪呢?想到le...
2 3 LED指示燈說明
led指示燈說明 1.指示燈是為了方便快捷判斷當前裝置的狀態.網路制式 裝置的狀態 燈的狀態 無服務未找到sim卡 紅色長亮 wifi未啟動 紅色1秒閃 wifi已啟動,未註冊網路 紅色3秒閃 2g gsm edge 已經註冊網路,未連線 黃色2秒閃 2g cdma 1x 已經註冊網路,已連線 黃色...
Cisco系列AP指示燈 LED 解讀
cisco 1200 1230,在裝置頂蓋上共有三個沒有任何標記的led指示燈。今天,經過在cisco 查證和研究,解釋一下這三個led在維護和排障中的應用。ethernet 燈 status 燈 radio 燈 以這個角度看,從上至下分別是乙太網led 狀態led和無線電led。乙太網led顯示經...