[RK3399][Android7.1]Rockchip PWM Backlight 驱动分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33487044/article/details/85716121
平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

DTS

目录:kernel/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi
在这里插入图片描述

解释下pwms = <&pwm0 0 25000 0>;

第一个参数 表示此背光接在 pwm0 上;
在这里插入图片描述

第二个参数 表示 index0pwm0 下只有 1pwm,所以填0
第三个参数 表示周期为 25000ns,即 频率 为 40k
第四个参数 表示极性,0正极性,1 负极性
正极性0表示 背光为正极0~255,占空比从0~100%变化
负极性 1 表示 背光为负极255~0,占空比从 100~0% 变化

解释下:default-brightness-level = <200>
表示默认的背光,它存在于开机时候背光初始化到安卓设置下来新的背光这段时间, default-brightness-level = < 200 >表示为第 200个元素的背光亮度


我们接着看pwm_bl状态设置及管脚定义
pwm0设置状态
在这里插入图片描述

解释下:enable-gpios表示背光使能脚,这个根据电路原理图配置即可;
这里的12来源于:16+2=18,其中8是因为GPIO4_C2是属于GPIO4C组,GPIO_ACTIVE_HIGH表示高电平有效,如果想要低电平有效,可以改为:GPIO_ACTIVE_LOW,这个属性将被驱动所读取。


我们的背光使用在edp屏上面:
在这里插入图片描述
原理图如下:
在这里插入图片描述

驱动分析

platform driver :

目录:kernel/drivers/video/backlight/pwm_bl.c
在这里插入图片描述

设备树和驱动通过compatible匹配:
在这里插入图片描述

probe 分析:

在这里插入图片描述

dev_get_platdata获取的是device结构体成员变量的void * platform_data
pwm_backlight_parse_dt解析 dts中的 brightness-levelsdefault-brightness-level
在这里插入图片描述


首先看一下使用到的结构体:
目录:kernel/drivers/video/backlight/pwm_bl.c
在这里插入图片描述

目录:kernel/include/linux/pwm_backlight.h
在这里插入图片描述

目录:kernel/include/linux/backlight.h
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33487044/article/details/85716121