这是ldo mic给mic和耳机mic供电,是两者共用的。,
{ /* PMD_POWER_CAMERA : Camera LDO enable */ \\ .ldo = { .opal = PMD_LDO_CAM|PMD_LDO_RF}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ 一般Camera供电有两路,2.8V和1.8V,对应的电压设置.ldoCamIs2_8和.ldoRfIs2_8,TRUE 为 2.8,反之1.8;大部分Sensor的供电都是AVDD接2.8V,DVDD接1.8V,但是也有特殊的,比如byd3603,两个电压都是2.8V的,这样.ldoCamIs2_8和.ldoRfIs2_8都要设为TRUE。 { /* PMD_POWER_ANALOG : Analog LDO enable */ \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_STEREO_DAC : Stereo DAC LDO enable */ \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_LOUD_SPEAKER : Loud Speaker enable */ \\ .ldo /*= { .pin = { .gpoId = HAL_GPO_0 } },*/ \\ ={ .opal = PMD_LDO_NONE}, \\
.polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\
如果使用外部功放,一般需要用GPIO/GPO控制;如果只是使用内部功放,则不需控制,因为内部音频功放由ABB控制。
{ /* PMD_POWER_PA : RF Power Amplifier */ \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_USB : USB LDOs enable */ \\ .ldo = { .opal = PMD_LDO_USB}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\
{ /* PMD_POWER_SDMMC : SD/MMC LDO enable */ \\
.ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_FM : FM LDO enable */ \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_EARPIECE : Ear Piece Micro bias enable */\\ .ldo = { .opal = PMD_LDO_MIC}, \\ .polarity = TRUE, \\ .shared = TRUE, /* with PMD_POWER_MIC */ \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_BT : BlueTooth LDOs enable */ \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_CAMERA_FLASH : Camera Flash Light enable */ \\ .ldo = { .pin = {.gpioId = HAL_GPO_2}}, \\ .polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_LCD : (main) LCD LDO enable */ \\
.ldo = { .opal = PMD_LDO_LCD | PMD_LDO_USB}, \\
.polarity = TRUE, \\ .shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ { /* PMD_POWER_I2C : I2C LDO enable */ \\ /* Inside Gallite chip, PMD_LDO_CAM also supplies */ \\ /* power to I2C1 I/O. It must be specified here */ \\ /* if I2C1 is used on this board. */ \\ /* On this board, PMD_LDO_LCD also supplies power */ \\ /* to I2C2 pull-up resistor. */ \\
.ldo = { .opal = PMD_LDO_LCD}, \\ .polarity = TRUE, \\
.shared = FALSE, \\ .powerOnState = FALSE, \\ }, \\ }, \\ 如果使用了多组I2C,且供电ldo不同,则要将几个ldo或起来。
.level = \\ { \\ { /* PMD_LEVEL_SIM : Sim class voltage */ \\
.type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\ { /* PMD_LEVEL_KEYPAD : KeyPad Back Light level */ \\
.type = PMD_LEVEL_TYPE_OPAL, \\ .ldo = { .pin = { .gpoId = HAL_GPO_NONE}}, \\ .powerOnState = 0, \\ }, \\
键盘背光控制,一般有三种硬件方案:使用GPIO/GPO控制外置ldo、基带PWL1控制和PMIC提供的KEYPAD Light接口。
使用GPIO/GPO控制ldo只能起开关作用,不能调节亮度等级,配置方式如下: .type = PMD_LEVEL_TYPE_LDO
.ldo= { .pin = { .gpoId = HAL_GPO_3}}, 使用基带上的PWL1接口时,如下配置: .type =PMD_LEVEL_TYPE_PWL1
.ldo = { .pin = { .gpoId = HAL_GPO_6}},或任意其它值。 使用 PWL1可以调节亮度等级,分7个等级,255为最亮
.lightLevelToPwm1 = { 0, 0, 0, 0, 0, 224, 224, 224}, 使用PMIC提供的KEYPAD Light接口LED_KP,如下配置:
.type = PMD_LEVEL_TYPE_OPAL, \\ .ldo = { .opal = PMD_LDO_NONE},
LED_KP的亮度等级由.lightLevelToPwm0来控制,最大为0xFF。 .lightLevelToPwm0 = { 0, 32, 32, 32, 32, 32, 32, 32},
{ /* PMD_LEVEL_LCD : (main) LCD Back Light level*/ \\
.type = PMD_LEVEL_TYPE_BACKLIGHT, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\
LCD 背光设置和键盘背光设置相似,背光等级由.lightLevelToRda1203控制,最大0x8f88。 lightLevelToRda1203 ={ 0x8088, 0x8188, 0x8488, 0x8888, 0x8c88, 0x8d88, 0x8e88, 0x8f88} { /* PMD_LEVEL_SUB_LCD : Sub LCD Back Light level */ \\
.type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\
{ /* PMD_LEVEL_LED0 : LED0 Light level */ \\
.type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\ { /* PMD_LEVEL_LED1 : LED1 Light level */ \\
.type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\ { /* PMD_LEVEL_LED2 : LED2 Light level */ \\
.type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\ { /* PMD_LEVEL_LED3 : LED3 Light level */ \\ .type = PMD_LEVEL_TYPE_LDO, \\ .ldo = { .pin = {.gpioId = HAL_GPO_4}}, \\ .powerOnState = 0, \\ }, \\ LED3被用来作为手电筒的控制。
{ /* PMD_LEVEL_VIBRATOR : Vibrator control level */ \\
.type = PMD_LEVEL_TYPE_LDO, \\ .ldo = { .opal = PMD_LDO_VIBR}, \\ .powerOnState = 0, \\ }, \\ { /* PMD_LEVEL_LOUD_SPEAKER : loudspeaker gain */ \\ .type = PMD_LEVEL_TYPE_NONE, \\ .ldo = { .opal = PMD_LDO_NONE}, \\ .powerOnState = 0, \\ }, \\ }, \\ .lightLevelToRda1203 = {0x8088, 0x8188, 0x8488, 0x8488, \\
0x8488, 0x8488, 0x8488, 0x8488}, \\ .lightLevelToPwm0 = { 0, 32, 32, 32, 32, 32, 32, 32}, \\ .lightLevelToPwm1 = { 0, 0, 0, 0, 0, 224, 224, 224}, \\ /* Inside Gallite chip, PMD_LDO_MMC also supplies power to */ \\ /* TCU0-2, so if any of TCU0-2 is used, MMC LDO should be */ \\ /* always on in active mode and cannot be controlled as a */ \\
/* POWER or LEVEL LDO. */ \\ .ldoEnableNormal = PMD_LDO_MMC, \\ .ldoEnableLowPower = 0, \\ .ldoEnableNorma表示工作状态下常开的LDOs,.ldoEnableLowPower表示在低功耗状态下一直常开的LDOs。当某个LDO被放到.ldoEnableNormal时,如果有特定设备用到它,可以直
接设为.ldo = { .opal = PMD_LDO_NONE}, 例如这里.ldoEnableNorma是PMD_LDO_MMC,那么上面的PMD_POWER_SDMMC的.ldo就要设为PMD_LDO_NONE。 .ldoMicIs2_8 = TRUE, \\ .ldoCamIs2_8 = TRUE, \\ .ldoLcdIs2_8 = TRUE, \\ .ldoMMCIs2_8 = TRUE, \\ .ldoIbrIs2_8 = FALSE, \\ .ldoRfIs2_8 = FALSE, \\ 分别是VMIC、VCAM、VLCD、VMMC、VVIB和VRF的电压选择,TRUE为2.8V,FALSE为1.8V。gallite共有11个ldo,其它的有些由硬件配置,有些电压是固定的,所以没有在这里列出。
.batteryGpadcChannel = HAL_ANA_GPADC_CHAN_3, \\ 为电池电压检测所用的ADC通道
.batteryLevelFullMV = 4200, \\ 为电池充电电压上限,4.2V为满
.batteryLevelPrechargeMV = 3200, \\ 预冲门限电压
.batteryChargeTimeout = 4 HOURS, \\ 充电 TimeOut 时间,Timeout之后,报充电满
.batteryPulseChargeEndRatio = 4, /* 400mA / 50mA */ \\ 目前没用到
.batteryOffsetHighActivityMV = 30, \\ 背光亮时的电压补偿
.powerOnVoltageMV = 3400, \\ .powerDownVoltageMV = 3400, \\ 开机电压设置和关机电压设置
.batteryChargeCurrent = PMD_CHARGER_700MA, \\ 快充时的充电电流
.batteryChargerTopingUp = TRUE, \\ 目前没用到
.earpieceDetectGpio = HAL_GPIO_5, /* HAL_GPIO_NONE */ \\ 耳机中断检测使用的 GPIO
.earpieceGpadcChannel = HAL_ANA_GPADC_CHAN_0, \\ 为耳机mic电压检测所用的ADC通道 }
4.2.17、MEMD和AUDIO 这两部分一般不用修改。 4.2.18、SDMMC
#ifdef TGT_WITH_MCD_IF_spi #ifndef TGT_MCD_CONFIG
#define TGT_MCD_CONFIG \\ { \\ HAL_SPI_CS1, \\ HAL_GPIO_7 \\