首先要知道,转屏180°,不仅意味着LCM改变180°,同样的TP触摸感应,G-sensor旋转重力感应也需要改变180°。(在改完后发现,摄像头也要改,指南针也得改)
LCM的改变可以找LCM供应商提供
TP的改变需要找到上报函数,在上报函数中改变参数值
G-sensor的改变则是选择或新建一个数组,重新确定X,Y,Z轴的位置,在设备树中选择该数组。
Camera的改变只需要修改公共配置文件就行了。
指南针类似于G-sensor,该对应方向配置表就行了。
第一步:通过配置文件找到机器对应的硬件驱动
配置文件路径:
mt8735_android8.1\kernel-3.18(对应)\arch\arm64\configs\(对应)configs
LCM:
CONFIG_CUSTOM_KERNEL_LCM=“starry2081101CH8028004_dsi_wsvga_vdo_t18”
TP:
CONFIG_TOUCHSCREEN_MTK_GT9XXTB_HOTKNOT=y
camera:
CONFIG_CUSTOM_KERNEL_IMGSENSOR=“imx219_mipi_raw gc2755mipi_raw”
mt8735_android8.1\kernel-3.18\drivers\misc\mediatek\sensors-1.0\hwmon\hwmsen
第二步:找到对应驱动文件并修改
LCM:(分为kernel与lk,都需要修改)
根据厂商给的文件进行修改。
路径:
mt8735_android8.1\kernel-3.18\drivers\misc\mediatek\lcm\starry2081101CH8028004_dsi_wsvga_vdo_t18\starry2081101CH8028004_dsi_wsvga_vdo_t18.c
{0xB1 ,2 , {0x68, 0x01}} ------>{0xB1 ,2 , {0x68, 0x07}}
mt8735_android8.1\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\starry2081101CH8028004_dsi_wsvga_vdo_t18\starry2081101CH8028004_dsi_wsvga_vdo_t18.c
{0xB1 ,2 , {0x68, 0x01}} ------>{0xB1 ,2 , {0x68, 0x07}}
TP:
打开该路径下的Kconfig文件
mt8735_android8.1\kernel-3.18\drivers\input\touchscreen\mediatek
查找并进入对应的TP所在路径
然后输入grep -nr “input_report_abs”搜索含有上报函数的文件,进入,进行更改。
G-sensor:
进入该文件
kernel-3.18/drivers/misc/mediatek/sensors-1.0/hwmon/hwmsen/hwmsen_helper.c
搜索struct hwmsen_convert map[]
看是否有满足要求的X,Y,Z配置,没有就自己添加一个。
kernel-3.18\arch\arm64\boot\dts\t16_8735a_64_bsp.dts
然后在该文件中搜索driection 找到对应sensor 改变选择的配置数组。
Camera
vendor\mediatek\proprietary\custom\mt6735\hal\D1\imgsensor_metadata\common\config_static_metadata_common.h
case 0:(0为前摄,1为后摄)
//======================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_ORIENTATION)
CONFIG_ENTRY_VALUE(270, MINT32)------> CONFIG_ENTRY_VALUE(90, MINT32)
CONFIG_METADATA_END()
//======================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_WANTED_ORIENTATION)
CONFIG_ENTRY_VALUE(270, MINT32)------>CONFIG_ENTRY_VALUE(90, MINT32)
case 1:(0为前摄,1为后摄)
//======================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_ORIENTATION)
CONFIG_ENTRY_VALUE(270, MINT32)------> CONFIG_ENTRY_VALUE(90, MINT32)
CONFIG_METADATA_END()
//======================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_WANTED_ORIENTATION)
CONFIG_ENTRY_VALUE(270, MINT32)------>CONFIG_ENTRY_VALUE(90, MINT32)
指南针:
进入该文件
kernel-3.18\drivers\misc\mediatek\sensors-1.0\magnetometer\mmc3630\mmc3630x.c
搜索direction 找到对应的方向选择节点。
看是否有满足要求的X,Y,Z配置,没有就自己添加一个。
如果没有选择方向,则会默认为dts的方向
kernel-3.18\arch\arm64\boot\dts\t16_8735a_64_bsp.dts
然后在该文件中搜索driection 找到对应sensor 改变选择的配置数组。
kernel-3.18/drivers/misc/mediatek/sensors-1.0/hwmon/hwmsen/hwmsen_helper.c
(他们共用一个表)
若不知道路径,可以问别人,不过建议先git log查看之前类似驱动文件改动的路径。
知识点:LCM,TP,G-sensor驱动内容,启动时LK->LERNEL的流程。