引章
新入手的RK3288和7.85寸屏,要修改源码解决一个竖屏摄像头方向问题。按照wiki说明更新到最新代码,完成编译,没有问题,加载固件,黑屏,用升级工具查看启动后是MSC设备,360连接几次后也能连接上,在预览视图中能看到内容,7.85寸屏没有内容,不知道原因,碰巧看到系统发布了最新固件0715固件,加载之,不行也是黑屏,发帖求解,答曰最新固件0715不支持7.85寸,有大神指点要支持7.85寸要另做修改,大神提供的是reload版本的修改贴,利用7.85关键字,找到了普通板支持7.85寸的精华帖,大喜,开始历险
本帖最后由 denggm 于 2016-9-13 20:02 编辑
大神帖可以 通过这个查找 Firefly-RK3288 开发板 Android5.1 支持7.85寸液晶屏模组
第一步就遇到问题
1.首先下载更新RK3288 Android5.1 SDK,最新提交:
commit:4258a60
Message:Kernel->Dts: add MPU6050 config for firefly-rk3288-reload
---------------没有看明白,啥意思?更新源码到最新吗?已经更新过了,下面的commit是啥意思,不懂,姑且跳过。Message 有-reload字样是拷贝过来的,与reload版本更新是一样的?还是拷贝过来的?
-----------------后面查资料确定这是git中合如变更包的命令,不过基本不会成功,打开变更说明对吧
本帖最后由 denggm 于 2016-9-13 20:18 编辑
第二步
打开kernel/arch/arm/boot/dts/firefly-rk3288.dts,修改如下:
包含lcd的dtsi:
-#include "lcd-box.dtsi"
+#include "lcd-LP079Qx1.dtsi"
-------------------------修改很简单,这么修改,编译马上就会发现 "lcd-LP079Qx1.dtsi” 文件不存在,在dts目录下查了下,有个很相近的文件lcd-LP097Qx1.dtsi,没有找到招,先用这个把改成 lcd-LP097Qx1.dtsi,先认为过了一关
-------------后面达人提供了一个补丁包,包含lcd-LP079Qx1.dts,拷贝到kernel/arch/arm/boot/dts目录下
继续,gogo
关闭vga:
firefly-rk3288.dts
vga_ddc@50 {
compatible = “firefly,vga_ddc”;
reg = <0x50>;
gpio-pwn = <&gpio0 GPIO_C1 GPIO_ACTIVE_HIGH>;
rockchip,source = <0>; //0: LCDC0; 1: LCDC1
rockchip,prop = ;//
- status = “okay”;
+ status = “disabled”;
};
-----------------------查找 vga_ddc@50,命中,修改之,很简单,点亮在望。。。
继续,gogo
使能tp
firefly-rk3288.dts
mt@40 {
- status = “disabled”;
+ status = “okay”;
compatible = “firefly,gsl3680”;
reg = <0x40>;
touch-gpio = <&gpio5 GPIO_B0 IRQ_TYPE_EDGE_RISING>;
reset-gpio = <&gpio7 GPIO_B1 GPIO_ACTIVE_LOW>;
max-y = <2048>;
max-x = <1536>;
flip-x = <1>;
flip-y = <1>;
swap-xy = <0>;
};
-----------------------查找mt@40,什么,没有,不一样啊,先拷过来吧,似乎不太顺利。。
继续,gogo
使能mpu6050
mpu6050:mpu@68{
- status = "disabled";
+ status = "okay";
compatible = "mpu6050";
reg = <0x68>;
mpu-int_config = <0x10>;
-----------------------查找mpu6050:mpu@6,又没有,先拷过来吧,很曲折。。
继续gogo
修改timing配置和添加屏使能脚:
&disp_timings {
- native-mode = <&timing1>;
+ native-mode = <&timing0>;
};
-------------------------------太开心了,终于有找到的了,改之,放开注释,信心似乎恢复了。。。
&rk_screen {
@@ -611,6 +611,29 @@
status = “okay”;
rockchip,iommu-enabled = <1>;
rockchip,prop = ;
-------------------------------差别很大啊,幸好看到下面回复说有不一致,不知道提问大神是否修改最终成功否,回复的修改是另外一个节点,没有说rk_screen是否要修改,先保留吧,新增之,
+ power_ctr: power_ctr {
+ rockchip,debug = <1>;
+
+ lcd_en:lcd_en {
+ rockchip,power_type = ;
+ gpios = <&gpio0 GPIO_B5 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+
+ /*
+ lcd_cs:lcd_cs {
+ rockchip,power_type = ;
+ gpios = <&gpio7 GPIO_A4 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+ lcd_rst:lcd_rst {
+ rockchip,power_type = ;
+ gpios = <&gpio5 GPIO_C1 GPIO_ACTIVE_LOW>;
+ rockchip,delay = <0>;
+ };
+ */
+};
+
};
新增
&lcdc0 {
status = “okay”;
rockchip,iommu-enabled = <1>;
rockchip,prop = ;
power_ctr: power_ctr {
rockchip,debug = <1>;
lcd_en:lcd_en {
rockchip,power_type = <GPIO>;
gpios = <&gpio0 GPIO_B5 GPIO_ACTIVE_HIGH>;
rockchip,delay = <10>;
};
/*
lcd_cs:lcd_cs {
rockchip,power_type = <GPIO>;
gpios = <&gpio7 GPIO_A4 GPIO_ACTIVE_HIGH>;
rockchip,delay = <10>;
};
lcd_rst:lcd_rst {
rockchip,power_type = <GPIO>;
gpios = <&gpio5 GPIO_C1 GPIO_ACTIVE_LOW>;
rockchip,delay = <0>;
};
*/
};
};
gogo 继续
使能背光pwm:
&pwm1 {
- status = "disabled";
+ status = "okay";
};
-----------完美匹配,改之,士气大涨
gogo
打开kernel/arch/arm/boot/dts/rk3288.dtsi,修改如下:
关闭CTR_GTCLKS:
rockchip,ctrbits = <
(0
|RKPM_CTR_PWR_DMNS
- |RKPM_CTR_GTCLKS
+ // |RKPM_CTR_GTCLKS
-----------------顺利匹配,继续
gogo
打开kernel/arch/arm/configs/firefly-rk3288_defconfig,修改如下:
修改触摸defconfig配置:
-CONFIG_TOUCHSCREEN_GSLX680=y
+CONFIG_TOUCHSCREEN_GSLX680_MT70817V2=y
---------------------查找,被注释了,基本一致,改之,小场面
gogo
打开device/rockchip/rk3288/rk3288_box/system.prop,修改如下: (此修改需要重新编译上层)
修改图标大小
-ro.sf.lcd_density=160
+ro.sf.lcd_density=320
--------------顺利了,改
快好了
打开frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,修改如下:(此修改需要重新编译上层)
添加屏幕旋转,此修改可以根据自己需求添加
loadSetting(stmt, Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY,
- "1");
+ "0");
------------------------查找 Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY,有两个地方,有个已经是0,把1的修改成0,先这样
完成修改,编译kernel,出现几个错误
1.lcd-LP079Qx1.dtsi文件找不到,修改成lcd-LP097Qx1.dtsi
2.最早没有看到回复,这个配置提示语法错误
&rk_screen {
@@ -611,6 +611,29 @@
3.一些笔误,修改
编译没有问题,两个警告
Warning (reg_format): “reg” property in /mt@40 has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1)
Warning (reg_format): “reg” property in /mpu@68 has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1)
正常是4字节,在dts文件中这两项定义成1个字节内容,前面为0,不用写吧,先这样
编译成功,加载镜像,期待,启动
失败,背光亮了,内容依然没有,在360获取主界面可以显示,不知道原因,求大神指点
请参考附件
lcd-LP079Qx1.zip (1005 Bytes)
楼主你这个调试LCD,是参考的什么的,最后后来成功了吗
下来了,看看。
楼主最终调试的如何了,怎么不更新了?这个rk 芯片自带edp 接口还是外置驱动芯片的??
还是不行,使用匹配的dtsi文件,根据补丁上的修改说明,还是不行,补丁的修改说明与当前版本中的内容也不一致了
大神能提供下,支持7.85屏的下面文件
kernel/arch/arm/boot/dts/firefly-rk3288.dts