usb: ehci: Refactor the ehci_mxs_toggle_clock function to be reused with DM
This function is going to be reused with the CONFIG_DM_USB enabled in the imx28 mxs USB ehci driver. No functional changes introduced. Signed-off-by: Lukasz Majewski <lukma@denx.de>
This commit is contained in:
parent
f82feb7f27
commit
fc313d345a
1 changed files with 21 additions and 21 deletions
|
@ -29,6 +29,27 @@ struct ehci_mxs_port {
|
||||||
uint32_t gate_bits;
|
uint32_t gate_bits;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int ehci_mxs_toggle_clock(const struct ehci_mxs_port *port, int enable)
|
||||||
|
{
|
||||||
|
struct mxs_register_32 *digctl_ctrl =
|
||||||
|
(struct mxs_register_32 *)HW_DIGCTL_CTRL;
|
||||||
|
int pll_offset, dig_offset;
|
||||||
|
|
||||||
|
if (enable) {
|
||||||
|
pll_offset = offsetof(struct mxs_register_32, reg_set);
|
||||||
|
dig_offset = offsetof(struct mxs_register_32, reg_clr);
|
||||||
|
writel(port->gate_bits, (u32)&digctl_ctrl->reg + dig_offset);
|
||||||
|
writel(port->pll_en_bits, (u32)port->pll + pll_offset);
|
||||||
|
} else {
|
||||||
|
pll_offset = offsetof(struct mxs_register_32, reg_clr);
|
||||||
|
dig_offset = offsetof(struct mxs_register_32, reg_set);
|
||||||
|
writel(port->pll_dis_bits, (u32)port->pll + pll_offset);
|
||||||
|
writel(port->gate_bits, (u32)&digctl_ctrl->reg + dig_offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct ehci_mxs_port mxs_port[] = {
|
static const struct ehci_mxs_port mxs_port[] = {
|
||||||
#ifdef CONFIG_EHCI_MXS_PORT0
|
#ifdef CONFIG_EHCI_MXS_PORT0
|
||||||
{
|
{
|
||||||
|
@ -56,27 +77,6 @@ static const struct ehci_mxs_port mxs_port[] = {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static int ehci_mxs_toggle_clock(const struct ehci_mxs_port *port, int enable)
|
|
||||||
{
|
|
||||||
struct mxs_register_32 *digctl_ctrl =
|
|
||||||
(struct mxs_register_32 *)HW_DIGCTL_CTRL;
|
|
||||||
int pll_offset, dig_offset;
|
|
||||||
|
|
||||||
if (enable) {
|
|
||||||
pll_offset = offsetof(struct mxs_register_32, reg_set);
|
|
||||||
dig_offset = offsetof(struct mxs_register_32, reg_clr);
|
|
||||||
writel(port->gate_bits, (u32)&digctl_ctrl->reg + dig_offset);
|
|
||||||
writel(port->pll_en_bits, (u32)port->pll + pll_offset);
|
|
||||||
} else {
|
|
||||||
pll_offset = offsetof(struct mxs_register_32, reg_clr);
|
|
||||||
dig_offset = offsetof(struct mxs_register_32, reg_set);
|
|
||||||
writel(port->pll_dis_bits, (u32)port->pll + pll_offset);
|
|
||||||
writel(port->gate_bits, (u32)&digctl_ctrl->reg + dig_offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __weak board_ehci_hcd_init(int port)
|
int __weak board_ehci_hcd_init(int port)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue