转自: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

  • 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 驱动目录及驱动文件
    • 4.4 4、配置刚刚添加的驱动文件
    • 4.5 5、配置pmic供电
  • 5 五、附录
    • 5.1 1、i2C配置的两种方法
    • 5.2 2、将触屏配置成点触模式

一、配置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);
...
}

五、附录

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.

方法二:在mtk6575_dev.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

MTK6515 android打版软件配置相关推荐

  1. [转]MTK6515 android打版软件配置

    摘:http://www.hovercool.com/en/Special:Print?topic=MTK6515_android打版软件配置#a_.E4.BA.94.E3.80.81.E6.B3.A ...

  2. 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 ...

  3. MTK android打版软件配置

    MTK6515 android打版软件配置  1 一.配置GPIO 2 二.配置emmc 3 三.配置LCM 3.1 1.增加LCM驱动文件 3.2 2.配置驱动文件 3.3 3.配置背光 4 四.配 ...

  4. android新年祝福代码,讯飞输入法发布Android新春版 Biu一下敲出美好祝愿!

    原标题:讯飞输入法发布Android新春版 Biu一下敲出美好祝愿! 挥别难忘的2018,讯飞输入法与小伙伴们携手迎接"猪"事顺利的新一年.Boys and 朋友们.Ladies ...

  5. 高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布

    人人网梦想版for Android 5.0.1下载(人人网Android客户端) 人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊 ...

  6. Android P版自定义开关机动画

    Android P版自定义开关机动画 Google default关机流程只显示进度条,不会播放关机动画.如需自定义开关机动画,建议使用mtkbootanimation进行客制化 [SOLUTION] ...

  7. Android 移动开发——第十三章——个人理财通(Android Studio 版)

    Android 移动开发--第十三章--个人理财通(Android Studio 版) 下载链接: 个人理财通--Android Studio 版

  8. Android8内测申请,微信8.0.6 for android内测版上线,附内测体验入口

    点击添加可以设置一个电话号码.多次点击可以设置多个电话号码,但最多只支持添加5个电话号码,而在老版本中只能设置一个电话号码. 2.微信拍一拍新增表情联动功能 大家还记得微信8.0刚刚上线的炸弹表情包吗 ...

  9. 傲游浏览器5241android,傲游浏览器Android平板版 三大功能图解妙用

    目前Android平板的浏览器到不少,但是各方面的功能很不健全.最近小编发现了一个宝,那便是傲游浏览器Android平板版!傲游从最基本的产品满足用户需求,给以最好的体验服务.她不仅能满足你在办公时的 ...

最新文章

  1. mysql二进制日志文件差不多_mysql数据同步-基于二进制日志文件和position复制点的方式...
  2. 机器学习-过拟合和欠拟合以及正则化处理
  3. 常见浏览器兼容性问题与解决方案
  4. Keil Debug(printf) Viewer的使用
  5. 设计模式使用率排行榜
  6. mysql数据自动备份_每天自动备份MySQL数据库的shell脚本
  7. 推荐 18 个终端命令行工具
  8. Linux修改挂载目录名称
  9. java把字体做成滚动的_Scroll text - JS实现文字自动循环滚动效果
  10. 如何制作一个横版格斗过关游戏_AppStore限免推荐丨加油打工人 竞速+横版格斗2款游戏陪你过周末?_手机游戏...
  11. php中字符串的截取函数,PHP字符串截取和截取函数的介绍
  12. 蓝桥杯:填字母游戏(第八届决赛javaB第五题) 博弈+递归+回溯+map记忆化
  13. 表格识别-pytorch
  14. android课程设计健身,健身软件课程设计_毕业论文设计.doc
  15. Oculus Rift-S 安装
  16. OJ 1202 镂空三角形
  17. Java 汉字转拼音(倒叙显示,过滤字符,字母,有数字添加到末尾)
  18. Pwnginx – a nginx backdoor offering shell
  19. CRM系统主要包含什么内容
  20. 小能手英语口语学习笔记

热门文章

  1. 【wpf】Image 图片绑定/更新
  2. 手持式DSView逻辑分析仪
  3. ARCGIS之土地耕地占补平衡系统报备坐标txt格式批量导出工具(定制开发版)
  4. 基于Halcon学习的基于形状模板匹配【一】find_scaled_shape_model.hdev例程
  5. 洁净工程洁净室施工计划的制定
  6. 「Linux」- 安装 Opera 浏览器 @20210124
  7. .next_sibling .previous_sibling 查找不到节点返回空白的原因
  8. 环迅支付为跨境电商平台添砖加瓦,促进行业蓬勃发展
  9. android闹钟程序后台运行,Android闹钟启动时间设置无效问题的解决方法
  10. jungheinrich永恒力叉车控制器面板维修概述