linux下充电IC OTG设备供电控制
备注:下面提到的充电IC 用charger表示
1. OTG VBUS 5V供电
接入OTG设备,比如U盘,具体是怎么通过charger驱动来给U盘供电5V的
2. 设备树
charger:xxx@6B{
regulator-name = " xxx_otg_vreg";
…
};
&usb_otg {
…
vbus_otg-supply = ;
};
3. 调用流程
3.1 usb otg驱动
对应phy-msm-usb.c文件,usb otg驱动加载的时候,调用msm_otg_set_host(),此函数通过:
vbus_otg =devm_regulator_get(motg->phy.dev, "vbus_otg");
通过supply name,这里是vbus_otg-supply,找到regulator设备节点,这里是xxx_otg_supply,调用之后让vbus_otg指向给otg vbus供电的regulator,
devm_regulator_get的调用流程:
devm_regulator_get(motg->phy.dev,"vbus_otg")--->regulator_get()
--->_regulator_get()--->regulator_dev_lookup()--->of_get_regulator()</