<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE</id>
	<title>MTK6515 android打版软件配置 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE&amp;action=history"/>
	<updated>2026-09-01T04:47:27Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE&amp;diff=823&amp;oldid=prev</id>
		<title>2015年5月6日 (三) 11:50 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_android%E6%89%93%E7%89%88%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE&amp;diff=823&amp;oldid=prev"/>
		<updated>2015-05-06T11:50:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 一、配置GPIO ==&lt;br /&gt;
&lt;br /&gt;
通过工具：&lt;br /&gt;
&lt;br /&gt;
mediatek/source/dct/DrvGen.exe&lt;br /&gt;
&lt;br /&gt;
配置并替换dws文件：&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/bbk75_emmc_gb2/kernel/dct/dct/codegen.dws&lt;br /&gt;
&lt;br /&gt;
*配置GPIO的主要目的是使系统在uboot，甚至preloader阶段时保持BB管脚的状态；在kernel启动阶段加载驱动模块时，不少驱动是会重新设置其用的gpio功能的，所以这一阶段并不要求非常严格，然而同时也必须要保证gpio所配置的初始状态不会影响到系统的启动，如死机、复位等等。&lt;br /&gt;
&lt;br /&gt;
== 二、配置emmc ==&lt;br /&gt;
&lt;br /&gt;
1、在下面文件的MTK6575标签栏添加对应的flash芯片型号信息：&lt;br /&gt;
&lt;br /&gt;
mediatek/build/tools/emigen/MT6575/MemoryDeviceList_MT6575.xls&lt;br /&gt;
&lt;br /&gt;
2、从以下文件获取flash芯片对应的序号（从第1列为0，开始数，如到第L列则为11）：&lt;br /&gt;
mediatek/build/tools/ptgen/emmc_region.xls&lt;br /&gt;
&lt;br /&gt;
3、mediatek/custom/bbk15_td_ics/preloader/inc/custom_MemoryDevice.h&lt;br /&gt;
&lt;br /&gt;
 #define BOARD_ID                LENOVO75&lt;br /&gt;
 #define CS_PART_NUMBER[0]       KMSJS000KM_B308&lt;br /&gt;
&lt;br /&gt;
将上面的宏更改为MemoryDeviceList_MT6575.xls中对应的内容&lt;br /&gt;
&lt;br /&gt;
4、mediatek/config/bbk15_td_ics/ProjectConfig.mk&lt;br /&gt;
&lt;br /&gt;
将EMMC_CHIP更改为第2步获取的数值，如EMMC_CHIP = 11。&lt;br /&gt;
&lt;br /&gt;
== 三、配置LCM ==&lt;br /&gt;
&lt;br /&gt;
=== 1、增加LCM驱动文件 ===&lt;br /&gt;
&lt;br /&gt;
(1)、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CUSTOM_KERNEL_LCM = sharp_S6D05A1X12_mcu&lt;br /&gt;
CUSTOM_UBOOT_LCM = sharp_S6D05A1X12_mcu&lt;br /&gt;
LCM_WIDTH = 320&lt;br /&gt;
LCM_HEIGHT = 480&lt;br /&gt;
BOOT_LOGO = cmcc_hvga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(2)、增加 lcm 驱动目录及文件&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/common/kernel/lcm/sharp_S6D05A1X12_mcu/&lt;br /&gt;
&lt;br /&gt;
*ps.如果是从其他平台拷贝而来，注意更改包含对应的头文件：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef BUILD_UBOOT&lt;br /&gt;
#include &amp;lt;asm/arch/mt6573_gpio.h&amp;gt;&lt;br /&gt;
#define print(x...) printf(x)&lt;br /&gt;
#else&lt;br /&gt;
#include &amp;lt;mach/mt6573_gpio.h&amp;gt;&lt;br /&gt;
#define print(x...) printk(x)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*改为：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef BUILD_UBOOT&lt;br /&gt;
#include &amp;lt;asm/arch/mt6575_gpio.h&amp;gt;&lt;br /&gt;
#define print(x...) printf(x)&lt;br /&gt;
#else&lt;br /&gt;
#include &amp;lt;mach/mt6575_gpio.h&amp;gt;&lt;br /&gt;
#define print(x...) printk(x)&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(3)、修改 mt65xx_lcm_list.c 使支持刚添加的驱动&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/common/kernel/lcm/mt65xx_lcm_list.c&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extern LCM_DRIVER sharp_S6D05A1X12_mcu_drv;&lt;br /&gt;
...&lt;br /&gt;
#if defined(SHARP_S6D05A1X12_MCU)&lt;br /&gt;
	&amp;amp;sharp_S6D05A1X12_mcu_drv,&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*ps.对于2、3步，uboot lcm驱动对应的驱动目录mediatek/custom/common/uboot/lcm/本也要添加，不过现在我们这一版本uboot/lcm/就是link到kernel/lcm/的，故省去这一步&lt;br /&gt;
&lt;br /&gt;
=== 2、配置驱动文件 ===&lt;br /&gt;
&lt;br /&gt;
打开 mediatek/custom/common/kernel/lcm/sharp_S6D05A1X12_mcu/sharp_S6D05A1X12_mcu.c，根据BB管脚定义和实际硬件连接，更改如下GPIO宏定义：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
#define LSA0_GPIO_PIN (GPIO49)&lt;br /&gt;
#define LSCE_GPIO_PIN (GPIO47)&lt;br /&gt;
#define LSCK_GPIO_PIN (GPIO51)&lt;br /&gt;
#define LSDA_GPIO_PIN (GPIO52)&lt;br /&gt;
&lt;br /&gt;
#define DPICK_GPIO_PIN (GPIO41)&lt;br /&gt;
#define DPIDE_GPIO_PIN (GPIO30)&lt;br /&gt;
#define DPIVSYNC_GPIO_PIN (GPIO21)&lt;br /&gt;
#define DPIHSYNC_GPIO_PIN (GPIO19)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== 3、配置背光 ===&lt;br /&gt;
&lt;br /&gt;
背光配置包括uboot和kernal中的文件：&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/bbk15_td_ics/kernel/leds/mt65xx/cust_leds.c&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/bbk15_td_ics/uboot/cust_leds.c&lt;br /&gt;
&lt;br /&gt;
主要配置&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
{&amp;quot;lcd-backlight&amp;quot;,     MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight},&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
中的响应函数&amp;quot;Cust_SetBacklight&amp;quot;，在其中要保证背光能亮，由于是打版软件，这里只先配置成gpio让其保持最亮。&lt;br /&gt;
&lt;br /&gt;
查背光IC datasheet可知，只需设置VFB为低、CE为高即可：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
//GPIO162-&amp;gt;BL_EN-&amp;gt;CE&lt;br /&gt;
mt_set_gpio_mode(GPIO162,GPIO_MODE_00);&lt;br /&gt;
mt_set_gpio_dir(GPIO162,GPIO_DIR_OUT);&lt;br /&gt;
mt_set_gpio_out(GPIO162,GPIO_OUT_ONE);&lt;br /&gt;
//GPIO67-&amp;gt;PWM1-&amp;gt;VFB&lt;br /&gt;
mt_set_gpio_mode(GPIO67,GPIO_MODE_00);&lt;br /&gt;
mt_set_gpio_dir(GPIO67,GPIO_DIR_OUT);&lt;br /&gt;
mt_set_gpio_out(GPIO67,GPIO_OUT_ZERO);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*ps.uboot/cust_leds.c中还要包含头文件&amp;quot;#include &amp;lt;asm/arch/mt6575_gpio.h&amp;gt;&amp;quot;，否则编译会出错&lt;br /&gt;
&lt;br /&gt;
== 四、配置touch panel ==&lt;br /&gt;
&lt;br /&gt;
=== 1、通过dct配置gipo及其对应的别名 ===&lt;br /&gt;
&lt;br /&gt;
如：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
#define GPIO_CTP_RST_PIN         GPIO100&lt;br /&gt;
#define GPIO_CTP_RST_PIN_M_GPIO  GPIO_MODE_00&lt;br /&gt;
&lt;br /&gt;
#define GPIO_CTP_EINT_PIN         GPIO75&lt;br /&gt;
#define GPIO_CTP_EINT_PIN_M_GPIO  GPIO_MODE_00&lt;br /&gt;
#define GPIO_CTP_EINT_PIN_M_EINT  GPIO_MODE_01&lt;br /&gt;
#define GPIO_CTP_EINT_PIN_M_PWM  GPIO_MODE_02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2、配置mediatek/config/bbk15_td_ics/ProjectConfig.mk ===&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_KERNEL_TOUCHPANEL = qt602240&lt;br /&gt;
&lt;br /&gt;
=== 3、增加 tp 驱动目录及驱动文件 ===&lt;br /&gt;
&lt;br /&gt;
添加头文件：&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/bbk15_td_ics/kernel/touchpanel/qt602240/&lt;br /&gt;
&lt;br /&gt;
添加C文件：&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/common/kernel/touchpanel/qt602240/&lt;br /&gt;
&lt;br /&gt;
=== 4、配置刚刚添加的驱动文件 ===&lt;br /&gt;
&lt;br /&gt;
mediatek/custom/bbk15_td_ics/kernel/touchpanel/qt602240/&lt;br /&gt;
&lt;br /&gt;
更改以下宏定义为对应平台：&lt;br /&gt;
&lt;br /&gt;
 #define TPD_POWER_SOURCE         MT6575_POWER_VGP2&lt;br /&gt;
&lt;br /&gt;
check触摸屏驱动ic的i2c地址，确保代码与datasheet中保持一致：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static unsigned short force[] = {3, 0x4a, I2C_CLIENT_END,I2C_CLIENT_END}; //0x4a则为i2c地址&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*ps: 在mtk6575_dev.c中的地址必须是除去读写位后的地址，而force里的则里的从机地址则需包含读写位的8位标志,如0x94(即mtk对i2c地址的规定和其他地方不一样，一般情况下说i2c的地址都是不包含读写位的，但mtk则将最后一位读写标志算进去了，这点要注意一下).&lt;br /&gt;
&lt;br /&gt;
另外注意check一下此头文件中的其他宏定义信息，确保触屏与LCM适配，如：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
//#define TPD_RES_X                480&lt;br /&gt;
//#define TPD_RES_Y                800&lt;br /&gt;
//#define TPD_CALIBRATION_MATRIX  {962,0,0,0,1600,0,0,0};&lt;br /&gt;
#define TPD_CALIBRATION_MATRIX  {320*2,0,0,0,480*2,0,0,0};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5、配置pmic供电 ===&lt;br /&gt;
&lt;br /&gt;
一般在对应的.detect（重新供电操作）, .suspend(关闭供电操作), .resume(打开供电操作)中添加进行相关操作，供电功能函数如下：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
hwPowerDown(TPD_POWER_SOURCE,&amp;quot;TP&amp;quot;); //停止供电&lt;br /&gt;
hwPowerOn(TPD_POWER_SOURCE,VOL_2800,&amp;quot;TP&amp;quot;);	 //开始供电&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
另外也可直接在pmic的probe函数中配置(注意找对对应的pm电压输出口和电压大小)：&lt;br /&gt;
&lt;br /&gt;
mediatek/platform/mt6575/kernel/drivers/power/pmic_mt6329.c&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static int mt6329_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) {             &lt;br /&gt;
...&lt;br /&gt;
    pmic_ldo_enable(MT65XX_POWER_LDO_VGP2,KAL_TRUE);&lt;br /&gt;
    pmic_ldo_vol_sel(MT65XX_POWER_LDO_VGP2,UPMU_VOLT_2_8_0_0_V);&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 五、注意事项 ==&lt;br /&gt;
&lt;br /&gt;
在配置完音量键后，每次开机都会进入recovery mode(这一点在显示屏无显示时可通过串口抓打印消息验证，显示屏能显示时当然就一目了然了)。&lt;br /&gt;
&lt;br /&gt;
刚开始怀疑是硬件上的有问题，是不是哪里将音量键拉低了，因为我们是配置成开机时按住音量键才会进入recovery的，但电子的同事测试波形之后反馈说只有开机一小段时间输出低，后续便输出高了，于是再次将目光转到软件上来，后来我们查看dct得知连接volume的输入线芯片默认是内部拉低的，于是用dct将其配置成pull up，再开机，一切ok.&lt;br /&gt;
&lt;br /&gt;
== 六、附录 ==&lt;br /&gt;
&lt;br /&gt;
=== 1、i2C配置的两种方法 ===&lt;br /&gt;
&lt;br /&gt;
方法一：在force中进行i2c id的指定，然后用i2c_add_driver挂载到对应的i2c总线上去：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static unsigned short force[] = {3, 0x4a, I2C_CLIENT_END,I2C_CLIENT_END};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*注意：若使用mtk的硬件i2c注意上面的i2c地址要包括读写标志位，如上述的0x4a应改为0x94.&lt;br /&gt;
&lt;br /&gt;
方法二：在mediatek/platform/mt6575/kernel/core/mt6575_devs.c中进行设置：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static struct i2c_board_info __initdata i2c_devs0[]={&lt;br /&gt;
		{ I2C_BOARD_INFO(&amp;quot;fan5405&amp;quot;, (0xd4&amp;gt;&amp;gt;1)),},		&lt;br /&gt;
		{ I2C_BOARD_INFO(&amp;quot;qt602240ts&amp;quot;, (0x94&amp;gt;&amp;gt;1)),},	&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2、将触屏配置成点触模式 ===&lt;br /&gt;
qt602240ts在配置完成时默认是使用鼠标模式，此时可将以下文件push到 /system/usr/idc/ 即可设置为点触模式：&lt;br /&gt;
&lt;br /&gt;
out/target/product/bbk15_td_ics/system/usr/idc/qt602240ts.idc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basic Parameters&lt;br /&gt;
touch.deviceType = touchScreen&lt;br /&gt;
touch.orientationAware = 1&lt;br /&gt;
# Size&lt;br /&gt;
touch.size.calibration = diameter&lt;br /&gt;
touch.size.scale = 10&lt;br /&gt;
touch.size.bias = 0&lt;br /&gt;
touch.size.isSummed = 0&lt;br /&gt;
# Pressure&lt;br /&gt;
# Driver reports signal strength as pressure.&lt;br /&gt;
#&lt;br /&gt;
# A normal thumb touch typically registers about 200 signal strength&lt;br /&gt;
# units although we don&amp;#039;t expect these values to be accurate.&lt;br /&gt;
touch.pressure.calibration = amplitude&lt;br /&gt;
touch.pressure.scale = 0.005&lt;br /&gt;
# Orientation&lt;br /&gt;
touch.orientation.calibration = none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3、modem存放路径 ===&lt;br /&gt;
将modem编译生成的bin档放在&lt;br /&gt;
 mediatek/custom/common/modem&lt;br /&gt;
&lt;br /&gt;
=== 4、配置preloader的调试log输出端口 ===&lt;br /&gt;
调试时，可能需要配置使preloader的log从串口1输出，可更改文件：&lt;br /&gt;
 mediatek/custom/bbk17_td3001_ics2/preloader/inc/cust_bldr.h&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>