Rockchip RK3399平台EMMC驱动能力修改方法
RK3399 EMMC的驱动能力可以通过如下代码修改:
@sys2_206:~/1_Android11_sdk_29/kernel$ vim drivers/phy/rockchip/phy-rockchip-emmc.c
static int rockchip_emmc_phy_power_on(struct phy *phy)
{
struct rockchip_emmc_phy *rk_phy = phy_get_drvdata(phy);
/* Drive impedance: 50 Ohm */
regmap_write(rk_phy->reg_base,
rk_phy->reg_offset + GRF_EMMCPHY_CON6,
HIWORD_UPDATE(PHYCTRL_DR_50OHM,
PHYCTRL_DR_MASK,
PHYCTRL_DR_SHIFT));
/* Output tap delay: enable */
regmap_write(rk_phy->reg_base,
rk_phy->reg_offset + GRF_EMMCPHY_CON0,
HIWORD_UPDATE(PHYCTRL_OTAPDLYENA,
PHYCTRL_OTAPDLYENA_MASK,
PHYCTRL_OTAPDLYENA_SHIFT));
/* Output tap delay */
regmap_write(rk_phy->reg_base,
rk_phy->reg_offset + GRF_EMMCPHY_CON0,
HIWORD_UPDATE(4,
PHYCTRL_OTAPDLYSEL_MASK,
PHYCTRL_OTAPDLYSEL_SHIFT));
/* Power up emmc phy analog blocks */
return rockchip_emmc_phy_power(phy, PHYCTRL_PDB_PWR_ON);
}
上面代码中的PHYCTRL_DR_50OHM
可以根据实际需求改为下面的其他阻抗值:
68 #define PHYCTRL_DR_50OHM 0x0
69 #define PHYCTRL_DR_33OHM 0x1
70 #define PHYCTRL_DR_66OHM 0x2
71 #define PHYCTRL_DR_100OHM 0x3
72 #define PHYCTRL_DR_40OHM 0x4
驱动阻抗越小驱动能力越大