MTK MT6577 Android驱动设置方法资料分享
在網絡上看到的一篇資料,分享給大家參考,
MT6577 Android驅動設置:
1.1怎樣新建一個LCD驅動
LCD模組主要包括LCD顯示屏和驅動IC。比如LF040DNYB16a模組的驅動IC型號為NT35510。要在MT6577平臺上新建這個lcd的驅動,步驟如下:
A. 新建文件夾nt35510:
\mediatek\custom\common\kernel\lcm\nt35510
\mediatek\custom\common\lk\lcm\nt35510 //\mediatek\custom\common\uboot\lcm\nt35510
B.修改\mediatek\custom\common\kernel\lcm\mt65xxlcmlist.c, 在lcmdriverlist [ lcmcount ] 中增加nt35510lcm_drv。
C.打開mediatek\config\ginwave73_gb\ProjectConfig.mk:
BUILDLK=yes //BUILDUBOOT=yes
BOOT_LOGO=wsvganl
CUSTOMKERNELLCM = nt35510
CUSTOMLKLCM= nt35510 // CUSTOMUBOOTLCM =nt35510
LCM_WIDTH=600
LCM_HEIGHT=1024
驅動文件移植原則:
根據具體平臺,填充對應的函數,不能直接復制整個文件,避免不必要編譯和接口錯誤。
1.3 LCD顯示旋轉(橫豎屏旋轉,關聯到很多界面,需要統一修改)
方式一:橫豎屏分辨率修改(還需要修改TP驅動):
LCM_WIDTH=1024
LCM_HEIGHT=600
方式二:lcm顯示旋轉,只需要修改:(還需要旋轉camera驅動)
MTKLCMPHYSICAL_ROTATION=90
MTKTOUCHPHYSICALROTATIONRELATIVETOLCM=90
camera 旋轉
Z:\jb2_131217\alps\mediatek\custom\hal\imgsensor\src\cfgsettingimgsensor.cpp
static SensorOrientation_T const inst = {u4Degree_0 : 180,//90, // main sensor in degree (0, 90,180, 270)u4Degree_1 : 0,//90, // sub sensor in degree (0, 90, 180, 270)1.4 lcm參數修改
\mediatek\custom\common\kernel\lcm\rgb_mt8193
staticvoid lcmgetparams(LCM_PARAMS *params){}
lcd rgb頻率:
//params->dpi.mipipllclk_ref =536870912;
params->dpi.mipipllclk_ref= (33.3(167772168*2))/26; //33.3MHz
//params->dpi.mipipllclk_ref= 536870912; //52.0MHz
colorformat 修改
params->dpi.format = LCMDPIFORMATRGB888; // format is 24 bit//LCMDPIFORMATRGB666
1.5 修改顯示分辨率:
1.5.1配置修改:
打開mediatek\config\ginwave73_gb\ProjectConfig.mk:
LCM_WIDTH=600
LCM_HEIGHT=1024
Lk_logo= wsvganl 及相關logo文件修改
15.2 lcm驅動分辨率修改,可自行手動修改(注意橫豎數值對應)
對應的lcm :\mediatek\custom\common\kernel\lcm\rgb_mt8193
defineFRAME_WIDTH (1024)
defineFRAME_HEIGHT (600)
15.3 tpsensor driver修改,對應分辨率驅動(fae sensor提供驅動代碼)。
\alps\mediatek\custom\prj\kernel\touchpanel\GSLx680\GSLx680.h
defineSCREENMAXX 480
defineSCREENMAXY 800
CUSTOMKERNELLEDS= mt65xx
mediatek\custom\prj\kernel\leds\mt65xx\cust_leds.c
mediatek\custom\prj\lk\cust_leds.c
static structcustmt65xxled custledlist[MT65XXLEDTYPE_TOTAL] = {
{"red",MT65XXLEDMODE_NONE, -1,{0}},
{"green",MT65XXLEDMODE_NONE, -1,{0}},
{"blue",MT65XXLEDMODE_NONE, -1,{0}},
{"jogball-backlight",MT65XXLEDMODE_NONE, -1,{0}},
{"keyboard-backlight",MT65XXLEDMODE_NONE,-1,{0}},
{"button-backlight", MT65XXLEDMODE_NONE, -1,{0}}, // modify
{"lcd-backlight",MT65XXLEDMODEPWM,PWM1,{PWMCLKNEWMODEBLOCK,CLKDIV128,4,4}}, //modify
//{"lcd-backlight",MT65XXLEDMODECUST,(int)DISPSetBacklight,{0}},
};
..\mediatek\platform\mt6582\kernel\drivers\leds\leds.c
mt65xxflashlighton(){}
mt65xxflashlightoff(){}
2.1 LED背光亮度修改:
mediatek\source\kernel\drivers\leds\leds.c
驗證方式:adb shell查看:
shell@android:/sys/class/leds/lcd-backlight$ cat max_brightness
備注:MMI層最亮、最暗背光調節代碼:
./config.xml:
20
\alps\frameworks\base\core\java\android\os\PowerManager.java:
private staticfinal int MAXIMUMBACKLIGHT = android.os.PowerManager.BRIGHTNESSON;
3.1 型號配置:
3.1.1 CUSTOMMEMORYHDR(需要確認是否是MTK認證的flash ic)
mediatek\custom\$(PROJECT)\preloader\inc\custom_MemoryDevice.h
defineBOARDID MT6577EVB
defineCSPARTNUMBER[0] H9TP32A4GDMCPR_KDM
defineCSPARTNUMBER[1] KMKUS000VM_B410
備注:新增flash ic添加到此處,flash可以做到兼容;不能兼容相同IC Id的memeory ic.
3.2 特定項目不同類型分區定義信息(是否定義、順序):
mediatek\custom\kernel\core\src\partition.c
structpartnamemap gpartnamemap[PARTMAX_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.3 emmc scat 分區大小設置(emmc) :
可對emmc進行分區,修改preloader\systemimage\userdata\FAT等各個分區。
\alps\mediatek\build\tools\ptgen\MT6577\partitiontableMT6577.xls
備注:Cache分區需要保持在512mb左右,否則系統會比較慢,響應遲緩。
3.4 FLASH參數配置文件位置(MemoryDeviceList_MT6577.xls):
MEMORYDEVICEXLS =
mediatek\build\tools\emigen\$(MTKPLATFORM)\MemoryDeviceList$(MTK_PLATFORM).xls
.xls文件含三個頁面:
MT6577(page one):配置Flash Vendor Id 對應的硬件參數。
NAND(page two):
emmc_region(pagethree)
3.5 Flash驅動電壓修改,讀寫速度方式修改:
mediatek\custom\konka73_gb\kernel\core\src\board.c
struct msdc_hw msdc0_hw = {.clk_src = 1,.cmd_edge =MSDC_SMPL_FALLING,.data_edge =MSDC_SMPL_FALLING,.clk_drv = 5, //: 0 //memory驅動電壓.cmd_drv = 5, //: 0.dat_drv = 5, // : 0ifdefMTKEMMCSUPPORT
.data_pins = 8,else
.data_pins = 4,endif
.data_offset = 0,ifdefMTKEMMCSUPPORT
.flags = MSDC_SYS_SUSPEND | MSDC_HIGHSPEED,//memory讀寫速度// .flags = MSDC_SYS_SUSPEND | MSDC_HIGHSPEED |MSDC_UHS1 | MSDC_DDR,//.flags = MSDC_SYS_SUSPEND,else
.flags =MSDC_SDCARD_FLAG,endif
3.6 emmc FAT分區劃分:
emmc型號、emmc軟件分區都會影響FAT分區的大小。
驗證FAT Size需要對應emmc型號機器下載對應emmc軟件分區的軟件,不能預先下載FAT部分(影響實際FAT分區大小):
adb shell
cat /proc/emmc
cat /proc/partition獲取大小。
4.GPIO/EINT/ADC/KEYPAD/PMIC 配置(根據原理圖設計,可有原理硬件工程師指導填寫即可):
4.1工具及dws文件位置:
mediatek\source\dct\DrvGen
mediatek\custom\$(PROJECT)\kernel\dct\dct\codegen.dws
4.2 dws配置文件位置:
.\mediatek\build\makemtk.mk
4.3 gpio設置方法:
mtsetgpiomode(GPIOCTPENPIN,GPIOCTPENPINM_GPIO);
mtsetgpiodir(GPIOCTPENPIN,GPIODIROUT); //GPIODIRIN);
mtsetgpioout(GPIOCTPENPIN,GPIOOUTZERO); // GPIOOUTONE);
5.keypad
5.1按鍵配置(根據原理圖):DCT(Driver Customization Tool):
..\mediatek\custom\prj\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.2factory mode工廠模式按鍵定義
..\mediatek\custom\factory\inc\cust_keys.h
//工廠按鍵測試映射表,在.dws中配置按鍵映射表后自動生成
\alps\mediatek\custom\prj\kernel\dct\dct\cust_kpd.h
defineKEYSPWRKEYMAP { KEY_POWER,"Power" }
defineDEFINEKEYSKEYMAP(x) \
struct key x[] = { \
KEYS_PWRKEY_MAP, \{ KEY_HOME, "Home" }, \{ KEY_MENU, "Menu" }, \{ KEY_HOMEPAGE, "HomePage" }, \}
//工廠模式按鍵定義
define CUSTKEYUP KEY_UP
defineCUSTKEYVOLUP KEYPAGEUP // KEYVOLUMEUP
defineCUSTKEYDOWN KEY_DOWN
defineCUSTKEYVOLDOWN KEYVOLUMEDOWN // KEYVOLUMEDOWN
defineCUSTKEYLEFT KEY_MENU
defineCUSTKEYCENTER KEY_HOMEPAGE
define CUSTKEYRIGHT KEY_BACK
defineCUSTKEYCONFIRM KEYVOLUMEUP // KEYHOME
defineCUSTKEYBACK KEY_POWER
5.3 recoverymode恢復模式按鍵定義
\mediatek\custom\prj\recovery\inc\cust_keys.h
defineRECOVERYKEYDOWN KEY_VOLUMEDOWN
defineRECOVERYKEYUP KEY_VOLUMEDOWN
defineRECOVERYKEYENTER KEY_VOLUMEUP
defineRECOVERYKEYMENU KEY_POWER
5.4 home鍵配置(直接引出的,不需要在.dws中定義按鍵映射)
\alps\mediatek\custom\prj\kernel\kpd\kpd\mtk_kpd.h
defineKPDPMICRSTKEYMAP KEYHOME
home鍵添加喚醒功能
\alps\mediatek\config\prj\mtk-kpd.kl
key 102 HOME WAKE
6.PM 充電
6.1 配置文件位置:
CUSTOMKERNELBATTERY= battery
mediatek\custom\kernel\battery\battery\cust_battery.h
mediatek\custom\kernel\battery\battery\customfuelgauge.h
6.2充電常用參數修改:
..\mediatek\custom\kernel\battery\battery\cust_battery.h
6.2.1充電電流修改:
defineUSBCHARGERCURRENT CustCC550MA // :CustCC450MA
define ACCHARGERCURRENT CustCC800MA // : CustCC650MA
6.2.2.充電電阻設定(根據硬件的bom):
defineRCURRENTSENSE 2 //0.2 Ohm// 0.2歐姆
6.2.3 充電溫度檢測設定
defineBATTEMPPROTECT_ENABLE 1 //
// #defineBATNTCTSM_1
NTC修改為10K電阻或者47K電阻(NTC 為電池溫度保護NegativeTemperature Coefficient)
define BATNTC101 //#define BATNTC47 0
其他:
defineVCHARGERMIN 4400 //modify //4400 // 4.4 V
defineVCHARGERENABLE 1 //1:ON , 0:OFF //
6.7充電界面顯示修改:
\mediatek\custom\lk\include\target\cust_display.h//坐標
\mediatek\platform\mt6577\lk\mt_logo.c//顯示
6.8 電池容量、電池曲線修改:
電池容量修改:
mediatek\custom\kernel\battery\battery\customfuelgauge.h
define QMAXPOS_50 ((2168* 1316) / 1307)
define QMAXPOS_25 2168
define QMAXPOS_0 ((2168 * 1220) / 1307)
define QMAXNEG_10 ((2168 * 1162) / 1307)
define QMAXPOS50H_CURRENT ((2168 * 1295) / 1307)
define QMAXPOS25H_CURRENT ((2168 * 1270) / 1307)
define QMAXPOS0H_CURRENT ((2168 * 1102) / 1307)
define QMAXNEG10H_CURRENT ((2168 * 599) / 1307)
電池曲線集成方式:(電壓-百分比對應表需要電池廠商提供)
mediatek\custom\kernel\battery\battery\custfuelgauge.h
BATTERYPROFILESTRUCbatteryprofilet1[] =// T1 0C
BATTERYPROFILESTRUCbatteryprofilet2[] =// T2 25C
7.camera
7.1 相關代碼位置:
mediatek\config\XXXX(紅色字為具體的項目名)
文件:ProjectConfig.mk
CUSTOMKERNELIMGSENSOR = …… gc2235_raw
CUSTOMKERNELMAINIMGSENSOR = …… gc2235raw
CUSTOMHALIMGSENSOR = …… gc2235_raw
CUSTOMHALMAINIMGSENSOR = …… gc2235raw
kernel:
\mediatek\custom\common\kernel\imgsensor\gc2235_raw
mediatek\custom\common\kernel\imgsensor\src
文件:kd_sensorlist.h
添加內容:
UINT32 GC2235SensorInit(PSENSORFUNCTIONSTRUCT *pfFunc);
ACDKKDSENSORINITFUNCTION_STRUCT
kdSensorList[MAXNUMOFSUPPORTSENSOR+1] =
{
if defined(GC2235_RAW)
{GC2235_SENSOR_ID, SENSOR_DRVNAME_GC2235_RAW, GC2235SensorInit},endif
};
mediatek\custom\common\kernel\imgsensor\inc
文件:kd_imgsensor.h
添加內容:
define GC2235SENSORID 0x2235
define SENSORDRVNAMEGC2235_RAW "gc2235"
hal
\mediatek\custom\common\hal\imgsensor\gc2235_raw
mediatek\custom\common\hal\imgsensor\src
文件:sensorlist.cpp
添加內容:
MSDKSENSORINITFUNCTIONSTRUCT SensorList[] =
{
…………
if defined(GC2235_RAW)
RAWINFO(GC2235SENSORID, SENSORDRVNAMEGC2235RAW, NULL),
endif
…………
};
注意:在 kdSensorList 和 SensorList里面添加驅動的時候要注意,Sensor添加的位置要一樣。否則驅動會跑亂,輕則 ISP參數不對,重則 Sensor 無法啟動。
7.2 拍照圖片尺寸設置:
..\mediatek\custom\hal\camera\camera\cfgftbl$prj$rawmain.h
//Capture Size
CONFIGFEATURE(FIDCAP_SIZE,
BY_DEFAULT(CAPTURE_SIZE_1600_1200),CAPTURE_SIZE_640_480,CAPTURE_SIZE_1280_960,CAPTURE_SIZE_1600_1200,)
7.3 Camera物理角度旋轉
90度:
\alps\mediatek\custom\$prj$\hal\imgsensor\src\cfgsettingimgsensor.cpp
static SensorOrientation_T const inst = {u4Degree_0 : 180,//90, // main sensor in degree (0, 90,180, 270)u4Degree_1 : 0,//90, // sub sensor in degree (0, 90, 180, 270)180度:
Sensor FAE提供修改方法。
7.4Camera 相同sensor id兼容方式(前后sensor id一致):
//配置區分:
CUSTOMKERNELIMGSENSOR = gc0308yuv# gc0308sub_yuv
CUSTOMKERNELMAINIMGSENSOR =gc0308yuv # gc0308subyuv
CUSTOMHALIMGSENSOR = gc0308yuv# gc0308sub_yuv
CUSTOMHALMAINIMGSENSOR = gc0308yuv# gc0308subyuv
//kernel:函數名也要區分
\alps\mediatek\custom\common\kernel\imgsensor\gc0308subyuv
\alps\mediatek\custom\common\kernel\imgsensor\gc0308_yuv
//hal: 函數名也要區分
\alps\mediatek\custom\common\hal\imgsensor\gc0308subyuv
\alps\mediatek\custom\common\hal\imgsensor\gc0308_yuv
//kdSensorList 和 SensorList里面添加驅動也要區分,sensor id不要區分,寫成一致,根據前后攝像頭開關代碼區分。
define GC0328SENSORID 0x009D
defineGC0328SUBSENSOR_ID 0x9D9D
\alps\mediatek\custom\common\kernel\imgsensor\gc0328frontyuv_Sensor.c
GC0328_FRONTGetSensorID(){
if (sensorid == GC0328SENSOR_ID) {
sensorid = GC0328FRONTSENSORID; //---lcz
break;
}
if(sensorid != GC0328FRONTSENSORID) //---lcz
{
return ERROR_SENSOR_CONNECT_FAIL;}
}
GC0328_FRONTOpen(){
if (sensorid == GC0328SENSOR_ID) {
sensorid = GC0328FRONTSENSORID; //---lcz
break;
}
if(sensorid != GC0328FRONTSENSORID) {
return ERROR_SENSOR_CONNECT_FAIL;}
}
CUSTOMHALLENS =dummylens dummylens
CUSTOMKERNELLENS= dummylens dummylens
CUSTOMHALMAINLENS= dummylens
CUSTOMHALMAINBACKUPLENS=
CUSTOMHALSUBLENS= dummylens
CUSTOMHALSUBBACKUPLENS=
CUSTOMKERNELMAINLENS= dummylens
CUSTOMKERNELMAINBACKUPLENS=
CUSTOMKERNELSUBLENS= dummylens
CUSTOMKERNELSUBBACKUPLENS=
mediatek\custom\common\kernel\lens\dummylens\dummylens.c
10.1配置
CUSTOMKERNELTOUCHPANEL= gt818b
..\mediatek\custom\common\kernel\touchpanel\src\mtk_tpd.c
..\mediatek\custom\common\kernel\touchpanel\gt818b
moduleinit(tpddriver_init);
moduleexit(tpddriver_exit);
tpddriveradd(&tpddevicedriver);
tpddriverremove(&tpddevicedriver);
10.2 TP原點由IC商現場調試后釋放方案設計公司。
10.3 引腳定義
復位腳、中斷、I2C
10.4 物理概念
T+G 雙層玻璃
P+G 單層玻璃
10.5 TP實現距離感應功能宏開關:
mediatek\custom\common\kernel\touchpanel\gslX680\ gslX680_driver.c
//#defineTPDPSSUPPORT
11 震動馬達
CUSTOMKERNELVIBRATOR=vibrator
a.馬達震動幅度(MT6582及其他最新平臺):
..\mediatek\custom\kernel\vibrator\cust_vibrator.c
static structvibratorhw custvibrator_hw = {
.vib_timer = 80,//30, //振動時長.vib_limit = 9,//振動??.vib_vol = 0x5, //2.8V for vibr // :0x5//振動電壓};
b.馬達震動幅度MT6577直接修改pmic驅動電壓:
此文件可以修改各個gpio驅動電壓:
\alps\mediatek\platform\mt6577\lk\mt_pmic.c
voidPMICCUSTOMSETTING_V1(void) {}
ret=pmicconfiginterface(BANK0DIGLDOCON33,0x3,
BANK0RGVIBRVOSELMASK,BANK0RGVIBRVOSELSHIFT);//0x4
12.1配置文件位置:
CUSTOMKERNELRTC =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
defineRTCDEFAULTYEA 2013//2010//cbk..default.date.2013.07.12
defineRTCDEFAULTMTH 7// 1ff
CUSTOMKERNELWIFI=
MTKSCREENOFFWIFIOFF= no
MTKWIFIP2P_SUPPORT= yes
MTKWIFIHOTSPOT_SUPPORT= yes
mediatek\custom\common\kernel\wifi\mt592x\dummy.c
14.. HEADSET
CUSTOMKERNELHEADSET= accdet
MTKHEADSETICON_SUPPORT= yes
mediatek\custom\konka73gb\kernel\headset\accdet\accdetcustom.h
14 SIM
14.1雙卡、單卡版本切換:
Double SIM
GEMINI = yes
MTKGEMINIENHANCEMENT= yes
MTKSHAREMODEM_SUPPORT= 2
MTKSHAREMODEM_CURRENT= 2
Single SIM
GEMINI = no
MTKGEMINIENHANCEMENT= no
MTKSHAREMODEM_SUPPORT= 2
MTKSHAREMODEM_CURRENT= 1
14.2 simcard熱插拔功能
MTKSIMHOT_SWAP=yes
MTKSIMHOTSWAPCOMMON_SLOT=yes
.dws配置方法(由原理圖設計填寫):
MTKSENSORSUPPORT= yes
CUSTOMKERNELACCELEROMETER= auto//重力加速度傳感器
CUSTOMKERNELMAGNETOMETER=akm8975//磁力感應器//
CUSTOMKERNELALSPS= tmd2771//光感距離傳感器
CUSTOMKERNELBAROMETER=//氣壓計
CUSTOMKERNELGYROSCOPE=//陀螺儀
16.1 重力加速度傳感器(G-sensor感應器)
CUSTOMKERNELACCELEROMETER= auto//傳感器
ifdefined(MTKAUTODETECT_ACCELEROMETER)
\mediatek\source\kernel\drivers\hwmon\hwmsen\Hwmsen_dev.c
inthwmsengsensoradd(struct sensorinitinfo* obj)
\mediatek\custom\common\kernel\accelerometer\auto\
重力傳感方向設置:
\alps\mediatek\custom\kernel\accelerometer\mc3210\cust_acc.c
static structacchw custacc_hw = {
.i2c_num = 2,.direction = 5, // modify//重力傳感方向16.2 ALS\PS 光感距離傳感器
CUSTOMKERNELALSPS= tmd2771
mediatek\custom\common\kernel\alsps\tmd2771\tmd2771.c
mediatek\custom\common\kernel\alsps\tmd2771\tmd2771.h
mediatek\custom\prj\kernel\alsps\tmd2771\cust_alsps.c
16.3 GYRO-sensormotion sensor 陀螺儀
CUSTOMKERNELGYROSCOPE= l3g4200d
mediatek\custom\common\kernel\gyroscope\l3g4200d\l3g4200d.c
mediatek\custom\prj\kernel\gyroscope\l3g4200d\cust_gyro.c
16.4BAROMETER-sensor 氣壓計
CUSTOMKERNELBAROMETER= ms5607
mediatek\custom\prj\kernel\barometer\ms5607\cust_baro.c
mediatek\custom\common\kernel\barometer\ms5607\ms5607.c
16.5 MAGNETOMETER 磁感應器
\alps\mediatek\custom\kernel\magnetometer\yamaha532\cust_mag.c
磁感應方向設置:
static structmaghw custmag_hw = {
.i2c_num = 2,.direction = 3,//磁感應方向//參照規格書.power_id = MT65XX_POWER_NONE, .power_vol= VOL_DEFAULT,};
16.6 compass 指南針
CUSTOMKERNELMAGNETOMETER= akm8975
mediatek\custom\common\kernel\magnetometer\akm8975\akm8975.c
mediatek\custom\konka73gb\kernel\magnetometer\akm8975\custmag.c
CUSTOMHALFLASHLIGHT= dummy_flashlight
CUSTOMKERNELFLASHLIGHT= dummy_flashlight
閃光燈類型:
constant_flashlight 補光燈(camera閃光燈)
peak_flashlight
torch_flashlight 手電筒
dummy_flashlight
備注:camera閃光燈與camera驅動無關,只需要打開開關,這是由MTK開發的獨立功能。
mediatek\custom\common\kernel\flashlight\dummyflashlight\dummyflashlight.c
mediatek\custom\common\kernel\flashlight\src\kd_flashlightlist.c
mediatek\custom\common\kernel\flashlight\
17.1 LED閃光燈配置為手電筒模式:???
CUSTOMKERNELJOGBALL=
mediatek\custom\common\kernel\jogball\
CUSTOMHALMATV =
CUSTOMKERNELMATV=
HAVEMATVFEATURE=yes#no #Armin
MTKATVCHIP=MTK_MT5193 # Armin
MTKMATVANALOG_SUPPORT=yes#no//模擬通道、數字通道切換功能開關
mediatek\custom\common\kernel\matv\mt5193\matv.c
MTKSOUNDRECORDERAPP= yes
CUSTOMKERNELSOUND= speaker
mediatek\custom\common\kernel\sound\inc\yusuandroidspeaker.h
mediatek\custom\konka73gb\kernel\sound\speaker\yusuandroid_speaker.c
CUSTOMKERNELUSB =mt6577
mediatek\custom\common\kernel\usb\src\Makefile
mediatek\custom\mt6573\kernel\usb\src\mtkusbcustom.c
mediatek\custom\mt6573\kernel\usb\src\mtkusbcustom.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中打開
CONFIGUSBMTK_OTG=y
CONFIGUSBMTKHDRCHCD= y
20.2 MTP(MediaTransfer Protocol)
USB連接設備,可選存儲方式介紹:
USB存儲設備、MTP(媒體設備)、PTP(相機)、只充電、內置光盤。
MTKWLANCHIP =MT6620 # candidate settings: MT6620
MTKBTCHIP =MTKMT6620 # candidate settings:MTKMT6611\MTKMT6612\MTKMT6616\MTK_MT6620
MTKWLANSUPPORT =yes
MTKBTSUPPORT = yes
MTKWLANSUPPORT =yes
MTKWLANBTSINGLEANT= no
MTKBT30HSSUPPORT= yes
config BTfeature
please do notmodify these options
MTKBT21_SUPPORT =yes
MTKBT30_SUPPORT =yes
MTKBT40_SUPPORT =yes
MTKBTFMOVERBTVIACONTROLLER= yes
MTKBTPROFILE_OPP= yes
MTKBTPROFILE_SIMAP= yes
MTKBTPROFILE_PRXM= yes//藍牙距離感應裝置
MTKBTPROFILE_PRXR= yes//藍牙距離感應裝置
MTKBTPROFILE_HIDH= yes//無線輸入設備
MTKBTPROFILE_FTP= yes
MTKBTPROFILE_PBAP= yes
MTKBTPROFILE_MANAGER= yes
MTKBTPROFILE_BPP= yes
MTKBTPROFILE_BIP= yes
MTKBTPROFILE_DUN= yes
MTKBTPROFILE_PAN= yes
MTKBTPROFILE_HFP= yes
MTKBTPROFILE_A2DP= yes
MTKBTPROFILE_AVRCP= yes
MTKBTPROFILE_AVRCP14= yes
MTKBTPROFILE_TIMEC= no
MTKBTPROFILE_TIMES= no
MTKBTPROFILE_MAPS= no
MTKBTPROFILE_MAPC= no
MTKBTPROFILE_SPP= yes
config BTfeature end
mediatek\custom\common\kernel\btwlanem\btwlanem\btwlanem.c
MTKFMCHIP =MT6620_FM
MTKFMSUPPORT =yes
MTKFMTX_SUPPORT =yes
MTKFMAUDIO =FMANALOGINPUT
FMDIGITALINPUT
mediatek\custom\common\kernel\fm\mt6620\dummy.c
CUSTOMKERNELOFN =ofn1090
mediatek\custom\common\kernel\ofn\inc
mediatek\custom\konka73gb\kernel\ofn\ofn1090\custofn.c
26.modem
3g: \modem\make\PRJ_HSPA.mak
2g: \modem\make\PRJ_GPRS.mak
26.1modem模塊位置及組成
配置文件位置:\prj\modem\make\PRJ_HSPA.mak
工程名稱配置:BOARDVER = PRJBB
26.2 modem源碼工程編譯(../prj/modem)
./make.shPRJ_HSPA.mak new
26.3 modem文件修改:
RF模塊名配置:(安裝項目區分定義文件夾名稱)
\prj\modem\make\PRJ_HSPA.mak
GSM射頻模塊:RFMODULE = MT6162CUSTOM
3G射頻模塊:UMTSRFMODULE = CUSTOM_MT6162
射頻參數配置:
GSM射頻參數:
\prj\modem\custom\l1rf\MT6162CUSTOM\m12193.c
\prj\modem\custom\l1rf\MT6162CUSTOM\l1dcustomrf.h
\prj\modem\custom\l1rf\MT6162CUSTOM\l1dcustomrf_.h
\prj\modem\custom\l1rf\MT6162CUSTOM\l1dcustomrf_.h
3G射頻參數:
\prj\modem\custom\ul1rf\CUSTOMMT6162\u12193.c
\prj\modem\custom\ul1rf\CUSTOMMT6162\ul1dcustomrf.h
\prj\modem\custom\ul1rf\CUSTOMMT6162\ul1dcustomrf_.h
\prj\modem\custom\ul1rf\CUSTOMMT6162\ul1dcustomrf_.h
26.4 編譯好文件修改名稱并拷貝:
\modem\build_PRJ\DEFAULT\bin:
DbgInfoWR8.W1315.MD.WG.MPPRJMOLYWR8W1315MDWGMPV15201312101150PRJ.mak
PRJPCB01MT6582_S00.elf
PRJPCB01MT6582S00.MOLYWR8W1315MDWGMP_V15.bin
\modem\build_PRJ\DEFAULT\tst\database
BPLGUInfoCustomAppSrcPMT6582S00MOLYWR8W1315MDWGMP_V15
catcher_filter.bin
修改名稱,分別修改為:
DbgInfoWR8.W1315.MD.WG.MPPRJMOLYWR8W1315MDWGMPV152013121011501wgn
modem1wg_n.mak
PRJPCB01MT6582S001wgn.elf
modem1wg_n.img
BPLGUInfoCustomAppSrcPMT6582S00MOLYWR8W1315MDWGMPV151wgn
catcherfilter1wgn.bin
26.5 modem庫替換編譯(..prj/alps/mediate/custom/common/modem)
CUSTOMMODEM=YOURMODEM
此編譯表示:已將在modem源碼工程中編譯好的鏡像放入MTKAndroid 工程中后,存放位置:
./mediatek/custom/common/modem/YOUR_MODEM
執行如下編譯命令:./mk update-modem,這個命令會依次做如下步驟:
gmodemband2 band7調換:
\modem\custom\modem\ul1rf_PCBV1P1PAAIRB1258\ul1dcustom_rf.h
define PDATABAND2PR1 0x0007
define PDATABAND2PR2 0x0007
define PDATABAND2PR2B 0x0007
define PDATABAND2PR3 0x0000
define PDATABAND2PT1 0x0007
define PDATABAND2PT2 0x0107
define PDATABAND2PT2B 0x0107
define PDATABAND2PT3 0x0000
define PDATABAND5PR1 0x0002
define PDATABAND5PR2 0x0002
define PDATABAND5PR2B 0x0002
define PDATABAND5PR3 0x0000
define PDATABAND5PT1 0x0002
define PDATABAND5PT2 0x0202
define PDATABAND5PT2B 0x0202
射頻頻段
2G:850/900/1800/1900
3G:
Band1 –2100???(其他)
Band2 --
Band5 --
Band8 --
WCDMA B1+B8:主要是歐洲
Wcdma B1+B2+B5:南美
Wcdma B2+B4+B5:北美
29.SD卡
27.1熱插拔功能
1,sd卡熱插拔機制的實現需要軟件和硬件同時配合才能實現。
2,在電路上,需要一根單獨的檢測pin腳,通過檢測pin腳的高低電平來檢測sd卡的插拔動作,并在dws中將其配置成上拉或下拉
3,軟件上的配置主要就是在\mediatek\custom\kernel\core\src\board.c中,msdc1hw 結構體中的 flags 的 MSDCCDPINEN 和MSDC_REMOVABLE,這兩個flag是熱插拔的flag,如果不需要熱插拔,請把這兩個flag移除。
4,如果是低電平觸發,將msdc1hw中的.cdlevel 設置成 MSDCCDLOW,否則設置成MSDCCDHIGH
備注:
(1),從hardware的角度,sd 卡槽中的CD 引腳與chip的EINT的某個腳連在一起,且chip內部會有上拉電阻。
(2),dct的配置如下:
注:EINT16使用的哪個GPIO,可以參考硬件hw_config.xls文檔
30.module(四合一芯片:FM/BT/WIFI/GPS)MT6628、MT6620
CUSTOMHALCOMBO=mt6628
CUSTOMKERNELFM=mt6628
MTKBTCHIP=MTK_MT6628
MTKFMCHIP=MT6628_FM
MTKWLANCHIP=MT6628
MTKCOMBOCHIP=MT6628
MTKGPSCHIP=MTKGPSMT6628
31.音頻參數集成(全部參數由硬件提供,直接合成)
參照:[FAQ09151][Audio Drv]各個音頻參數的功能說明
30.1 ring/key/mic/fmr/speech/sidetone/media/matv分別normal/headset/handfree三個模式的不同音量等級修改:
\mediatek\custom\cgen\inc\audiovolumecustom_default.h//8個等級
\mediatek\custom\cgen\inc\audiover1volumecustomdefault.h//16個等級
30.2 med/speech音頻參數修改:
\mediatek\custom\cgen\inc\medaudiodefault.h
\mediatek\custom\cgen\inc\sphcoeffdefault.h
30.3 voip音頻參數修改:
\mediatek\custom\cgen\inc\audiovoipcustom.h
轉載于:https://my.oschina.net/u/3989425/blog/2231243
總結
以上是生活随笔為你收集整理的MTK MT6577 Android驱动设置方法资料分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【FLASH实例1000教程】(4)上
- 下一篇: Windows如何安装Clouda