现象:
驱动调试好基本功能后,由系统调整方向。目前机器默认为竖屏模式。但是开机logo ,动画,显示界面都是倒置180度。
1.首先修改默认的方向
kernel-4.4/arch/arm/configs/XXX_defconfig
kernel-4.4/arch/arm/configs/XXX_debug_defconfig
CONFIG_MTK_LCM_PHYSICAL_ROTATION="90" // 此处原来是270,故现在应该设置 为90
同理,lk中需要同样修改:
vendor/mediatek/proprietary/bootable/bootloader/lk/project/XXX.mk
MTK_LCM_PHYSICAL_ROTATION = 90
另外 project中也得修改:
device/emdoor/XXX/ProjectConfig.mk
MTK_LCM_PHYSICAL_ROTATION = 90
2.以上修改后,默认方向正确,触摸方向会倒置,需要修改对应的touch文件。
kernel-4.4/drivers/misc/mediatek/mach/mt8167/XXX/touchpanel/touch.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//#define TPD_ROTATION_SUPPORT /* ** 由于此处定义了touch的旋转方向。只有90 180 270。而定义的值为180 ** 而此时需要touch为倒180.所以需要设置默认0 ** 故而去掉改定义,就是默认0 */ #ifdef TPD_ROTATION_SUPPORT enum TPD_ROTATION_TYPE { TPD_ROTATION_90 = 0, TPD_ROTATION_180 = 1, TPD_ROTATION_270 = 2, }; int tpd_rotation_type = TPD_ROTATION_180; #endif
3.上述修改后就还有一个问题,机器旋转时,gsensor旋转xy相仿。故继续修改gSensor方向。
kernel-4.4/drivers/misc/mediatek/sensors-1.0/hwmon/hwmsen/hwmsen_helper.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21// 通过以下定义的表来调整方向 struct hwmsen_convert map[] = { /*0*/ {{ 1, 1, 1},{1,0,2}}, /*1*/ {{-1, 1, 1},{1,0,2}}, /*2*/ {{ 1,-1, 1},{1,0,2}}, /*3*/ {{ 1, 1,-1},{1,0,2}}, /*4*/ {{-1,-1, 1},{1,0,2}}, /*5*/ {{-1, 1,-1},{1,0,2}}, /*6*/ {{ 1,-1,-1},{1,0,2}}, /*7*/ {{-1,-1,-1},{1,0,2}}, /*8*/ {{ 1, 1, 1},{0,1,2}}, /*9*/ {{-1, 1, 1},{0,1,2}}, /*10*/ {{ 1,-1, 1},{0,1,2}}, /*11*/ {{ 1, 1,-1},{0,1,2}}, /*12*/ {{-1,-1, 1},{0,1,2}}, /*13*/ {{-1, 1,-1},{0,1,2}}, /*14*/ {{ 1,-1,-1},{0,1,2}}, /*15*/ {{-1,-1,-1},{0,1,2}}, };
kernel-4.4/arch/arm/boot/dts/XXX.dts
gsensor@18 {
compatible = "mediatek,gsensor";
reg = <0x18>;
direction = <14>;//此时为14,由于需要XY相反,故对应到 13,修改为13后方向旋转正常
power_id = <0xffff>;
power_vol = <0>;
firlen = <8>;
};
至此问题解决。
最后
以上就是舒服巨人最近收集整理的关于android P 平板默认方向修改 MTK平台的全部内容,更多相关android内容请搜索靠谱客的其他文章。
发表评论 取消回复