Skip to content

Commit d6db3b3

Browse files
Tommaso Merciaivinodkoul
authored andcommitted
phy: renesas: rcar-gen3-usb2: Factor out VBUS control logic
Refactor the VBUS control logic into a new helper function to improve code clarity and reduce duplication. This makes it easier to handle different VBUS control register cases and aids future maintenance. Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Link: https://patch.msgid.link/2d94c9876b965bdf7cd74cdbbc0c54689e122798.1766405010.git.tommaso.merciai.xr@bp.renesas.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 642c462 commit d6db3b3

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

drivers/phy/renesas/phy-rcar-gen3-usb2.c

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -204,28 +204,38 @@ static void rcar_gen3_set_linectrl(struct rcar_gen3_chan *ch, int dp, int dm)
204204
writel(val, usb2_base + USB2_LINECTRL1);
205205
}
206206

207-
static void rcar_gen3_enable_vbus_ctrl(struct rcar_gen3_chan *ch, int vbus)
207+
static void rcar_gen3_phy_usb2_set_vbus(struct rcar_gen3_chan *ch,
208+
u32 vbus_ctrl_reg,
209+
u32 vbus_ctrl_val,
210+
bool enable)
208211
{
209212
void __iomem *usb2_base = ch->base;
210-
u32 vbus_ctrl_reg = USB2_ADPCTRL;
211-
u32 vbus_ctrl_val = USB2_ADPCTRL_DRVVBUS;
212213
u32 val;
213214

215+
val = readl(usb2_base + vbus_ctrl_reg);
216+
if (enable)
217+
val |= vbus_ctrl_val;
218+
else
219+
val &= ~vbus_ctrl_val;
220+
writel(val, usb2_base + vbus_ctrl_reg);
221+
222+
dev_vdbg(ch->dev, "%s: reg=0x%08x, val=%08x, enable=%d\n",
223+
__func__, vbus_ctrl_reg, val, enable);
224+
}
225+
226+
static void rcar_gen3_enable_vbus_ctrl(struct rcar_gen3_chan *ch, int vbus)
227+
{
214228
if (ch->phy_data->no_adp_ctrl || ch->phy_data->vblvl_ctrl) {
215229
if (ch->vbus)
216230
regulator_hardware_enable(ch->vbus, vbus);
217231

218-
vbus_ctrl_reg = USB2_VBCTRL;
219-
vbus_ctrl_val = USB2_VBCTRL_VBOUT;
232+
rcar_gen3_phy_usb2_set_vbus(ch, USB2_VBCTRL,
233+
USB2_VBCTRL_VBOUT, vbus);
234+
return;
220235
}
221236

222-
val = readl(usb2_base + vbus_ctrl_reg);
223-
if (vbus)
224-
val |= vbus_ctrl_val;
225-
else
226-
val &= ~vbus_ctrl_val;
227-
dev_vdbg(ch->dev, "%s: %08x, %d\n", __func__, val, vbus);
228-
writel(val, usb2_base + vbus_ctrl_reg);
237+
rcar_gen3_phy_usb2_set_vbus(ch, USB2_ADPCTRL,
238+
USB2_ADPCTRL_DRVVBUS, vbus);
229239
}
230240

231241
static void rcar_gen3_control_otg_irq(struct rcar_gen3_chan *ch, int enable)

0 commit comments

Comments
 (0)