mtk 6572平台led指示燈 除錯

2021-07-30 18:17:42 字數 3992 閱讀 9294

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顯示經...