imx6 android背光控制

2021-07-13 12:18:42 字數 2411 閱讀 2609

lcd的背光主要涉及到兩個地方

1.休眠和喚醒的開關

2.背光的亮度調整

安卓設定中可以控制背光的亮度,jni層的實現

frameworks/base/services/jni/com_android_server_lightsservice.cpp

light_index_backlight = 0

hw_module_t* module;

devices* devices;

err = hw_get_module(lights_hardware_module_id, (hw_module_t const**)&module);

devices->lights[light_index_backlight]   = get_device(module, light_id_backlight);

.....

static void setlight_native(jnienv *env, jobject clazz, int ptr,

int light, int colorargb, int flashmode, int onms, int offms, int brightnessmode)

//主要是呼叫hw中的open

static light_device_t* get_device(hw_module_t* module, char const* name)

else

}這裡主要去呼叫hal層。

imx6的背光hal層實現在:

hardware/imx/lights/fsl_lights.c

簡略的列一下:

static int lights_device_open(const struct hw_module_t* module,

const char* name, struct hw_device_t** device)

/sys/class/backlight/pwm-backlight.0/pwm-backlight/brightness

/sys/class/backlight/pwm-backlight.0/max_brightness

static int set_light_backlight(struct light_device_t* dev,

struct light_state_t const* state)

看完hal層**,發現這完全是驅動層實現的,我們只負責設定值而已。

這裡為了檢測問題,測試了一下:

/sys/class/backlight/pwm-backlight/pwm-backlight.0/brightness

這個檔案無論怎麼寫,都不會讓背光滅掉,只起到調節背光大小的作用,做過螢幕改不了背光那麼就需要

1.手動修改這個檔案是否能改

2.檢查驅動是否有問題

這裡結論是只能修改背光的亮度,並不能關閉。

arch/arm/mach-mx6/board-mx6q_sabresd.c 這是我麼的板檔案

根據原理圖上背光的總開關由乙個gpio管教控制,我們只需要看看這個管教是不是在休眠的時候關閉掉即可。

這是背光相關的控制實現

static struct platform_pwm_backlight_data mx6_sabresd_pwm_backlight_data = ;

static int mx6q_backlight_notify(struct device *dev, int brightness)else

return 0; }

然後驅動在:

drivers/video/backlight/pwm_bl.c

這裡主要看一下休眠和喚醒的實現裡的操作,其實根本不需要修改**,我們需要參考呼叫流程,來在板檔案做好相應的處理即可。

另外剛才在sys檔案系統操作的節點,由

drivers/video/backlight/

backlight.c 實現。

imx6ul 正點原子 imx6ul學習筆記(1)

目錄 linux imx6ull uboot alientek uboot 檔名 mx6ull alientek emmc.sh 編譯方法 mx6ull alientek emmc.sh目錄 f imx6ull alientek uboot cd alientek uboot 進入正點原子 uboo...

imx6ul 正點原子 imx6ul學習筆記(2)

目錄 home jk9 linux imx6ull alientek linux 編譯,vscode工程建立 2020.3.12 目錄 home jk9 linux nxp nxp linux 編譯 2020.3.12.23 32 1 新增開發板預設配置檔案 2 新增開發板對應的裝置樹檔案cp ar...

imx6q can驅動理解

理解imx536的can驅動還是從probe開始吧,2.6版本核心can驅動是歸屬於網路驅動 所以我得先去把網路驅動幾個重要結構體先找出來吧。前進吧 年輕人。static struct platform driver flexcan driver probe flexcan probe,remove...