[转]MTK6515 android打版软件配置

应用层操作I2C(MTK) linux 驱动中I2C设备驱动有两种,其一为用户模式设备驱动,依赖i2c子系统中的i2c-dev驱动,在用户空间去读写i2c设备,另一种就是普通的设备驱动。本文主要讨论第一种:在用户空间读写I2C设备。 首先关于用户空间读写I2C的基本操作, 《i2c驱动之调用ioctl函数进行读写at24c08》 这篇文章看一下就好,不重复说了。然后是MTK平台,I2C驱动的分析,可以看一下 《MTK I2C... 阅读详情

摘: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

MTK的Bootable简单分析 大致的流程图如下: 上电后RESET,ARM核开始执行Boot ROM,具体操作有:(代码固化在ROM中) 1、  初始化内置SRAM堆栈 2、  初始化nand/emmc(手机内置存储) 3、  把nand内存储的Pre-loader导入SRAM中 4、  跳到SRAM中执行Pre-loader 在内置SRAM中执行Pre-loader操作:(到bootloader/prel 阅读详情

相关推荐

[MTK] mt6575等相关的手机开发资料(PDF文档)

https://github.com/luckasfb/Development_Documents/tree/master/MTK-Mediatek-Alps-Documents + 号开头的为目录,其他为文件。 +A10 +MMI_Training_Materials +MT6575_SW_Doc_Package_Application-password_2510474

duanlove(技术路途)专栏 6789

MTK6515 android打版软件配置

转自:http://www.hovercool.com/en/Special:Print?topic=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE#a_1.E3.80.81.E5.A2.9E.E5.8A.A0LCM.E9.A9.B1.E5.8A.A8.E6.96.87.E4.BB.B6

wyymaomi的专栏 2677

Android i2cdetect i2cdump i2cget i2cset调试工具使用

本文介绍Android/Linux (反正是ARM) 的I2C调试工具用法 , 包括i2cdetect、i2cdump、i2cget和i2cset,可实现I2C设备的识别、监控和配置。i2cdetect用于扫描所有设备地址,i2cdump读取寄存器的值,而i2cget和i2cset分别实现读取和写入寄存器的功能。这些工具提供了便捷的方式与I2C设备进行交互,深入了解设备状态与配置。

我其实什么都不会 8454

MTK(mt6797)-DTS修改---I2C设备(Kernrl3.18)

修改kernel-3.18\drivers\misc\mediatek\mach\mt6797\amt6797_evb_m\dct\dct\codegen.dws目录下的DWS文件,在对应的I2C_CHANNEL上添加GOODIX的设备,并设定I2C的地址,如下代码段1中所示: 代码段1 kernel-3.18\drivers\misc\mediatek\mach\mt6797\amt6797_evb_m\dct\dct\codegen.dws <device16> &...

u010783226的专栏 3779

MTK 平台 dws 配置工具 DrvGen V2.5

MTK 平台 dws 配置工具 DrvGen V2.5 ,源码包mt6765提取出来的的配置工具,用此工具,可修改管脚、外设等配置,生成芯片的配置文件。

【一张图系列】别再混淆了!5分钟搞懂ERP、MES、PLC的职责边界与数据流》

《ERP、MES、PLC系统边界与协作解析》一文清晰阐述了制造业三大核心系统的角色分工与数据流转。文章将ERP比作企业"大脑"负责战略规划,MES作为车间"指挥官"负责执行调度,PLC则是设备"士兵"执行具体操作。通过一张架构图展示了从计划层到控制层的完整信息流:蓝色箭头表示指令下行(ERP→MES→PLC),橙色箭头代表数据上行反馈(PLC→MES→ERP)。文章强调理清系统边界对数字化转型、部门协作和项目实施的关键作用,并预告下期将深入解析ME

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 970

MTK android打版软件配置

MTK6515 android打版软件配置  1 一、配置GPIO 2 二、配置emmc 3 三、配置LCM 3.1 1、增加LCM驱动文件 3.2 2、配置驱动文件 3.3 3、配置背光 4 四、配置touch panel 4.1 1、通过dct配置gipo及其对应的别名 4.2 2、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk

yihui8的专栏 1818

containerd镜像加速配置全解析:从host.toml到config.toml的演进与实践

本文全面解析了containerd镜像加速的配置方法,重点对比了传统的config.toml集中式配置与现代的host.toml模块化配置的演进与优劣。文章通过实战演示,详细指导如何为docker.io、registry.k8s.io等常见仓库配置host.toml加速,并提供了生产环境下的最佳实践、故障排查与性能优化建议,帮助用户显著提升镜像拉取效率与系统稳定性。

jenkins8butler的博客 698

mt6515 驱动配置示例

MTK6515 android打版软件配置 一、配置GPIO 通过工具: mediatek/source/dct/DrvGen.exe 配置并替换dws文件: mediatek/custom/bbk75_emmc_gb2/kernel/dct/dct/codegen.dws ·           配置GPIO的主要目的是使系统在uboot,甚至preloader阶段时保持BB管脚

enjio的专栏 1809

pyautogui库详细教程,逐行注释(附项目实战:基于图像识别实现崩坏星穹铁道自动化测试)

本文包含了pyautogui的使用方法与常见问题指南,随文附带对游戏实现的自动化项目源码与说明文档

m0_53043024的博客 1万+

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

MTK6515 android 配置GPIO, emmc, LCM, touch panel等

转载:http://blog.sina.com.cn/s/blog_541e0ada0101aym5.html 一、配置GPIO 通过工具: mediatek/source/dct/DrvGen.exe 配置并替换dws文件: mediatek/custom/bbk75_emmc_gb2/kernel/dct/dct/codegen.dws 配置GPIO的主要目

richu123的专栏 2139

Deepfake检测模型-PyDeepFakeDet项目复现实验报告-深度学习

该实验是对于https://github.com/wangjk666/PyDeepFakeDet模型的复现。PyDeepFakeDet 是一款集成的、可扩展的 Deepfake 检测工具。目标是提供最先进的 Deepfake 检测模型以及用于在常用 Deepfake 数据集上训练和评估新模型的接口。

一位不是很硕的鉴伪方向硕士 5494

MTK6575 量产软件修改信息

MTK6575 量产软件修改信息   2013-05-13 15:25:36|  分类: android源码 |  标签: |举报 |字号大中小 订阅 平台:MTK6575 下面只是一些做订单时候经常要改动的地方,没什么技术含量,不过我觉得这一部分也比较重要,研发出来的东西,卖出去换回钱,才是到我们最大的回报。这一部分会持续更新,指不定一个“极品”的客户要

zhuch1111的专栏 1962

《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台

处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。

2301_79143213的博客 448

【网络与爬虫 61】移动端App爬虫终极指南:Android-iOS应用数据提取黑科技全解析

本文全面解析移动端App爬虫技术,涵盖Android和iOS两大平台的数据提取方法。从基础的网络抓包到高级的代码注入,从自动化测试框架到反调试技术绕过,为开发者提供移动端数据采集的完整解决方案和实战经验。

熵数实验室 3023

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、通过dct配置gipo及其对应的别名 4.2 2、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk 4.3 3、增加 tp 驱动目录及驱动文件

迷路飞虫 4405

东北大学计算机预推免(双非友好)

东北大学,个人觉得在985里面对双非比较友好,而且学校的计算机专业实力也比较强,上岸难度不算很大,可以重点关注一下。学校复试审核的时间比较早,拿到复试资格之后,一定要留意报名系统首页中计算机学院的信息,学校也会在全国各地不同时间安排面试,可以根据自己的情况选择一个合适的时间前去面试,并且有对应面试场次的QQ群,信息会在群里面发布。面试成绩会在预推免系统中直接公布,但是是否拟录取不会公布,需要考生自行判断,今年计算机学院录取线定在了86分左右,最终递补下来,好像录取到了84分左右。

D1379951481的博客 3120

mtk android settings

svn log --stop-on-copy svn://192.168.10.22/ALPS_GB2_V2.17_MT6515_NAND_6628_RGT/branches/xiazhengguo/g209_20130217_GELJSW-1058 svn merge -r 9788:HEAD svn://192.168.10.22/ALPS_GB2_V2.17_MT6515_NAND_662

hsyouxishe的专栏 4594

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MTK串口打印乱码JB版本

[FAQ04266][uart] 怎样切换 uart log 端口 [DESCRIPTION] 切换 uart log 端口的方法 [KEYWORD] uart log [SOLUTION] MT6575/77/89 Uart log可以从Uart4上输出,也可以从Uart1输出 可以修改如下宏定义切换log输出口: mediatek/cust [FAQ071

disadministrator的专栏 1853

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mtk小结

svn log --stop-on-copy svn://192.168.10.22/ALPS_GB2_V2.17_MT6515_NAND_6628_RGT/branches/xiazhengguo/g209_20130217_GELJSW-1058 svn merge -r 9788:HEAD svn://192.168.10.22/ALPS_GB2_V2.17_MT6515_NAND_662

summer's android 专栏 5956

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

在MTK6572当中如何增加一个新按键,而且此按键值在虚拟按键当中可以使用

在物理按键当中如果你要增加一个新按键: [Description] How to add a new key on android ICS/ICS2   [Solution] 1.在DCT tool keypad list 文件增加新按键的选项 alps\mediatek\source\dct\Keypad_YuSu.cmp中添加新键,如SMS快捷键 KEY_SYM KEY_SMS

u013478557的专栏 4761
下一篇: MTK6582修改蓝牙设备的默认名称
bdwangmin
博客等级 码龄19年 4粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值