mtk 驅動筆記 lcd camera led tp

1. LCD

1.1怎樣新建一個LCD驅動

LCD模組主要包括LCD顯示屏和驅動IC。比如LF040DNYB16a模組的驅動IC型號爲NT35510。要在MT577平臺上新建這個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\mt65xx_lcm_list.c, 在lcm_driver_list [ lcm_count ] 中增加nt35510_lcm_drv。

C.打開mediatek\config\ginwave73_gb\ProjectConfig.mk:

BUILD_LK=yes //BUILD_UBOOT=yes

BOOT_LOGO=wsvganl

 

CUSTOM_KERNEL_LCM = nt35510

CUSTOM_LK_LCM= nt35510 // CUSTOM_UBOOT_LCM =nt35510

 

LCM_WIDTH=600

LCM_HEIGHT=1024

驅動文件移植原則:

根據具體平臺,填充對應的函數,不能直接複製整個文件,避免不必要編譯和接口錯誤。

 

1.3 LCD顯示旋轉(橫豎屏旋轉,關聯到很多界面,需要統一修改)

方式一:橫豎屏分辨率修改(還需要修改TP驅動):

LCM_WIDTH=1024

LCM_HEIGHT=600

 

方式二:lcm顯示旋轉,只需要修改:(還需要旋轉camera驅動)

MTK_LCM_PHYSICAL_ROTATION=90

MTK_TOUCH_PHYSICAL_ROTATION_RELATIVE_TO_LCM=90

camera 旋轉

Z:\jb2\_131217\alps\mediatek\custom\\hal\imgsensor\src\cfg_setting_imgsensor.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 lcm_get_params(LCM_PARAMS *params){}

lcd rgb頻率:

//params->dpi.mipi_pll_clk_ref  =536870912;

params->dpi.mipi_pll_clk_ref= (33.3*(16777216*8*2))/26;  //33.3MHz

//params->dpi.mipi_pll_clk_ref= 536870912;  //52.0MHz

colorformat 修改

params->dpi.format            = LCM_DPI_FORMAT_RGB888;   // format is 24 bit//LCM_DPI_FORMAT_RGB666

 

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

#defineSCREEN_MAX_X          480

#defineSCREEN_MAX_Y          800

 

 

2. leds 配置

CUSTOM_KERNEL_LEDS= mt65xx

 

mediatek\custom\prj\kernel\leds\mt65xx\cust_leds.c

mediatek\custom\prj\lk\cust_leds.c

static structcust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {

{"red",MT65XX_LED_MODE_NONE, -1,{0}},

{"green",MT65XX_LED_MODE_NONE, -1,{0}},

{"blue",MT65XX_LED_MODE_NONE, -1,{0}},

{"jogball-backlight",MT65XX_LED_MODE_NONE, -1,{0}},

{"keyboard-backlight",MT65XX_LED_MODE_NONE,-1,{0}},

{"button-backlight",  MT65XX_LED_MODE_NONE, -1,{0}},      // modify

{"lcd-backlight",MT65XX_LED_MODE_PWM,PWM1,{PWM_CLK_NEW_MODE_BLOCK,CLK_DIV128,4,4}},          //modify

//{"lcd-backlight",MT65XX_LED_MODE_CUST,(int)DISP_SetBacklight,{0}},

};

 

..\mediatek\platform\mt6582\kernel\drivers\leds\leds.c

mt65xx_flashlight_on(){}

mt65xx_flashlight_off(){}

 

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:

<integername="config_screenBrightnessDim">20</integer>

\alps\frameworks\base\core\java\android\os\PowerManager.java:

private staticfinal int MAXIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_ON;

 

 

3. Flash配置:

3.1 型號配置:

3.1.1 CUSTOM_MEMORY_HDR(需要確認是否是MTK認證的flash ic)

mediatek\custom\$(PROJECT)\preloader\inc\custom_MemoryDevice.h

#defineBOARD_ID                MT6577_EVB

#defineCS_PART_NUMBER[0]      H9TP32A4GDMCPR_KDM

#defineCS_PART_NUMBER[1]       KMKUS000VM_B410

備註:新增flash ic添加到此處,flash可以做到兼容;不能兼容相同IC Idmemeory ic.

 

3.2 特定項目不同類型分區定義信息(是否定義、順序):

mediatek\custom\\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.3  emmc scat 分區大小設置(emmc) :

可對emmc進行分區,修改preloader\systemimage\userdata\FAT等各個分區。

\alps\mediatek\build\tools\ptgen\MT6577\partition_table_MT6577.xls

備註:Cache分區需要保持在512mb左右,否則系統會比較慢,響應遲緩。

 

3.4 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.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, // : 0

#ifdefMTK_EMMC_SUPPORT

            .data_pins      = 8,

#else

            .data_pins      = 4,

#endif

            .data_offset    = 0,

#ifdefMTK_EMMC_SUPPORT

                   .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設置方法:

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);

 

 

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

#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

#defineCUST_KEY_VOLUP                KEY_PAGEUP       // KEY_VOLUMEUP

#defineCUST_KEY_DOWN                 KEY_DOWN

#defineCUST_KEY_VOLDOWN KEY_VOLUMEDOWN     // KEY_VOLUMEDOWN

#defineCUST_KEY_LEFT                   KEY_MENU

#defineCUST_KEY_CENTER              KEY_HOMEPAGE

#define CUST_KEY_RIGHT                 KEY_BACK

 

#defineCUST_KEY_CONFIRM  KEY_VOLUMEUP // KEY_HOME

#defineCUST_KEY_BACK                 KEY_POWER

 

5.3 recoverymode恢復模式按鍵定義

\mediatek\custom\prj\recovery\inc\cust_keys.h

#defineRECOVERY_KEY_DOWN     KEY_VOLUMEDOWN

#defineRECOVERY_KEY_UP       KEY_VOLUMEDOWN

#defineRECOVERY_KEY_ENTER    KEY_VOLUMEUP

#defineRECOVERY_KEY_MENU     KEY_POWER

 

5.4 home鍵配置(直接引出的,不需要在.dws中定義按鍵映射)

\alps\mediatek\custom\prj\kernel\kpd\kpd\mtk_kpd.h

#defineKPD_PMIC_RSTKEY_MAP KEY_HOME

 

home鍵添加喚醒功能

\alps\mediatek\config\prj\mtk-kpd.kl

key 102   HOME           WAKE

 

 

6.PM 充電

6.1 配置文件位置:

CUSTOM_KERNEL_BATTERY= battery

mediatek\custom\\kernel\battery\battery\cust_battery.h

mediatek\custom\\kernel\battery\battery\custom_fuel_gauge.h

 

6.2充電常用參數修改:

..\mediatek\custom\\kernel\battery\battery\cust_battery.h

6.2.1充電電流修改:

#defineUSB_CHARGER_CURRENT                                         Cust_CC_550MA   //  :Cust_CC_450MA

#define AC_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

 

其他:

#defineV_CHARGER_MIN 4400                                      //modify      //4400 // 4.4 V

#defineV_CHARGER_ENABLE 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\custom_fuel_gauge.h 

#define Q_MAX_POS_50 ((2168* 1316) / 1307)

#define Q_MAX_POS_25   2168

#define Q_MAX_POS_0 ((2168 * 1220) / 1307)

#define Q_MAX_NEG_10 ((2168 * 1162) / 1307)


#define Q_MAX_POS_50_H_CURRENT ((2168 * 1295) / 1307)

#define Q_MAX_POS_25_H_CURRENT ((2168 * 1270) / 1307) 
#define Q_MAX_POS_0_H_CURRENT ((2168 * 1102) / 1307) 
#define Q_MAX_NEG_10_H_CURRENT ((2168 * 599) / 1307)

 

電池曲線集成方式:(電壓-百分比對應表需要電池廠商提供)

mediatek\custom\\kernel\battery\battery\cust_fuel_gauge.h

BATTERY_PROFILE_STRUCbattery_profile_t1[] =// T1 0C

BATTERY_PROFILE_STRUCbattery_profile_t2[] =// T2 25C

 

 

7.camera

7.1 相關代碼位置:

mediatek\config\XXXX(紅色字爲具體的項目名)

文件:ProjectConfig.mk

CUSTOM_KERNEL_IMGSENSOR = …… gc2235_raw

CUSTOM_KERNEL_MAIN_IMGSENSOR = …… gc2235_raw

CUSTOM_HAL_IMGSENSOR = …… gc2235_raw

CUSTOM_HAL_MAIN_IMGSENSOR = …… gc2235_raw

 

kernel:

\mediatek\custom\common\kernel\imgsensor\gc2235_raw

 

mediatek\custom\common\kernel\imgsensor\src

文件:kd_sensorlist.h

添加內容:

UINT32 GC2235SensorInit(PSENSOR_FUNCTION_STRUCT *pfFunc);

ACDK_KD_SENSOR_INIT_FUNCTION_STRUCT

kdSensorList[MAX_NUM_OF_SUPPORT_SENSOR+1] =

{

#if defined(GC2235_RAW)

    {GC2235_SENSOR_ID, SENSOR_DRVNAME_GC2235_RAW, GC2235SensorInit}, 

#endif

};

 

mediatek\custom\common\kernel\imgsensor\inc

文件:kd_imgsensor.h

添加內容:

#define GC2235_SENSOR_ID                 0x2235

#define SENSOR_DRVNAME_GC2235_RAW    "gc2235"

 

hal

\mediatek\custom\common\hal\imgsensor\gc2235_raw

 

mediatek\custom\common\hal\imgsensor\src

文件:sensorlist.cpp

添加內容:

MSDK_SENSOR_INIT_FUNCTION_STRUCT SensorList[] =

{

…………

#if defined(GC2235_RAW)

RAW_INFO(GC2235_SENSOR_ID, SENSOR_DRVNAME_GC2235_RAW, NULL), 

#endif

…………

};

注意:在 kdSensorList  SensorList裏面添加驅動的時候要注意,Sensor添加的位置要一樣。否則驅動會跑亂,輕則 ISP參數不對,重則 Sensor 無法啓動。

 

7.2 拍照圖片尺寸設置:

..\mediatek\custom\\hal\camera\camera\cfg_ftbl_$prj$_raw_main.h

//Capture Size

CONFIG_FEATURE(FID_CAP_SIZE,

    BY_DEFAULT(CAPTURE_SIZE_1600_1200),

    /*BY_DEFAULT(CAPTURE_SIZE_2560_1920),  modify*/

    CAPTURE_SIZE_640_480,

    CAPTURE_SIZE_1280_960,CAPTURE_SIZE_1600_1200,

)

 

7.3 Camera物理角度旋轉

90度:

\alps\mediatek\custom\$prj$\hal\imgsensor\src\cfg_setting_imgsensor.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一致):

//配置區分:

CUSTOM_KERNEL_IMGSENSOR = gc0308_yuv# gc0308_sub_yuv

CUSTOM_KERNEL_MAIN_IMGSENSOR =gc0308_yuv # gc0308_sub_yuv

CUSTOM_HAL_IMGSENSOR = gc0308_yuv# gc0308_sub_yuv

CUSTOM_HAL_MAIN_IMGSENSOR = gc0308_yuv# gc0308_sub_yuv

 

//kernel:函數名也要區分

\alps\mediatek\custom\common\kernel\imgsensor\gc0308_sub_yuv

\alps\mediatek\custom\common\kernel\imgsensor\gc0308_yuv

 

//hal: 函數名也要區分

\alps\mediatek\custom\common\hal\imgsensor\gc0308_sub_yuv

\alps\mediatek\custom\common\hal\imgsensor\gc0308_yuv

 

//kdSensorList  SensorList裏面添加驅動也要區分,sensor id不要區分,寫成一致,根據前後攝像頭開關代碼區分。

#define GC0328_SENSOR_ID       0x009D          

#defineGC0328_SUB_SENSOR_ID   0x9D9D       

 

\alps\mediatek\custom\common\kernel\imgsensor\gc0328frontyuv_Sensor.c

GC0328_FRONTGetSensorID(){

if (sensor_id == GC0328_SENSOR_ID) {

sensor_id = GC0328_FRONT_SENSOR_ID; //---lcz

break;

}

if(sensor_id != GC0328_FRONT_SENSOR_ID)         //---lcz

{

        return ERROR_SENSOR_CONNECT_FAIL;

}

}

GC0328_FRONTOpen(){

if (sensor_id == GC0328_SENSOR_ID) {

sensor_id = GC0328_FRONT_SENSOR_ID; //---lcz

break;

}

if(sensor_id != GC0328_FRONT_SENSOR_ID)         {

        return ERROR_SENSOR_CONNECT_FAIL;

}

}

 

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

 

 

10. TouchPanel

10.1配置

CUSTOM_KERNEL_TOUCHPANEL= gt818b

..\mediatek\custom\common\kernel\touchpanel\src\mtk_tpd.c

 

..\mediatek\custom\common\kernel\touchpanel\gt818b

module_init(tpd_driver_init);

module_exit(tpd_driver_exit);

 

tpd_driver_add(&tpd_device_driver);

tpd_driver_remove(&tpd_device_driver);

 

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

//#defineTPD_PS_SUPPORT

 

11      震動馬達

CUSTOM_KERNEL_VIBRATOR=vibrator

a.馬達震動幅度(MT6582及其他最新平臺)

..\mediatek\custom\\kernel\vibrator\cust_vibrator.c

static structvibrator_hw cust_vibrator_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

 

voidPMIC_CUSTOM_SETTING_V1(void) {}

ret=pmic_config_interface(BANK0_DIGLDO_CON33,0x3,

BANK_0_RG_VIBR_VOSEL_MASK,BANK_0_RG_VIBR_VOSEL_SHIFT);//0x4

 

 

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

14.1雙卡、單卡版本切換:

(具體定義方法參考基線代碼釋放的ReleaseNote_for_MT6582_****.xlsx文件的page:Switchable_Features)

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

 

14.2 simcard熱插拔功能

MTK_SIM_HOT_SWAP=yes

MTK_SIM_HOT_SWAP_COMMON_SLOT=yes

.dws配置方法(由原理圖設計填寫):

 

 

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\

 

重力傳感方向設置:

\alps\mediatek\custom\\kernel\accelerometer\mc3210\cust_acc.c

static structacc_hw cust_acc_hw = {

    .i2c_num = 2,

    .direction = 5,   // modify//重力傳感方向

 

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\prj\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\prj\kernel\gyroscope\l3g4200d\cust_gyro.c

 

16.4BAROMETER-sensor 氣壓計

CUSTOM_KERNEL_BAROMETER= 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 structmag_hw cust_mag_hw = {

    .i2c_num = 2,

    .direction = 3,//磁感應方向//參照規格書

    .power_id = MT65XX_POWER_NONE,  /*!< LDO is not used */

    .power_vol= VOL_DEFAULT,        /*!< LDO is not used */

};

 

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

3g: \modem\make\PRJ_HSPA.mak

2g: \modem\make\PRJ_GPRS.mak

 

26.1modem模塊位置及組成

配置文件位置:\prj\modem\make\PRJ_HSPA.mak

工程名稱配置:BOARD_VER = PRJ_BB

 

26.2 modem源碼工程編譯(../prj/modem)

./make.shPRJ_HSPA.mak new

 

26.3 modem文件修改:

RF模塊名配置:(安裝項目區分定義文件夾名稱

\prj\modem\make\PRJ_HSPA.mak

GSM射頻模塊:RF_MODULE = MT6162_CUSTOM

3G射頻模塊:UMTS_RF_MODULE = CUSTOM_MT6162

 

射頻參數配置:

GSM射頻參數:

\prj\modem\custom\l1_rf\MT6162_CUSTOM\m12193.c

\prj\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf.h

\prj\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf_.h

\prj\modem\custom\l1_rf\MT6162_CUSTOM\l1d_custom_rf_.h

3G射頻參數:

\prj\modem\custom\ul1_rf\CUSTOM_MT6162\u12193.c

\prj\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf.h

\prj\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf_.h

\prj\modem\custom\ul1_rf\CUSTOM_MT6162\ul1d_custom_rf_.h

 

 

26.4 編譯好文件修改名稱並拷貝:

\modem\build\_PRJ\DEFAULT\bin:

DbgInfo_WR8.W1315.MD.WG.MP__PRJ_MOLY_WR8_W1315_MD_WG_MP_V15_2013_12_10_11_50_PRJ.mak

PRJ_PCB01_MT6582_S00.elf

PRJ_PCB01_MT6582_S00.MOLY_WR8_W1315_MD_WG_MP_V15.bin

 

\modem\build\_PRJ\DEFAULT\tst\database

BPLGUInfoCustomAppSrcP_MT6582_S00_MOLY_WR8_W1315_MD_WG_MP_V15

catcher_filter.bin

 

修改名稱,分別修改爲:

DbgInfo_WR8.W1315.MD.WG.MP__PRJ_MOLY_WR8_W1315_MD_WG_MP_V15_2013_12_10_11_50_1_wg_n

modem_1_wg_n.mak

PRJ_PCB01_MT6582_S00_1_wg_n.elf

modem_1_wg_n.img

 

BPLGUInfoCustomAppSrcP_MT6582_S00_MOLY_WR8_W1315_MD_WG_MP_V15_1_wg_n

catcher_filter_1_wg_n.bin

 

 

26.5 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

 

gmodemband2 band7調換:

\modem\custom\modem\ul1_rf\_PCBV1P1_PAAIR_B1258\ul1d_custom_rf.h

/*MT6166*/#define  PDATA_BAND2_PR1      0x0007

/*MT6166*/#define  PDATA_BAND2_PR2      0x0007

/*MT6166*/#define  PDATA_BAND2_PR2B     0x0007

/*MT6166*/#define  PDATA_BAND2_PR3      0x0000

/*MT6166*/#define  PDATA_BAND2_PT1      0x0007

/*MT6166*/#define  PDATA_BAND2_PT2      0x0107

/*MT6166*/#define  PDATA_BAND2_PT2B     0x0107

/*MT6166*/#define  PDATA_BAND2_PT3      0x0000

/*MT6166*/ /*--------------------- PDATA_BAND2 End ------------------------------*/

/*MT6166*/ /*--------------------- PDATA_BAND5 Start ----------------------------*/

/*MT6166*/#define  PDATA_BAND5_PR1      0x0002

/*MT6166*/#define  PDATA_BAND5_PR2      0x0002

/*MT6166*/#define  PDATA_BAND5_PR2B     0x0002

/*MT6166*/#define  PDATA_BAND5_PR3      0x0000

/*MT6166*/#define  PDATA_BAND5_PT1      0x0002

/*MT6166*/#define  PDATA_BAND5_PT2      0x0202

/*MT6166*/#define  PDATA_BAND5_PT2B     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\<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

 

31.音頻參數集成(全部參數由硬件提供,直接合成)

參照:[FAQ09151][Audio Drv]各個音頻參數的功能說明

30.1 ring/key/mic/fmr/speech/sidetone/media/matv分別normal/headset/handfree三個模式的不同音量等級修改:

\mediatek\custom\\cgen\inc\audio_volume_custom_default.h//8個等級

\mediatek\custom\\cgen\inc\audio_ver1_volume_custom_default.h//16個等級

 

30.2 med/speech音頻參數修改:

\mediatek\custom\\cgen\inc\med_audio_default.h

\mediatek\custom\\cgen\inc\sph_coeff_default.h

 

30.3 voip音頻參數修改:

\mediatek\custom\\cgen\inc\audio_voip_custom.h

轉載請註明出處:http://blog.csdn.net/cbk861110/article/details/9385439

發佈了0 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章