Hi Marek On 05/12/2017 10:50 PM, Marek Vasut wrote: > On 05/12/2017 07:27 PM, patrice.chot...@st.com wrote: >> From: Patrice Chotard <patrice.chot...@st.com> >> >> Add support of generic PHY framework >> >> Signed-off-by: Patrice Chotard <patrice.chot...@st.com> >> --- >> >> v2: _ split previous path 1, add generic PHY framework >> >> drivers/usb/host/ehci-generic.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/drivers/usb/host/ehci-generic.c >> b/drivers/usb/host/ehci-generic.c >> index 0c29f63..0000808 100644 >> --- a/drivers/usb/host/ehci-generic.c >> +++ b/drivers/usb/host/ehci-generic.c >> @@ -6,6 +6,8 @@ >> >> #include <common.h> >> #include <clk.h> >> +#include <fdtdec.h> >> +#include <generic-phy.h> >> #include <reset.h> >> #include <asm/io.h> >> #include <dm.h> >> @@ -23,6 +25,7 @@ struct generic_ehci { >> struct ehci_ctrl ctrl; >> struct clk clks[EHCI_MAX_CLOCKS]; >> struct reset_ctl resets[EHCI_MAX_RESETS]; >> + struct phy phy; >> }; >> >> static void ehci_assert_resets(struct udevice *dev) { >> @@ -92,6 +95,10 @@ static int ehci_usb_probe(struct udevice *dev) >> reset_free(&reset); >> } >> >> + if (!generic_phy_get_by_index(dev, 0, &priv->phy)) >> + if (generic_phy_init(&priv->phy)) >> + error("failed to init usb phy %d\n", i); >> + >> hccr = map_physmem(dev_get_addr(dev), 0x100, MAP_NOCACHE); >> hcor = (struct ehci_hcor *)((uintptr_t)hccr + >> HC_LENGTH(ehci_readl(&hccr->cr_capbase))); >> @@ -100,6 +107,8 @@ static int ehci_usb_probe(struct udevice *dev) >> if (!ret) >> return ret; >> >> + generic_phy_exit(&priv->phy); > > So you probe the EHCI controller driver and then you disable it's PHY ? > That's a bit odd, isn't it ?
The PHY is disabled in case of ehci_register() didn't succeed. Patrice > >> reset_err: >> ehci_assert_resets(dev); >> clk_err: >> @@ -109,7 +118,9 @@ clk_err: >> } >> >> static int ehci_usb_remove(struct udevice *dev) { >> + struct generic_ehci *priv = dev_get_priv(dev); >> >> + generic_phy_exit(&priv->phy); >> ehci_assert_resets(dev); >> ehci_disable_clocks(dev); >> >> > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot