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 <redacted>
---
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 linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html