case PM660_SUBTYPE: chip->chg.chg_param.smb_version = PM660_SUBTYPE; chip->chg.wa_flags |= BOOST_BACK_WA | OTG_WA | OV_IRQ_WA_BIT | TYPEC_PBS_WA_BIT; chg->param.freq_buck = pm660_params.freq_buck; chg->param.freq_boost = pm660_params.freq_boost; chg->chg_freq.freq_5V = 650; chg->chg_freq.freq_6V_8V = 850; chg->chg_freq.freq_9V = 1050; chg->chg_freq.freq_12V = 1200; chg->chg_freq.freq_removal = 1050; chg->chg_freq.freq_below_otg_threshold = 1600; chg->chg_freq.freq_above_otg_threshold = 800; break;代码分析
时间: 2024-04-02 15:35:37 浏览: 174
这段代码是针对 PM660_SUBTYPE 的情况进行初始化设置的。其中,设置了chip->chg.chg_param.smb_version为PM660_SUBTYPE,设置了一些wa_flags标志位,指示需要进行一些错误修复。同时,设置了一些充电频率参数,包括在各种电压下的充电频率,以及一些特殊情况下的频率设置。最后,使用了break语句,表示结束了这个case分支。
相关问题
DULE_LDO_512_LV_P1200_100 : case PM_HW_MODULE_LDO_512_LV_P50_160 : case PM_HW_MODULE_LDO_512_LV_P150_160 : case PM_HW_MODULE_LDO_512_LV_P300_160 : case PM_HW_MODULE_LDO_512_LV_P600_160 : case PM_HW_MODULE_LDO_512_LV_P1200_160 : case PM_HW_MODULE_LDO_512_MV_P50_500 : case PM_HW_MODULE_LDO_512_MV_P150_500 : case PM_HW_MODULE_LDO_512_MV_P300_500 : case PM_HW_MODULE_LDO_512_MV_P600_500 : case PM_HW_MODULE_LDO_515_MV_P1200_200 : *pmos_force_soft_start = TRUE; break; default: volt_info = NULL; break; } break; case PM_HW_MODULE_ULT_LDO: switch(peripheral_info->peripheral_subtype) { case PM_HW_MODULE_ULT_LDO_N300_STEPPER: case PM_HW_MODULE_ULT_LDO_N600_STEPPER: case PM_HW_MODULE_ULT_LDO_N900_STEPPER: case PM_HW_MODULE_ULT_LDO_N1200_STEPPER: *is_stepper = TRUE; break; default: volt_info = NULL; break; } break; default: volt_info = NULL; break; } return volt_info; } __attribute__((section("rinit_code_sec_pool1"))) uint8 pm_ldo_get_num_peripherals(uint8 pmic_index) { if((pmic_index < PM_MAX_NUM_PMICS) && (pm_ldo_data_arr[pmic_index] !=NULL)) { return pm_ldo_data_arr[pmic_index]->pm_pwr_data.num_of_peripherals; } return NULL; }
这段代码似乎是用于获取 LDO 稳压器的配置信息的。具体来说,这个函数可能被调用来选择 LDO 稳压器的输出电压,并配置 PMIC 寄存器以设置该电压。
函数的输入参数是一个结构体指针 `peripheral_info`,其中包含了要配置的 LDO 稳压器的类型和子类型等信息。函数首先根据这些信息选择一个 `volt_info` 结构体,该结构体包含了 LDO 稳压器的详细配置信息,例如输出电压和最大电流等。接下来,根据 LDO 稳压器的类型和子类型,函数可能会进行一些特殊处理,例如设置软启动标志或者启用步进模式等。最后,函数返回 `volt_info` 结构体指针,供其他函数使用。
需要注意的是,我只看到了这段代码的一部分,并不知道这个函数的完整实现和上下文。因此,以上分析仅供参考,具体实现可能因平台和应用而异。
private void UpdateSubTypeTag() { if (m_ItemData == null) { SetSubTypeTagState(false); return; } if (m_ItemData.ItemType == ItemType.Dan || m_ItemData.ItemType == ItemType.DanFormula) { SetSubTypeTagState(true); var subType = (ItemDanType)m_ItemData.SubType; m_FightTagTag.gameObject.SetActive(subType == ItemDanType.Fight); m_CultivationTag.gameObject.SetActive(subType == ItemDanType.Cultivation); var isShow = subType == ItemDanType.Fight || subType == ItemDanType.Cultivation; m_SubTypeTagText.text = isShow ? Constant.Dan.GetDanTypeName(subType) : ""; } else { SetSubTypeTagState(false); } }
这段代码是一个私有方法,用于更新次类型标签。它首先检查m_ItemData是否为空,如果为空,则调用SetSubTypeTagState(false)方法并返回。
如果m_ItemData的ItemType为ItemType.Dan或ItemType.DanFormula,则调用SetSubTypeTagState(true)方法,表示次类型标签可见。
接着,根据m_ItemData的SubType来设置具体的次类型标签。如果SubType是ItemDanType.Fight,则将m_FightTagTag激活显示;如果是ItemDanType.Cultivation,则将m_CultivationTag激活显示。同时,根据subType是否是ItemDanType.Fight或ItemDanType.Cultivation来确定是否显示次类型标签的文本。如果是,则将m_SubTypeTagText的文本设置为Constant.Dan.GetDanTypeName(subType),否则将文本设置为空字符串。
如果m_ItemData的ItemType不是ItemType.Dan或ItemType.DanFormula,则调用SetSubTypeTagState(false)方法,表示次类型标签不可见。
阅读全文