From 3b04a7c0b8e5c70fab4d01ebdcc5e32eaad67822 Mon Sep 17 00:00:00 2001 From: Guochun Huang Date: Wed, 4 Aug 2021 16:33:45 +0800 Subject: [PATCH] phy/rockchip: inno-dsidphy: add phy_ops init/exit helper Change-Id: Id7db9cd6a8948837be3be771af6698e9fbe06f8c Signed-off-by: Guochun Huang --- .../phy/rockchip/phy-rockchip-inno-dsidphy.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c index 7fd0f2d3ecc2..92462fee95f5 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c @@ -778,11 +778,35 @@ static int inno_dsidphy_configure(struct phy *phy, return 0; } +static int inno_dsidphy_init(struct phy *phy) +{ + struct inno_dsidphy *inno = phy_get_drvdata(phy); + + clk_prepare_enable(inno->pclk_phy); + clk_prepare_enable(inno->ref_clk); + pm_runtime_get_sync(inno->dev); + + return 0; +} + +static int inno_dsidphy_exit(struct phy *phy) +{ + struct inno_dsidphy *inno = phy_get_drvdata(phy); + + pm_runtime_put(inno->dev); + clk_disable_unprepare(inno->ref_clk); + clk_disable_unprepare(inno->pclk_phy); + + return 0; +} + static const struct phy_ops inno_dsidphy_ops = { .configure = inno_dsidphy_configure, .set_mode = inno_dsidphy_set_mode, .power_on = inno_dsidphy_power_on, .power_off = inno_dsidphy_power_off, + .init = inno_dsidphy_init, + .exit = inno_dsidphy_exit, .owner = THIS_MODULE, };