Message ID | 20090219160223.GA2095@oksana.dev.rtsoft.ru (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | c026c98739c7e435440e76cbcd96e0f8ebeeada0 |
Delegated to: | Kumar Gala |
Headers | show |
On Feb 19, 2009, at 10:02 AM, Anton Vorontsov wrote: > On MPC837X CPUs Dual-Role USB isn't always available (for example DR > USB pins can be muxed away to eSDHC). > > U-Boot adds status = "disabled" property into the DR USB nodes to > indicate that we must not try to configure or probe Dual-Role USB, > otherwise we'll break eSDHC support on targets with MPC837X CPUs. > > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> > --- > arch/powerpc/platforms/83xx/usb.c | 3 ++- > arch/powerpc/sysdev/fsl_soc.c | 4 ++++ > 2 files changed, 6 insertions(+), 1 deletions(-) Mind looking at possibly killing the fsl_soc.c usb code and making the usb a real of-platform driver? - k
On Feb 19, 2009, at 10:02 AM, Anton Vorontsov wrote: > On MPC837X CPUs Dual-Role USB isn't always available (for example DR > USB pins can be muxed away to eSDHC). > > U-Boot adds status = "disabled" property into the DR USB nodes to > indicate that we must not try to configure or probe Dual-Role USB, > otherwise we'll break eSDHC support on targets with MPC837X CPUs. > > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> > --- > arch/powerpc/platforms/83xx/usb.c | 3 ++- > arch/powerpc/sysdev/fsl_soc.c | 4 ++++ > 2 files changed, 6 insertions(+), 1 deletions(-) applied to next - k
On Thu, Feb 19, 2009 at 10:19:05AM -0600, Kumar Gala wrote: > > On Feb 19, 2009, at 10:02 AM, Anton Vorontsov wrote: > >> On MPC837X CPUs Dual-Role USB isn't always available (for example DR >> USB pins can be muxed away to eSDHC). >> >> U-Boot adds status = "disabled" property into the DR USB nodes to >> indicate that we must not try to configure or probe Dual-Role USB, >> otherwise we'll break eSDHC support on targets with MPC837X CPUs. >> >> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> >> --- >> arch/powerpc/platforms/83xx/usb.c | 3 ++- >> arch/powerpc/sysdev/fsl_soc.c | 4 ++++ >> 2 files changed, 6 insertions(+), 1 deletions(-) > > Mind looking at possibly killing the fsl_soc.c usb code and making the > usb a real of-platform driver? Sure, but it's a bit complicated because of OTG support (which doesn't currently work, btw). Just need to think about whether we want to leave UDC and HOST drivers as pure platform drivers, and implement an of platform driver as a proxy for Host/UDC/OTG... Thanks,
diff --git a/arch/powerpc/platforms/83xx/usb.c b/arch/powerpc/platforms/83xx/usb.c index cc99c28..11e1fac 100644 --- a/arch/powerpc/platforms/83xx/usb.c +++ b/arch/powerpc/platforms/83xx/usb.c @@ -14,6 +14,7 @@ #include <linux/stddef.h> #include <linux/kernel.h> #include <linux/errno.h> +#include <linux/of.h> #include <asm/io.h> #include <asm/prom.h> @@ -210,7 +211,7 @@ int mpc837x_usb_cfg(void) int ret = 0; np = of_find_compatible_node(NULL, NULL, "fsl-usb2-dr"); - if (!np) + if (!np || !of_device_is_available(np)) return -ENODEV; prop = of_get_property(np, "phy_type", NULL); diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 18e49ef..afe8dbc 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c @@ -22,6 +22,7 @@ #include <linux/module.h> #include <linux/device.h> #include <linux/platform_device.h> +#include <linux/of.h> #include <linux/of_platform.h> #include <linux/phy.h> #include <linux/phy_fixed.h> @@ -328,6 +329,9 @@ static int __init fsl_usb_of_init(void) struct fsl_usb2_platform_data usb_data; const unsigned char *prop = NULL; + if (!of_device_is_available(np)) + continue; + memset(&r, 0, sizeof(r)); memset(&usb_data, 0, sizeof(usb_data));
On MPC837X CPUs Dual-Role USB isn't always available (for example DR USB pins can be muxed away to eSDHC). U-Boot adds status = "disabled" property into the DR USB nodes to indicate that we must not try to configure or probe Dual-Role USB, otherwise we'll break eSDHC support on targets with MPC837X CPUs. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> --- arch/powerpc/platforms/83xx/usb.c | 3 ++- arch/powerpc/sysdev/fsl_soc.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletions(-)