Hi, On Sun, Jun 05, 2016 at 04:59:33PM +0200, Hans de Goede wrote: > Some SoCs have a single phy-hw-block with multiple phys, this is > modelled by a single phy dts node, so we end up with multiple > controller nodes with a phys property pointing to the phy-node > of the otg-phy. > > Only one of these controllers typically is an otg controller, yet we > were checking the first controller who uses a phy from the block and > then end up looking for a dr_mode property in e.g. the ehci controller. > > This commit fixes this by adding an arg0 parameter to > of_usb_get_dr_mode_by_phy and make of_usb_get_dr_mode_by_phy > check that this matches the phandle args[0] value when looking for > the otg controller. > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > Changes in v2: > -Add a args0 parameter instead of looking for nodes with a dr_mode property > Changes in v3: > -No changes > --- > drivers/usb/common/common.c | 31 ++++++++++++++++++------------- > drivers/usb/phy/phy-am335x.c | 2 +- > include/linux/usb/of.h | 4 ++-- > 3 files changed, 21 insertions(+), 16 deletions(-) This breaks am335x. [ 17.433166] /ocp/usb@47400000/usb@47401000: could not get #phy-cells for /ocp/usb@47400000/usb-phy@47401300 [ 17.443627] /ocp/usb@47400000/usb@47401800: could not get #phy-cells for /ocp/usb@47400000/usb-phy@47401b00 [ 17.454005] am335x-phy-driver 47401300.usb-phy: dr_mode 0 [ 17.460518] 47401300.usb-phy supply vcc not found, using dummy regulator [ 17.469685] /ocp/usb@47400000/usb@47401000: could not get #phy-cells for /ocp/usb@47400000/usb-phy@47401300 [ 17.479998] /ocp/usb@47400000/usb@47401800: could not get #phy-cells for /ocp/usb@47400000/usb-phy@47401b00 [ 17.490342] am335x-phy-driver 47401b00.usb-phy: dr_mode 0 Regards, -Bin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html