android 背光碟機動

來源:互聯網
上載者:User

--作者: 賴玉平(peter lai)aulyp@163.com

ANDROID裡,內建的背光亮度調節,會調用哪個介面?

會調用

/sys/class/leds/lcd-backlight/brightness

而這個brightness節點,是如何聲明的呢

請看LED驅動裡的這麼一句

static DEVICE_ATTR(brightness, /*NAME*/

0644, /*許可權*/

led_brightness_show, /*Read Point*/

led_brightness_store); /*Write Point*/

這就是聲明brightness的。

這裡調用了led_brightness_store做為寫背光函數,也就是調節時用到,它最終會調用到顯示驅動裡的PWM操作函數,實現背光調節。

分析:

在LED驅動中,led_classdev_register ()函數,調用device_create()建立了操作結構體空間leds_class,

led_cdev->dev = device_create(leds_class, parent, 0, led_cdev,"%s", led_cdev->name);

關鍵是填充led_cdev結構體。

在led_brightness_store函數裡,調用led_set_brightness設定背光亮度,最終是調用了

led_cdev->brightness_set(led_cdev, value);實現操作,這個操作,會調用哪裡的函數呢?它是顯示驅動裡的brightness_set()函數。

請注意看,在顯示驅動裡(S3cfb_lte480wv.c),有這麼一段代碼,

static struct led_classdev smdk_backlight_led = {

.name = "lcd-backlight",

.brightness = SMDK_DEFAULT_BACKLIGHT_BRIGHTNESS,

.brightness_set = smdk_brightness_set,

};

把brightness_set指向了smdk_brightness_set()函數。這就有戲看了,終於找到真正操作函數了。

當然,LED驅動是如何與顯示驅動關聯起來的,這一套機制,得看一下

static int smdk_bl_probe(struct platform_device *pdev)

{

led_classdev_register(&pdev->dev, &smdk_backlight_led);

return 0;

}

原來使用了led_classdev_register(),它是由LEDS驅動提供的函數,

#include 傳過來的。

這就把smdk_backlight_led 結構體指標傳給了LEDS驅動,裡面就有smdk_brightness_set函數的指標,所以,LEDS裡的led_cdev->brightness_set能調用到這邊來,呵呵。原來是這樣。

註冊背光的控制節點

/sys/class/leds/lcd-backlight/brightness

是在這個函數 platform_driver_register() à

smdk_bl_probe() à led_classdev_register(&pdev->dev, &smdk_backlight_led);

在smdk_backlight_led結構體裡,設定了節點名稱lcd-backlight和控制介面等。

而led_classdev_register()是led-class裡的函數。最終調用了device_createp 這樣的函數實現建立節點。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.