MTK驱动调试记事

一、快充
make
MTK_SWCHR_SUPPORT = yes

lk
MTK_PSC5005_SUPPORT := yes

config
CONFIG_USB_MTK_OTG=y    //fan5405带otg功能
CONFIG_CHARGER_PSC5005=y    //充电ic驱动?
CONFIG_MTK_SWCHR_SUPPORT=y

dts
//mt6739.dtsi
algorithm_name = "SwitchCharging";
max_charger_voltage = <6000000>;    //default = 6500000
ac_charger_current = <2050000>;

#ifndef CONFIG_MTK_SWCHR_SUPPORT
    mt6357_charger: mt6357_charger {
        compatible = "mediatek,mt6357_charger";
    };
#endif

//BIRD BEGIN
#ifdef CONFIG_CHARGER_PSC5005
&i2c1 {
    psc005@6a {
        status = "okay";
        compatible = "prisemi,psc5005";
        reg = <0x6a>;
    };
};
#endif
//BIRD END

 

 

普冲
...

algorithm_name = "LinearCharging";
max_charger_voltage = <6500000>;
ac_charger_current = <800000>;

二、充电低温保护

/* battery temperature protection */
enable_min_charge_temperature;    //用of_property_read_bool这个读是直接判断有没有定义  
min_charge_temperature = <0>;    //dts参数不能为负数
min_charge_temperature_plus_x_degree = <6>;
max_charge_temperature = <50>;
max_charge_temperature_minus_x_degree = <47>;


info->thermal.enable_min_charge_temperature = of_property_read_bool(np,"enable_min_charge_temperature");    //返回值是1

但只是充不进电,没有显示低温或高温不能充电图标,要加上宏 BAT_LOW_TEMP_PROTECT_ENABLE

//kernel-4.4/drivers/power/mediatek/charger/mtk_charger.c
#define BAT_LOW_TEMP_PROTECT_ENABLE

static void mtk_battery_notify_VBatTemp_check(struct charger_manager *info)
{
    ...
#ifdef BAT_LOW_TEMP_PROTECT_ENABLE
    if (info->battery_temperature < info->thermal.min_charge_temperature) {
        info->notify_code |= 0x0020;
        chr_err("[BATTERY] bat_temp(%d) out of range(too low)\n",
            info->battery_temperature);
    }
#endif
}


//mtk_charging.h
#define HIGH_BATTERY_VOLTAGE_SUPPORT    高压
三、power键调试

powerkey接在pmic上,注册为中断
cat proc/interrupt
           CPU0       CPU1       CPU2       CPU3       
219:        133        125         67        132  mtk-eint 182 Level     pmic-eint

CONFIG_MTK_PMIC_NEW_ARCH=y
CONFIG_MTK_PMIC_COMMON=y
CONFIG_MTK_PMIC_CHIP_MT6357=y
CONFIG_MTK_AUXADC_INTF=y


//kernel-4.4/drivers/misc/mediatek/pmic/mt6357/v1/pmic_irq.c
//按下
void pwrkey_int_handler(void)
{
    
    IRQLOG("[pwrkey_int_handler] Press pwrkey %d\n",
        pmic_get_register_value(PMIC_PWRKEY_DEB));

#if !defined(CONFIG_FPGA_EARLY_PORTING) && defined(CONFIG_KPD_PWRKEY_USE_PMIC)
    kpd_pwrkey_pmic_handler(0x1);
#endif
}

//松开
void pwrkey_int_handler_r(void)
{
 
    IRQLOG("[pwrkey_int_handler_r] Release pwrkey %d\n",
        pmic_get_register_value(PMIC_PWRKEY_DEB));

#if !defined(CONFIG_FPGA_EARLY_PORTING) && defined(CONFIG_KPD_PWRKEY_USE_PMIC)
    kpd_pwrkey_pmic_handler(0x0);
#endif
}

四、gpio 调试

节点
/sys/bus/platform/drivers/mediatek-pinctrl/1000b000.pinctrl

 五、

2)外部PA接在内部PA SPK输出点;

在mt_soc_codec_mt63xx.c中Speaker_Amp_Change函数中进行外部PA的gpio控制就可以。

3)外部PA接在耳机左右声道。

    1.在audio_custom_exp.h文件#define USING_EXTAMP_HP

    2.在mt_soc_codec_mt63xx.c中ext_Speaker_Amp_Change函数中进行外部PA的gpio控制就可以:

 

  •     查看CONFIG_OF宏是否定义

              是:请在平台对应的dtsi文件上搜关键字extspkamp,MTK默认的GPIO是117,请改成贵司使用的GPIO口值即可。

 

              否:请直接对GPIO_EXT_SPKAMP_EN_PIN定义成贵司现在连接外部PA的GPIO口

      

    注意:CONFIG_MTK_SPEAKER这个宏,不定义才能走到Ext_Speaker_Amp_Change函数的打开GPIO口的分支。

脉冲数设置alps/kernel-4.4/sound/soc/mediatek/codec/mt6357/mtk-soc-codec-6357.c

#if defined( CONFIG_BIRD_EXT_SPEAKER_AMP_FIVE_PULSE ) //
        AudDrv_GPIO_EXTAMP_Select(true, 5); //BIRD
    #elif defined( CONFIG_BIRD_EXT_SPEAKER_AMP_FOUR_PULSE ) //
        AudDrv_GPIO_EXTAMP_Select(true, 4); //4=AW8735 
    #else
        AudDrv_GPIO_EXTAMP_Select(true, 3); //3=AW8736 
    #endif
        /* msleep(SPK_WARM_UP_TIME); */
        usleep_range(5 * 1000, 10 * 1000);

五、

. 获取 flash id:

硬件信息:通过这个节点可以知道当前flash的id,上层根据id找到对应的flash名字。

cat /sys/block/mmcblk0/device/cid

\kernel-4.4\drivers\mmc\core\Mmc.c

MMC_DEV_ATTR(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1]

编译命令:

make -j8 2>&1 | tee z_build.log

 

 

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值