MTK Android 之MT6577驱动笔记
原文:http://blog.csdn.net/cbk861110/article/details/9385439
1. LCD
1.1怎樣新建一個LCD驅動
LCD模組主要包括LCD顯示屏和驅動IC。比如LF040DNYB16a模組的驅動IC型號為NT35510。要在MTA5573平臺上新建這個lcd的驅動,步驟如下:
A.??????新建文件夾nt35510:
\mediatek\custom\common\uboot\lcm\ nt35510
\mediatek\custom\common\kernel\lcm\ nt35510
\mediatek\custom\common\lk\lcm\ nt35510//JB? ADD
B.修改\mediatek\custom\common\kernel\lcm\ mt65xx_lcm_list.c, 在lcm_driver_list [ lcm_count ] 中增加nt35510_lcm_drv。
C.打開mediatek\config\ginwave73_gb\ProjectConfig.mk:
BUILD_LK=yes //JB?ADD
BUILD_UBOOT=yes
BOOT_LOGO=wsvganl
?
CUSTOM_UBOOT_LCM = nt35510
CUSTOM_KERNEL_LCM = nt35510
CUSTOM_LK_LCM= nt35510//JB? ADD
LCM_WIDTH=
LCM_HEIGHT=
1.2 LCDIC nt35510.c驅動文件移植原則:
根據具體平臺,填充對應的函數,不能直接復制整個文件,避免不必要編譯和接口錯誤。
?
1.3 LCD旋轉180度(默認豎屏方向,關聯到很多界面,需要統一修改)
Driver:MTK_LCM_PHYSICAL_ROTATION =180//驅動層此種改法影響camera\tp\sensor及其他功能。(不推薦此方法)
MMI:PhoneWindowManager.java中修改。(此方法會引起其他MMI問題) (不推薦此方法)
Feature:(橫屏豎屏替換)LCM_WIDTH= LCM_HEIGHT=
?
2. leds 配置
CUSTOM_KERNEL_LEDS= mt65xx
?
mediatek\custom\a5\kernel\leds\mt65xx\cust_leds.c
mediatek\custom\a5\uboot\cust_leds.c
static structcust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {
{"red",??? ?MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK0,{0}},?????? //benmodify
{"green",?? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK1,{0}},?????? //benmodify
{"blue",??? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK2,{0}},?????? //ben modify
{"jogball-backlight",MT65XX_LED_MODE_NONE, -1,{0}},
{"keyboard-backlight",MT65XX_LED_MODE_NONE,-1,{0}},
{"button-backlight",? MT65XX_LED_MODE_NONE, -1,{0}},????? //ben modify
{"lcd-backlight",MT65XX_LED_MODE_PWM,PWM1,{PWM_CLK_NEW_MODE_BLOCK,CLK_DIV128,4,4}},????????? //benmodify
//{"lcd-backlight",MT65XX_LED_MODE_CUST,(int)DISP_SetBacklight,{0}},
};
?
mediatek\source\kernel\drivers\leds\leds.c
?
3. Flash配置:
3.0?Flashemmc scat?分區(emmc) :
可對emmc進行分區,修改preloader\systemimage\userdata\FAT?等各個分區。
T:\jb\a6_homechoice\a6_homechoice_131014\alps\mediatek\build\tools\ptgen\MT6577\partition_table_MT6577.xls
?
Scatter文件參考(可從scat文件反向推斷partition_table?的table便簽頁,例如是否含OTP分區):
..\out\target\product\a5\MT6577_Android_scatter_emmc.txt//與partition_table表中的分區一一對應
?
board 配置與分區信息
mediatek\custom\konka73_gb\kernel\core\src\board.c
?
mediatek\custom\konka73_gb\kernel\core\src\partition.c
structpart_name_map g_part_name_map[PART_MAX_COUNT] = {
???????? {"preloader", PART_PRELOADER,?????? "rawdata",??? 0,?????? 0,?????? 0},
???????? {"dsp_bl",??? PART_DSP_DL,???? "rawdata",??? 1,?????? 0,?????? 0},
???????? {"mbr",??????? PART_MBR,????????? "raw data",??? 2,?????? 1,?????? 1},
???????? {"ebr1",??????? PART_EBR1,???????? "raw data",??? 3,?????? 1,?????? 1},
???????? {"pmt",??????? PART_PMT, "raw data",??? 4,?????? 0,?????? 0},
???????? {"nvram",???? PART_NVRAM,???? "rawdata",??? 5,?????? 0,?????? 0},
???????? {"seccfg",???? PART_SECURE,??? "raw data",??? 6,?????? 0,?????? 0},
???????? {"uboot",????? PART_UBOOT,????? "raw data",??? 7,?????? 1,?????? 1},
???????? {"boot",?????? PART_BOOTIMG,? "raw data",??? 8,?????? 1,?????? 1},
???????? {"recovery",? PART_RECOVERY,???????? "rawdata",??? 9,?????? 1,?????? 1},
???????? {"sec_ro",???? PART_SECSTATIC,???????? "ext4",???????? 10,???? 0,?????? 0},
???????? {"misc",?????? PART_MISC,???????? "raw data",??? 11,???? 0,?????? 0},
???????? {"logo",?????? PART_LOGO,??????? "raw data",??? 12,???? 1,?????? 1},
???????? {"expdb",???? PART_APANIC,???? "raw data",??? 13,???? 0,?????? 0},
???????? {"system",??? PART_ANDSYSIMG,?????? "ext4",???????? 14,???? 1,?????? 1},
???????? {"cache",????? PART_CACHE,????? "ext4",???????? 15,???? 1,?????? 1},
???????? {"userdata",?? PART_USER,???????? "ext4",???????? 16,???? 1,?????? 1},
???????? {"fat", PART_FAT,?? "fat",? 17,???? 0,?????? 0},
};
?
3.1 FLASH參數配置文件位置(MemoryDeviceList_MT6577.xls):
MEMORY_DEVICE_XLS =
mediatek\build\tools\emigen\$(MTK_PLATFORM)\MemoryDeviceList_$(MTK_PLATFORM).xls
.xls文件含三個頁面:
MT6577(page one):配置Flash Vendor Id 對應的硬件參數。
NAND(page two):
emmc_region(pagethree)
?
3.2 型號配置:
3.2.1 CUSTOM_MEMORY_HDR
mediatek\custom\$(PROJECT)\preloader\inc\custom_MemoryDevice.h
#defineBOARD_ID??????????????? MT6577_EVB
#defineCS_PART_NUMBER[0]??????H9TP32A4GDMCPR_KDM
#defineCS_PART_NUMBER[1]?????? KMKUS000VM_B410
?
3.2.2 CUSTOM_NAND_HDR
mediatek\custom\$(PROJECT)\common\nand_device_list.h
static constflashdev_info gen_FlashTable[]={
???????? {0xECBC, 0x006656, 5, 16, 512, 256,4096,? 128,0x21044333,"KA100O015E_BJ", 1},
???????? {0xECBC, 0x006A56, 5, 16, 512, 256,4096,? 128,0x10801011,"K524G2GACH_B0", 0},
???????? {0xADBC, 0x801620, 5, 16, 512, 256,4096,? 128,0x10801011,"H9DA4VH2GJAMC", 3},
???????? {0x98BC, 0x906676, 5, 16, 512, 256,4096,? 128,0x10401000,"KSLCCBL1FB4G3", 0},
???????? {0x0000, 0x000000, 0, 0, 0, 0, 0, 0,0,"xxxxxxxxxx", 0},
};
?
備注:(以下2部分為附屬內容,不做主要調試)
3.3 emmc開關配置
EMMC_CHIP=
MTK_EMMC_SUPPORT=yes
MTK_EMMC_SUPPORT_OTP=no
MTK_NAND_PAGE_SIZE=4K
?
?
3.4 EEPROM
CUSTOM_HAL_EEPROM =dummy_eeprom
CUSTOM_KERNEL_EEPROM= dummy_eeprom?? #s24cs64a_eeprom
mediatek\custom\common\kernel\eeprom\dummy_eeprom\dummy_eeprom.c
?
?
4.GPIO/EINT/ADC/KEYPAD/PMIC?配置(根據原理圖設計):
..\mediatek\custom\a5\kernel\dct\dct\codegen.dws
..\mediatek\source\dct\DrvGen.exe
?
?
5.keypad
5.1按鍵配置(根據原理圖):DCT(Driver Customization Tool):
..\mediatek\custom\a5\kernel\dct\dct\codegen.dws
..\mediatek\source\dct\DrvGen.exe
客制化:按鍵定義表、de-bounce time 、Power key Eint Gpio、DownLoadKey、|Mode Key、Factory Key、Recovery Key
?
5.2 物理按鍵工程模式之名稱定義
..\mediatek\custom\a5\factory\inc\cust_keys.h
#defineKEYS_PWRKEY_MAP??????????? { KEY_POWER,"Power" }
?
#defineDEFINE_KEYS_KEYMAP(x)???????????? \
struct key x[] = {?????????????????????? \
???????? KEYS_PWRKEY_MAP,???????????? \
???????? { KEY_HOME,?????? "Home" },??????? \
???????? { KEY_MENU,?????? "Menu" },???????? \
???????? { KEY_HOMEPAGE,?? "HomePage" },????????? \
}
#define CUST_KEY_UP???????????? KEY_UP
?
6.PM 充電
6.1 配置文件位置:
CUSTOM_KERNEL_BATTERY= battery
mediatek\custom\a5\kernel\battery\battery\cust_battery.h
mediatek\custom\a5\kernel\battery\battery\custom_fuel_gauge.h
mediatek\platform\mt6573\kernel\drivers\power\mt6573_battery.c
?
6.2充電常用參數修改:
..\mediatek\custom\a5\kernel\battery\battery\cust_battery.h
6.2.1充電電流修改:
#defineUSB_CHARGER_CURRENT???????????????????????????????????????? Cust_CC_550MA?? // ?:Cust_CC_450MA
#defineAC_CHARGER_CURRENT?????????????????????????????????????????? Cust_CC_800MA?? // : Cust_CC_650MA
6.2.2.充電電阻設定(根據硬件的bom):
#defineR_CURRENT_SENSE 2????????????????????????????? //0.2 Ohm// 0.2歐姆
6.2.3? 充電溫度檢測設定
開啟、關閉:
#defineBAT_TEMP_PROTECT_ENABLE??? 1?????? //
// #defineBAT_NTC_TSM_1
NTC修改為10K電阻或者47K電阻(NTC 為電池溫度保護NegativeTemperature Coefficient)
#define BAT_NTC_101??? //#define BAT_NTC_47 0
// #defineBAT_NTC_TSM_1????? //
?
其他:
#defineV_CHARGER_MIN 4400????????????????????????????????????? //benmodify //4400 // 4.4 V
#defineV_CHARGER_ENABLE 1??????????????????????????????????? //1:ON , 0:OFF????? //
?
6.3 電池電量檢測(FUEL GAUGE方式,比voltagemapping 方式更精確):
..\mediatek\custom\a5\kernel\battery\battery\cust_fuel_gauge.h
#defineQ_MAX_POS_50? ((BATT_CAPACITY * 1316) /1307)????? //ben modify //3121 // ?: 2561
#defineQ_MAX_POS_25? BATT_CAPACITY???????? //ben modfiy //3100 // ?: 2561
#define Q_MAX_POS_0???????????? ((BATT_CAPACITY * 1220) / 1307)????? //ben modfiy //2893 // ?: 2561
#defineQ_MAX_NEG_10? ((BATT_CAPACITY * 1162) /1307)????? //ben modfiy //2756 // ?: 2561
?
#defineQ_MAX_POS_50_H_CURRENT???????? ((BATT_CAPACITY* 1295) / 1307)????? //ben modfiy //3071 // ?: 2534
#defineQ_MAX_POS_25_H_CURRENT???????? ((BATT_CAPACITY* 1270) / 1307)????? //ben modfiy //3012 // ?: 2534
#defineQ_MAX_POS_0_H_CURRENT ((BATT_CAPACITY *1102) / 1307)????? //ben modfiy //2613 // ?: 2534
#defineQ_MAX_NEG_10_H_CURRENT??????? ((BATT_CAPACITY* 599) / 1307)?????? //ben modfiy //1420 // ?: 2534
?
6.4 FUEL GAUGE 電池電量檢測方法及原理(備注)
隨著大容量電池的使用,如果設備能夠精確的了解電池的電量,不僅能夠很好地保護了電池,防止其過放電,同時也能夠讓用戶精確地知道剩余電量來估算所能使用的時間,及時地保存重要數據。電池電量的檢測有三種種不同電量計的實現方法,
詳細出處:http://www.52rd.com/bbs/Dispbbs.asp?BoardID=58&ID=237149
?
6.5? MTK Android 充電概念
目前充電主要包括Power Off Charging(關機充電) 、IPO Charging(假關機充電)和 OS Charging(開機充電) 三個部分
1),Power Off Charging 部分,可以仔細閱讀如下部分的code:
alps\mediatek\platform\mt6575\uboot\mt6575_bat.c?// Power Off Charging 的控制流程, 建議從函數mt65xx_bat_init() 開始看code
alps\mediatek\custom\[project]\uboot\inc\cust_battery.h?// Power off Charging的一些充電參數的配置
2),OS charging部分,可以仔細閱讀如下部分的code:
alps\mediatek\platform\mt6575\kernel\drivers\power\mt6575_battery.c?// OS Charging 的控制流程, 建議從函數BAT_thread()開始看
alps\mediatek\custom\[project]\kernel\battery\battery\cust_battery.h????// OS Charging的一些充電參數的配置
建議將alps\mediatek\platform\mt6575\kernel\drivers\power\ 目錄下的所有文件都仔細閱讀一遍
3), IPO Charging部分實際使用的還是OSCharging部分的code,IPO可以參考 ?alps\mediatek\source\external\ipod\ ?目錄下的相關文件
?
6.7充電界面顯示修改:
\mediatek\custom\a5\lk\include\target\cust_display.h
\mediatek\external\ipod\bootlogo.cpp
?
6.8?電池型號、容量替換,需修改:電池曲線(電池廠商提供),修改對應文件:
mediatek\custom\a5\kernel\battery\battery\cust_battery.h
mediatek\custom\a5\kernel\battery\battery\custom_fuel_gauge.h
?
?
7.camera
7.1 相關代碼位置:
CUSTOM_HAL_CAMERA =camera
CUSTOM_HAL_IMGSENSOR= gc2015_yuv
CUSTOM_KERNEL_IMGSENSOR= gc2015_yuv
CUSTOM_HAL_MAIN_IMGSENSOR= gc2015_yuv
CUSTOM_KERNEL_MAIN_IMGSENSOR= gc2015_yuv
?
kernel
\mediatek\custom\common\kernel\imgsensor\
\mediatek\custom\common\kernel\imgsensor\src
kd_imgsensor.h
kd_sensorlist.h
?
hal
\mediatek\custom\common\hal\imgsensor\
sensorlist.cpp
MTKCameraHardware.cpp
?
7.2 拍照圖片尺寸設置:
..\mediatek\custom\a5\hal\camera\camera\cfg_ftbl_custom_raw_main.h
//Capture Size
CONFIG_FEATURE(FID_CAP_SIZE,
??? BY_DEFAULT(CAPTURE_SIZE_1600_1200),
??? /*BY_DEFAULT(CAPTURE_SIZE_2560_1920), benmodify*/
??? CAPTURE_SIZE_640_480,
??? CAPTURE_SIZE_1280_960,CAPTURE_SIZE_1600_1200,
)
?
7.3 Camera角度旋轉
..\\alps\mediatek\config\a5\ProjectConfig.mk
MTK_LCM_PHYSICAL_ROTATION=0
?
8. Voice coil motor攝像頭上的自動調焦音圈馬達
CUSTOM_HAL_LENS =dummy_lens dummy_lens
CUSTOM_KERNEL_LENS= dummy_lens dummy_lens
?
CUSTOM_HAL_MAIN_LENS= dummy_lens
CUSTOM_HAL_MAIN_BACKUP_LENS=
CUSTOM_HAL_SUB_LENS= dummy_lens
CUSTOM_HAL_SUB_BACKUP_LENS=
?
CUSTOM_KERNEL_MAIN_LENS= dummy_lens
CUSTOM_KERNEL_MAIN_BACKUP_LENS=
CUSTOM_KERNEL_SUB_LENS= dummy_lens
CUSTOM_KERNEL_SUB_BACKUP_LENS=
?
mediatek\custom\common\kernel\lens\dummy_lens\dummy_lens.c
?
?
9.gpio
9.1配置文件位置:
.\mediatek\build\makemtk.mk
?
mediatek\source\dct\DrvGen
mediatek\custom\$(PROJECT)\kernel\dct\dct\codegen.dws
?
9.2設置方法:
mt_set_gpio_mode(GPIO_CTP_EN_PIN,GPIO_CTP_EN_PIN_M_GPIO);
mt_set_gpio_dir(GPIO_CTP_EN_PIN,GPIO_DIR_OUT); //GPIO_DIR_IN);
mt_set_gpio_out(GPIO_CTP_EN_PIN,GPIO_OUT_ZERO); // GPIO_OUT_ONE);
?
10. TouchPanel
10.1配置
CUSTOM_KERNEL_TOUCHPANEL= gt818b
?
..\mediatek\custom\common\kernel\touchpanel\src\mtk_tpd.c
tpd_driver_add(&tpd_device_driver);
platform_driver_unregister(&tpd_driver);
?
10.2 TP原點由IC商現場調試后釋放方案設計公司。
?
10.3 引腳定義
復位腳、中斷、I2C
?
13.4?物理概念
T+G?雙層玻璃
P+G?單層玻璃
?
10.4 TP實現距離感應功能宏開關:
mediatek\custom\common\kernel\touchpanel\gslX680\ gslX680_driver.c
//#defineTPD_PS_SUPPORT
?
11??????震動馬達
CUSTOM_KERNEL_VIBRATOR=vibrator
11.1馬達震動幅度:
.. \mediatek\custom\a5\kernel\vibrator\cust_vibrator.c
static structvibrator_hw cust_vibrator_hw = {
???????? .vib_timer = 80,//30,???????? //ben modify
};
?
12. RTC
12.1配置文件位置:
CUSTOM_KERNEL_RTC =rtc
?
mediatek\custom\konka73_gb\kernel\rtc\rtc\rtc-mt6573.h
mediatek\platform\mt6573\kernel\drivers\rtc\mtk_rtc.c
?
12.2. RTC默認日期
\alps\mediatek\custom\[project]\preloader\inc\cust_rtc.h
\alps\mediatek\custom\[project]\kernel\rtc\rtc\rtc-mt65XX.h
#defineRTC_DEFAULT_YEA?????????????? 2013//2010//cbk.a5.default.date.2013.07.12
#defineRTC_DEFAULT_MTH???? ???????? 7// 1ff
?
?
13. wifi
CUSTOM_KERNEL_WIFI=
MTK_SCREEN_OFF_WIFI_OFF= no
MTK_WIFI_P2P_SUPPORT= yes
MTK_WIFI_HOTSPOT_SUPPORT= yes
?
mediatek\custom\common\kernel\wifi\mt592x\dummy.c
?
14.. HEADSET
CUSTOM_KERNEL_HEADSET= accdet
MTK_HEADSET_ICON_SUPPORT= yes
?
mediatek\custom\konka73_gb\kernel\headset\accdet\accdet_custom.h
?
14 SIM
15.1雙卡、單卡版本切換:
Double SIM
GEMINI = yes
MTK_GEMINI_ENHANCEMENT= yes
MTK_SHARE_MODEM_SUPPORT= 2
MTK_SHARE_MODEM_CURRENT= 2
Single SIM
GEMINI = no
MTK_GEMINI_ENHANCEMENT= no
MTK_SHARE_MODEM_SUPPORT= 2
MTK_SHARE_MODEM_CURRENT= 1
?
16. 傳感器
MTK_SENSOR_SUPPORT= yes
CUSTOM_KERNEL_ACCELEROMETER= auto//重力加速度傳感器
CUSTOM_KERNEL_MAGNETOMETER=akm8975//磁感應器
CUSTOM_KERNEL_ALSPS= tmd2771//光感 距離傳感器
CUSTOM_KERNEL_BAROMETER=//氣壓計
CUSTOM_KERNEL_GYROSCOPE=//陀螺儀
?
16.1 ?重力加速度傳感器(G-sensor感應器)
CUSTOM_KERNEL_ACCELEROMETER= auto//傳感器
#ifdefined(MTK_AUTO_DETECT_ACCELEROMETER)
\mediatek\source\kernel\drivers\hwmon\hwmsen\Hwmsen_dev.c
inthwmsen_gsensor_add(struct sensor_init_info* obj)
\mediatek\custom\common\kernel\accelerometer\auto\
?
16.2 ALS\PS 光感距離傳感器
CUSTOM_KERNEL_ALSPS= tmd2771
?
mediatek\custom\common\kernel\alsps\tmd2771\tmd2771.c
mediatek\custom\common\kernel\alsps\tmd2771\tmd2771.h
mediatek\custom\konka73_gb\kernel\alsps\tmd2771\cust_alsps.c
?
16.3 GYRO-sensormotion sensor 陀螺儀
CUSTOM_KERNEL_GYROSCOPE= l3g4200d
?
mediatek\custom\common\kernel\gyroscope\l3g4200d\l3g4200d.c
mediatek\custom\konka73_gb\kernel\gyroscope\l3g4200d\cust_gyro.c
?
16.4 BAROMETER-sensor氣壓計
CUSTOM_KERNEL_BAROMETER= ms5607
?
mediatek\custom\konka73_gb\kernel\barometer\ms5607\cust_baro.c
mediatek\custom\common\kernel\barometer\ms5607\ms5607.c
?
16.6 compass 指南針
CUSTOM_KERNEL_MAGNETOMETER= akm8975
?
mediatek\custom\common\kernel\magnetometer\akm8975\akm8975.c
mediatek\custom\konka73_gb\kernel\magnetometer\akm8975\cust_mag.c
?
17. flashlight
CUSTOM_HAL_FLASHLIGHT= dummy_flashlight
CUSTOM_KERNEL_FLASHLIGHT= dummy_flashlight
#constant_flashlight? 補光燈(camera閃光燈)
#peak_flashlight
#torch_flashlight? 手電筒
# dummy_flashlight
備注:camera閃光燈與camera驅動無關,只需要打開開關,這是由MTK開發的獨立功能。
?
mediatek\custom\common\kernel\flashlight\dummy_flashlight\dummy_flashlight.c
mediatek\custom\common\kernel\flashlight\src\kd_flashlightlist.c
mediatek\custom\common\kernel\flashlight\
?
17.1 LED閃光燈配置為手電筒模式:
?
?
?
18. jogball 軌跡球
CUSTOM_KERNEL_JOGBALL=
?
mediatek\custom\common\kernel\jogball\
?
18. atv
CUSTOM_HAL_MATV =
CUSTOM_KERNEL_MATV=
?
HAVE_MATV_FEATURE=yes#no? #Armin
MTK_ATV_CHIP=MTK_MT5193?? # Armin
?
MTK_MATV_ANALOG_SUPPORT=yes#no//模擬通道、數字通道切換功能開關
?
mediatek\custom\common\kernel\matv\mt5193\matv.c
?
19. sound
MTK_SOUNDRECORDER_APP= yes
CUSTOM_KERNEL_SOUND= speaker
?
mediatek\custom\common\kernel\sound\inc\yusu_android_speaker.h
mediatek\custom\konka73_gb\kernel\sound\speaker\yusu_android_speaker.c
?
20. USB
CUSTOM_KERNEL_USB =mt6577
?
mediatek\custom\common\kernel\usb\src\Makefile
mediatek\custom\mt6573\kernel\usb\src\mtk_usb_custom.c
mediatek\custom\mt6573\kernel\usb\src\mtk_usb_custom.h
mediatek\custom\mt6573\uboot\inc\cust_sdc.h
mediatek\platform\mt6573\kernel\drivers\usb-gadget\
mediatek\platform\mt6573\kernel\drivers\power\
?
20.1 USB OTG功能(終端連接外接U盤)
alps/mediatek/config/{project}/autoconfig/kconfig/project中打開
CONFIG_USB_MTK_OTG=y
CONFIG_USB_MTK_HDRC_HCD= y
?
20.2 MTP(MediaTransfer Protocol)
USB連接設備,可選存儲方式介紹:
USB存儲設備、MTP(媒體設備)、PTP(相機)、只充電、內置光盤。
?
21. BT
MTK_WLAN_CHIP =MT6620?? ?# candidate settings: MT6620
MTK_BT_CHIP =MTK_MT6620? # candidate settings:MTK_MT6611\MTK_MT6612\MTK_MT6616\MTK_MT6620
MTK_WLAN_SUPPORT =yes
MTK_BT_SUPPORT =yes
MTK_WLAN_SUPPORT =yes
MTK_WLANBT_SINGLEANT= no
MTK_BT_30_HS_SUPPORT= yes
####config BTfeature###########
# please do notmodify these options
MTK_BT_21_SUPPORT =yes
MTK_BT_30_SUPPORT =yes
MTK_BT_40_SUPPORT =yes
MTK_BT_FM_OVER_BT_VIA_CONTROLLER= yes
MTK_BT_PROFILE_OPP= yes
MTK_BT_PROFILE_SIMAP= yes
MTK_BT_PROFILE_PRXM= yes//藍牙距離感應裝置
MTK_BT_PROFILE_PRXR= yes//藍牙距離感應裝置
MTK_BT_PROFILE_HIDH= yes//無線輸入設備
MTK_BT_PROFILE_FTP= yes
MTK_BT_PROFILE_PBAP= yes
MTK_BT_PROFILE_MANAGER= yes
MTK_BT_PROFILE_BPP= yes
MTK_BT_PROFILE_BIP= yes
MTK_BT_PROFILE_DUN= yes
MTK_BT_PROFILE_PAN= yes
MTK_BT_PROFILE_HFP= yes
MTK_BT_PROFILE_A2DP= yes
MTK_BT_PROFILE_AVRCP= yes
MTK_BT_PROFILE_AVRCP14= yes
MTK_BT_PROFILE_TIMEC= no
MTK_BT_PROFILE_TIMES= no
MTK_BT_PROFILE_MAPS= no
MTK_BT_PROFILE_MAPC= no
MTK_BT_PROFILE_SPP= yes
####config BTfeature end ####
?
mediatek\custom\common\kernel\btwlanem\btwlanem\btwlanem.c
?
22. FM
MTK_FM_CHIP =MT6620_FM
MTK_FM_SUPPORT =yes
MTK_FM_TX_SUPPORT =yes
MTK_FM_AUDIO =FM_ANALOG_INPUT
#FM_DIGITAL_INPUT?
?
mediatek\custom\common\kernel\fm\mt6620\dummy.c
?
24. OFN 光學手指鼠標
CUSTOM_KERNEL_OFN =ofn1090
mediatek\custom\common\kernel\ofn\inc
mediatek\custom\konka73_gb\kernel\ofn\ofn1090\cust_ofn.c
?
?
26.modem
modem配置和編譯方法參照MTK feature phone。
?
26.1modem模塊位置及組成(內嵌在一個類似于MTK feature phone?的文件工程中)
配置文件位置:\surplus77\modem\make\SURPLUS_HSPA.mak
工程名稱配置:BOARD_VER = SURPLUS_BB
版本號名稱設置:\surplus77\modem\make\Verno_SURPLUS.bld
編譯生成鏡像位置:
?
26.2 modem源碼工程編譯(../prj/modem)
?
26.3 modem庫替換編譯(..prj/alps/mediate/custom/common/modem)
CUSTOM_MODEM=YOUR_MODEM
此編譯表示:已將在modem源碼工程中編譯好的鏡像放入MTKAndroid 工程中后,存放位置:
./mediatek/custom/common/modem/YOUR_MODEM
執行如下編譯命令:./mk update-modem,這個命令會依次做如下步驟:
1. custgen???? 2. check modem????? 3. sign modem??????? 4.update modem
?
26.4
WCDMA B1+B8:主要是歐洲
Wcdma B1+B2+B5:南美
Wcdma B2+B4+B5:北美
?
?
27.RF
RF模塊存放在modem大的模塊中,配置方法參照MTK feature phone。
?
27.1 參數配置示例:
RF模塊名配置:
\surplus77\modem\make\SURPLUS_HSPA.mak
GSM射頻模塊:RF_MODULE = MT6162_CUSTOM
3G射頻模塊:UMTS_RF_MODULE = CUSTOM_MT6162
?
射頻參數配置:
GSM射頻參數:
\surplus77\modem\custom\l1_rf\MT6162_CUSTOM\m12193.c
\surplus77\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf.h
\surplus77\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf_A5.h
\surplus77\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf_A6.h
3G射頻參數:
\surplus77\modem\custom\ul1_rf\CUSTOM_MT6162\u12193.c
\surplus77\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf.h
\surplus77\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf_A5.h
\surplus77\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf_A6.h
?
27.2射頻頻段
2G:850/900/1800/1900
3G:850/1900/2100
Band1 2100
Band2
Band5
Band8
?
28.SIM卡
SIM卡模塊存放在modem大的模塊中,配置方法參照MTK feature phone。
?
28.1 simcard熱插拔功能
\surplus77\modem\make\SURPLUS_HSPA.mak
SIM_HOT_SWAP= NONE
?
?
29.SD卡
27.1熱插拔功能
1,sd卡熱插拔機制的實現需要軟件和硬件同時配合才能實現。
2,在電路上,需要一根單獨的檢測pin腳,通過檢測pin腳的高低電平來檢測sd卡的插拔動作,并在dws中將其配置成上拉或下拉
3,軟件上的配置主要就是在\mediatek\custom\<proj>\kernel\core\src\board.c中,msdc1_hw 結構體中的 flags 的 MSDC_CD_PIN_EN 和MSDC_REMOVABLE,這兩個flag是熱插拔的flag,如果不需要熱插拔,請把這兩個flag移除。
4,如果是低電平觸發,將msdc1_hw中的.cd_level ?設置成 MSDC_CD_LOW,否則設置成MSDC_CD_HIGH
?
備注:
(1),從hardware的角度,sd 卡槽中的CD 引腳與chip的EINT的某個腳連在一起,且chip內部會有上拉電阻。
(2),dct的配置如下:
注:EINT16使用的哪個GPIO,可以參考硬件hw_config.xls文檔
?
?
30.module(四合一芯片:FM/BT/WIFI/GPS)MT6628、MT6620
CUSTOM_HAL_COMBO=mt6628
CUSTOM_KERNEL_FM=mt6628
MTK_BT_CHIP=MTK_MT6628
MTK_FM_CHIP=MT6628_FM
MTK_WLAN_CHIP=MT6628
MTK_COMBO_CHIP=MT6628
MTK_GPS_CHIP=MTK_GPS_MT6628
?
30.音頻參數集成(具體參數由硬件提供)
默認音量等級修改:(normal/headset/handfree)
\mediatek\custom\a6\cgen\inc\audio_volume_custom_default.h
?
\mediatek\custom\a6\cgen\inc\audio_custom.h
\mediatek\custom\a6\cgen\inc\med_audio_default.h
\mediatek\custom\a6\cgen\inc\sph_coeff_default.h
?
總結
以上是生活随笔為你收集整理的MTK Android 之MT6577驱动笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019.7.10--jzDay6
- 下一篇: 图像去雨(rainy streaks r