迅为龙芯2K1000开发板pmon BSP移植之使能背光和PWM

2022年06月01日 13:44    发布者:就是塔塔
屏幕背光我们要在 pmon 的启动阶段就要使能,不然屏幕就是黑的,在第 9.4 章节我们分析了 pmon 的启动流程,在 Targets/LS2K/ls2k/tgt_machdep.c 文件的 tgt_devconfig 函数里面对显卡进行了初始化,所以我们是不是就可以在这个函数里面对背光进行使能呢?
首先我们要确定屏幕背光的 GPIO 是哪一个,我们找到背光部分的原理图,如下图所示:

可以看出,屏幕背光使用的引脚为 GPIO37 将这个 GPIO 拉高即可,在 BSP 里面,关于背光的代码其实已经给我们写好了,我们稍加修改即可。我们找到 Targets/LS2K/ls2k/tgt_machdep.c 文件的 tgt_devconfig 函数,在这个函数里面调用了 init_pcidev 函数。而 init_pcidev 函数里面通过宏定义 PAI2 包含了 pai2_init 函数,
在 pai2_init 函数里面使能了屏幕背光和 PWM,如下图所示:

所以我们需要先定义宏定义 PAI2 和 LCD_EN。PAI2 在 9.9.3 章节我们已经定义过了,这里就不在重复定义,打开 Targets/LS2K/conf/ls2k 文件,添加以下代码:


在 bsp 里面已经使能了 PWM0,这里我们无需在做修改,代码如下:

其中定 19 行代码*(volatile int *)0xbfe10420 |=(1<<12);是将 GPIO 设置成 PWM0 功能,地址 0xbfe10420的第 12 位对应的是 PWM0,如下图所示:


默认的时钟为 48.96MHZ,通过查阅屏幕的数据手册,可以发现 48.96MHZ 在屏幕的支持范围以内,所以这里我们就不需要修改了,如下图所示:

如果您要添加一个自己分辨率,比如 600x400,其他参数您可以在 Ubuntu 的电脑终端输入命令 cvt 600400 来自动获取的。如下图所示:

因为这里面 1024x600 的参数已经有了,我们就不必在添加这些参数了,所以这样我们屏幕就适配好了是不是要比 uboot 上移植屏幕简单多了。
更多内容可以关注:北京迅为