MTK6515 android打版软件配置

一、配置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

mt6515 驱动配置示例相关推荐

  1. Tomcat server.xml配置示例

    转载自    Tomcat server.xml配置示例 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于 ...

  2. mds部署服务器系统,Windows服务器2003年对MDS/IPS-8配置示例的iSCSI主机

    目录 简介 Cisco的iSCSI驱动,在服务器上位于,是iSCSI解决方法的关键组件.这些iSCSI驱动程序拦截SCSI命令,将其封装到IP数据包中,并将其重定向到Cisco SN 5420.Cis ...

  3. cyclone iv 器件手册_GaN器件的直接驱动配置

    受益于集成器件保护,直接驱动GaN器件可实现更高的开关电源效率和更佳的系统级可靠性. 高电压(600V)氮化镓(GaN)高电子迁移率晶体管(HEMT)的开关特性可实现提高开关模式电源效率和密度的新型拓 ...

  4. vsftpd基于mysql_vsftpd的基于pam_mysql的虚拟用户配置示例

    ~]# yum install mariadb-server ~]# yum install vsftpd 因为中CentOS 7平台上/lib64/security/中没有pam_mysql模块驱动 ...

  5. hbase 默认目录_HBase 配置示例

    基本分布式HBase安装 在下文内容中是一个分布式10节点的群集的基本配置示例:其中,节点被命名为example0,example1...一直到example9,在这个例子中:HBase Master ...

  6. Cisco Easy ***综合配置示例

    以下内容摘自正在全面热销的最新网络设备图书"豪华四件套"之一<Cisco路由器配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册 ...

  7. LVS DR模型配置示例

    要让路由知道哪台主机是Director,进行选择: 1.VIP:MAC(Director VIP) -- MAC绑定,但未必可行,例如路由是运营商的. 2.arptables 3.kernel par ...

  8. Logstash 参考指南(使用Filebeat Modules配置示例)

    使用Filebeat Modules配置示例 本节中的示例展示了如何构建用于解析Filebeat模块收集的数据的Logstash管道: Apache 2日志 本例中的Logstash管道配置展示了如何 ...

  9. Spring boot自动配置示例

    自动配置示例 HttpEncodingAutoConfiguration Http编码自动配置 以该类为例,查看自动配置过程 EnableAutoConfiguration HttpEncodingA ...

最新文章

  1. 95后博士生曹原连发两篇Nature,均为一作,网友:这才是真正的后浪
  2. 新版PyTorch发布!新增TorchScript API,扩展ONNX导出……4大功能更新值得关注
  3. italic与oblique的区别
  4. less 函数_Python中的函数式编程教程,学会用一行代码搞定所有内容
  5. pde lec 3 part 1
  6. 2016年工作总结和计划
  7. 年轻人不讲武德有多可怕?
  8. [html] 为什么我们要使用web workers?
  9. Linux/Centos源码安装python3任意版本
  10. 图像增强(一):randaugment
  11. 移动安全-iOS(三)
  12. iPhone企业应用实例分析之三:程序框架分析
  13. 卖家如何利用关键词进行SEO优化以提高排名?
  14. 05Nginx动静分离、 URLRewrite
  15. 怎么压缩html的文件,css如何压缩?
  16. 通过Hook进行游戏的全局加速
  17. NYOJ - 找点【贪心】
  18. web前端学习到什么程度可以面试工作
  19. Matlab工具箱标定和校正鱼眼镜头
  20. c语言搜题答案软件软件,大学c语音搜题

热门文章

  1. 华为手机vue_vue2.0 在华为手机等手机自带浏览器打开白屏的问题
  2. python List,它不是一个简单的数组
  3. docxtemplater + vue + docxtemplater-image-module-free 实现前端 word下载文字和免费图片下载
  4. 图论的灵魂——带你走进迪杰斯特拉算法的世界
  5. 微信公众平台对接C#-服务号开发配置
  6. 光电隔离转换器 直流信号放大器 导轨安装DIN11 IPO OC系列
  7. 从“鱼虎”相争到“鱼虎”帮,看游戏直播的风云变幻
  8. 【codeforces103A】Testing Pants for Sadness
  9. 计算机二级python模拟软件、真题
  10. 51单片机c语言延时时间计算,单片机定时器延迟时间计算