summaryrefslogtreecommitdiff
path: root/drivers/phy
diff options
context:
space:
mode:
authorhuang lin <hl@rock-chips.com>2015-07-17 07:29:25 (GMT)
committerKishon Vijay Abraham I <kishon@ti.com>2015-09-25 11:31:14 (GMT)
commit08db7e5cbfc0ec3fa4f6ed483dc663afeae7ce16 (patch)
treea604932d2b6a0a2f5acb2cc283b27da53765fd38 /drivers/phy
parent65d49b3d7068525117f8e1458f0496732d02fe15 (diff)
downloadlinux-08db7e5cbfc0ec3fa4f6ed483dc663afeae7ce16.tar.xz
phy: rockchip-usb: power down phy when rockchip phy probe
rockchip phy are enable when soc reset, to save power consumption, we disable it when probe, and enable each phy when it use Signed-off-by: huang lin <hl@rock-chips.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'drivers/phy')
-rw-r--r--drivers/phy/phy-rockchip-usb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/phy/phy-rockchip-usb.c b/drivers/phy/phy-rockchip-usb.c
index 5a5c073..91d6f34 100644
--- a/drivers/phy/phy-rockchip-usb.c
+++ b/drivers/phy/phy-rockchip-usb.c
@@ -98,6 +98,7 @@ static int rockchip_usb_phy_probe(struct platform_device *pdev)
struct device_node *child;
struct regmap *grf;
unsigned int reg_offset;
+ int err;
grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,grf");
if (IS_ERR(grf)) {
@@ -129,6 +130,11 @@ static int rockchip_usb_phy_probe(struct platform_device *pdev)
return PTR_ERR(rk_phy->phy);
}
phy_set_drvdata(rk_phy->phy, rk_phy);
+
+ /* only power up usb phy when it use, so disable it when init*/
+ err = rockchip_usb_phy_power(rk_phy, 1);
+ if (err)
+ return err;
}
phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);