[转]MTK6515 android打版软件配置
摘:http://www.hovercool.com/en/Special:Print?topic=MTK6515_android打版软件配置#a_.E4.BA.94.E3.80.81.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A1.B9
一、配置GPIO
通过工具:
mediatek/source/dct/DrvGen.exe
配置并替换dws文件:
mediatek/custom/bbk75_emmc_gb2/kernel/dct/dct/codegen.dws
- 配置GPIO的主要目的是使系统在uboot,甚至preloader阶段时保持BB管脚的状态;在kernel启动阶段加载驱动模块时,不少驱动是会重新设置其用的gpio功能的,所以这一阶段并不要求非常严格,然而同时也必须要保证gpio所配置的初始状态不会影响到系统的启动,如死机、复位等等。
二、配置emmc
1、在下面文件的MTK6575标签栏添加对应的flash芯片型号信息:
mediatek/build/tools/emigen/MT6575/MemoryDeviceList_MT6575.xls
2、从以下文件获取flash芯片对应的序号(从第1列为0,开始数,如到第L列则为11): mediatek/build/tools/ptgen/emmc_region.xls
3、mediatek/custom/bbk15_td_ics/preloader/inc/custom_MemoryDevice.h
#define BOARD_ID LENOVO75 #define CS_PART_NUMBER[0] KMSJS000KM_B308
将上面的宏更改为MemoryDeviceList_MT6575.xls中对应的内容
4、mediatek/config/bbk15_td_ics/ProjectConfig.mk
将EMMC_CHIP更改为第2步获取的数值,如EMMC_CHIP = 11。
三、配置LCM
1、增加LCM驱动文件
(1)、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk
CUSTOM_KERNEL_LCM = sharp_S6D05A1X12_mcu CUSTOM_UBOOT_LCM = sharp_S6D05A1X12_mcu LCM_WIDTH = 320 LCM_HEIGHT = 480 BOOT_LOGO = cmcc_hvga
(2)、增加 lcm 驱动目录及文件
mediatek/custom/common/kernel/lcm/sharp_S6D05A1X12_mcu/
- ps.如果是从其他平台拷贝而来,注意更改包含对应的头文件:
#ifdef BUILD_UBOOT #include <asm/arch/mt6573_gpio.h> #define print(x...) printf(x) #else #include <mach/mt6573_gpio.h> #define print(x...) printk(x) #endif
- 改为:
#ifdef BUILD_UBOOT #include <asm/arch/mt6575_gpio.h> #define print(x...) printf(x) #else #include <mach/mt6575_gpio.h> #define print(x...) printk(x) #endif
(3)、修改 mt65xx_lcm_list.c 使支持刚添加的驱动
mediatek/custom/common/kernel/lcm/mt65xx_lcm_list.c
extern LCM_DRIVER sharp_S6D05A1X12_mcu_drv; ... #if defined(SHARP_S6D05A1X12_MCU)&sharp_S6D05A1X12_mcu_drv, #endif
- ps.对于2、3步,uboot lcm驱动对应的驱动目录mediatek/custom/common/uboot/lcm/本也要添加,不过现在我们这一版本uboot/lcm/就是link到kernel/lcm/的,故省去这一步
2、配置驱动文件
打开 mediatek/custom/common/kernel/lcm/sharp_S6D05A1X12_mcu/sharp_S6D05A1X12_mcu.c,根据BB管脚定义和实际硬件连接,更改如下GPIO宏定义:
#define LSA0_GPIO_PIN (GPIO49) #define LSCE_GPIO_PIN (GPIO47) #define LSCK_GPIO_PIN (GPIO51) #define LSDA_GPIO_PIN (GPIO52)#define DPICK_GPIO_PIN (GPIO41) #define DPIDE_GPIO_PIN (GPIO30) #define DPIVSYNC_GPIO_PIN (GPIO21) #define DPIHSYNC_GPIO_PIN (GPIO19)
3、配置背光
背光配置包括uboot和kernal中的文件:
mediatek/custom/bbk15_td_ics/kernel/leds/mt65xx/cust_leds.c
mediatek/custom/bbk15_td_ics/uboot/cust_leds.c
主要配置
... {"lcd-backlight", MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight}, ...
中的响应函数"Cust_SetBacklight",在其中要保证背光能亮,由于是打版软件,这里只先配置成gpio让其保持最亮。
查背光IC datasheet可知,只需设置VFB为低、CE为高即可:
... //GPIO162->BL_EN->CE mt_set_gpio_mode(GPIO162,GPIO_MODE_00); mt_set_gpio_dir(GPIO162,GPIO_DIR_OUT); mt_set_gpio_out(GPIO162,GPIO_OUT_ONE); //GPIO67->PWM1->VFB mt_set_gpio_mode(GPIO67,GPIO_MODE_00); mt_set_gpio_dir(GPIO67,GPIO_DIR_OUT); mt_set_gpio_out(GPIO67,GPIO_OUT_ZERO); ...
- ps.uboot/cust_leds.c中还要包含头文件"#include <asm/arch/mt6575_gpio.h>",否则编译会出错
四、配置touch panel
1、通过dct配置gipo及其对应的别名
如:
#define GPIO_CTP_RST_PIN GPIO100 #define GPIO_CTP_RST_PIN_M_GPIO GPIO_MODE_00#define GPIO_CTP_EINT_PIN GPIO75 #define GPIO_CTP_EINT_PIN_M_GPIO GPIO_MODE_00 #define GPIO_CTP_EINT_PIN_M_EINT GPIO_MODE_01 #define GPIO_CTP_EINT_PIN_M_PWM GPIO_MODE_02
2、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk
CUSTOM_KERNEL_TOUCHPANEL = qt602240
3、增加 tp 驱动目录及驱动文件
添加头文件:
mediatek/custom/bbk15_td_ics/kernel/touchpanel/qt602240/
添加C文件:
mediatek/custom/common/kernel/touchpanel/qt602240/
4、配置刚刚添加的驱动文件
mediatek/custom/bbk15_td_ics/kernel/touchpanel/qt602240/
更改以下宏定义为对应平台:
#define TPD_POWER_SOURCE MT6575_POWER_VGP2
check触摸屏驱动ic的i2c地址,确保代码与datasheet中保持一致:
static unsigned short force[] = {3, 0x4a, I2C_CLIENT_END,I2C_CLIENT_END}; //0x4a则为i2c地址
- ps: 在mtk6575_dev.c中的地址必须是除去读写位后的地址,而force里的则里的从机地址则需包含读写位的8位标志,如0x94(即mtk对i2c地址的规定和其他地方不一样,一般情况下说i2c的地址都是不包含读写位的,但mtk则将最后一位读写标志算进去了,这点要注意一下).
另外注意check一下此头文件中的其他宏定义信息,确保触屏与LCM适配,如:
//#define TPD_RES_X 480 //#define TPD_RES_Y 800 //#define TPD_CALIBRATION_MATRIX {962,0,0,0,1600,0,0,0}; #define TPD_CALIBRATION_MATRIX {320*2,0,0,0,480*2,0,0,0};
5、配置pmic供电
一般在对应的.detect(重新供电操作), .suspend(关闭供电操作), .resume(打开供电操作)中添加进行相关操作,供电功能函数如下:
hwPowerDown(TPD_POWER_SOURCE,"TP"); //停止供电 hwPowerOn(TPD_POWER_SOURCE,VOL_2800,"TP"); //开始供电
另外也可直接在pmic的probe函数中配置(注意找对对应的pm电压输出口和电压大小):
mediatek/platform/mt6575/kernel/drivers/power/pmic_mt6329.c
static int mt6329_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) { ...pmic_ldo_enable(MT65XX_POWER_LDO_VGP2,KAL_TRUE);pmic_ldo_vol_sel(MT65XX_POWER_LDO_VGP2,UPMU_VOLT_2_8_0_0_V); ... }
五、注意事项
在配置完音量键后,每次开机都会进入recovery mode(这一点在显示屏无显示时可通过串口抓打印消息验证,显示屏能显示时当然就一目了然了)。
刚开始怀疑是硬件上的有问题,是不是哪里将音量键拉低了,因为我们是配置成开机时按住音量键才会进入recovery的,但电子的同事测试波形之后反馈说只有开机一小段时间输出低,后续便输出高了,于是再次将目光转到软件上来,后来我们查看dct得知连接volume的输入线芯片默认是内部拉低的,于是用dct将其配置成pull up,再开机,一切ok.
六、附录
1、i2C配置的两种方法
方法一:在force中进行i2c id的指定,然后用i2c_add_driver挂载到对应的i2c总线上去:
static unsigned short force[] = {3, 0x4a, I2C_CLIENT_END,I2C_CLIENT_END};
- 注意:若使用mtk的硬件i2c注意上面的i2c地址要包括读写标志位,如上述的0x4a应改为0x94.
方法二:在mediatek/platform/mt6575/kernel/core/mt6575_devs.c中进行设置:
static struct i2c_board_info __initdata i2c_devs0[]={{ I2C_BOARD_INFO("fan5405", (0xd4>>1)),}, { I2C_BOARD_INFO("qt602240ts", (0x94>>1)),}, };
2、将触屏配置成点触模式
qt602240ts在配置完成时默认是使用鼠标模式,此时可将以下文件push到 /system/usr/idc/ 即可设置为点触模式:
out/target/product/bbk15_td_ics/system/usr/idc/qt602240ts.idc
# Basic Parameters touch.deviceType = touchScreen touch.orientationAware = 1 # Size touch.size.calibration = diameter touch.size.scale = 10 touch.size.bias = 0 touch.size.isSummed = 0 # Pressure # Driver reports signal strength as pressure. # # A normal thumb touch typically registers about 200 signal strength # units although we don't expect these values to be accurate. touch.pressure.calibration = amplitude touch.pressure.scale = 0.005 # Orientation touch.orientation.calibration = none
3、modem存放路径
将modem编译生成的bin档放在
mediatek/custom/common/modem
4、配置preloader的调试log输出端口
调试时,可能需要配置使preloader的log从串口1输出,可更改文件:
mediatek/custom/bbk17_td3001_ics2/preloader/inc/cust_bldr.h
[转]MTK6515 android打版软件配置相关推荐
- MTK6515 android打版软件配置(DrvGen.exe 使用)
1 一.配置GPIO 2 二.配置emmc 3 三.配置LCM 3.1 1.增加LCM驱动文件 3.2 2.配置驱动文件 3.3 3.配置背光 4 四.配置touch panel 4.1 1.通过dc ...
- MTK6515 android打版软件配置
转自:http://www.hovercool.com/en/Special:Print?topic=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB% ...
- MTK android打版软件配置
MTK6515 android打版软件配置 1 一.配置GPIO 2 二.配置emmc 3 三.配置LCM 3.1 1.增加LCM驱动文件 3.2 2.配置驱动文件 3.3 3.配置背光 4 四.配 ...
- android新年祝福代码,讯飞输入法发布Android新春版 Biu一下敲出美好祝愿!
原标题:讯飞输入法发布Android新春版 Biu一下敲出美好祝愿! 挥别难忘的2018,讯飞输入法与小伙伴们携手迎接"猪"事顺利的新一年.Boys and 朋友们.Ladies ...
- 高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布
人人网梦想版for Android 5.0.1下载(人人网Android客户端) 人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊 ...
- Android P版自定义开关机动画
Android P版自定义开关机动画 Google default关机流程只显示进度条,不会播放关机动画.如需自定义开关机动画,建议使用mtkbootanimation进行客制化 [SOLUTION] ...
- Android 移动开发——第十三章——个人理财通(Android Studio 版)
Android 移动开发--第十三章--个人理财通(Android Studio 版) 下载链接: 个人理财通--Android Studio 版
- Android8内测申请,微信8.0.6 for android内测版上线,附内测体验入口
点击添加可以设置一个电话号码.多次点击可以设置多个电话号码,但最多只支持添加5个电话号码,而在老版本中只能设置一个电话号码. 2.微信拍一拍新增表情联动功能 大家还记得微信8.0刚刚上线的炸弹表情包吗 ...
- 傲游浏览器5241android,傲游浏览器Android平板版 三大功能图解妙用
目前Android平板的浏览器到不少,但是各方面的功能很不健全.最近小编发现了一个宝,那便是傲游浏览器Android平板版!傲游从最基本的产品满足用户需求,给以最好的体验服务.她不仅能满足你在办公时的 ...
最新文章
- egg.js连接mysql数据库遇到的问题
- Struts编程心得
- FBI警告公众小心USB充电器:可能是键盘记录仪KeySweeper
- java面试题十五 for循环一个题目
- 如果Java快死了,那么它肯定看起来非常健康
- 服务器系统授权,授权方案说明
- VS2015解决方案资源管理器空白,不显示内容
- 现在为什么不出翻盖手机了?
- Python项目部署(宝塔面板)
- AEJoy —— 表达式之弹性(韧性)模拟详解【JS】
- Gitlab首次首次使用步骤
- 编译原理实验四 语义分析及中间代码生成
- 以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。给出队满条件和相应的如对和出队算法。
- 深入GraphQL 的使用语法
- 【C语言结构体题】定义用于存储学生信息的结构体数组,输入学生的准考证号、姓名和成绩信息,计算总分,并按总分由高到低输出。
- ae水墨遮罩步骤_AE3分钟教你水墨画风格片头制作
- 充值10万跌成860元,YAM一日崩盘记
- Android 关于设置Dialog大小宽高和动画详解
- 成品直播源码推荐,登录界面实现插入背景
- 数据分享 | 中国第二次冰川编目
热门文章
- 【Spring Boot学习】日志文件,Spring Boot也会写日记了,这些事你知道嘛 ? ? ?
- VS Code真的会一统江湖吗?
- NYOJ 光棍节的快乐【全错排问题】
- 汉邦高科参与华为鸿蒙系统,汉邦高科(300449)06月27日10:30大单揭秘
- chmod 数字解释
- php微信 发送信息,PHP微信企业号主动给用户发送消息接口代码
- 阿里云 rdc 全称
- 名帖320 启功 行书《古体诗十二屏》
- JMeter提示Could not create the Java virtual machine
- 信泰人寿:推进数字化转型,追求高质量发展