Daniel

> Subject: [PATCH v2 09/11] usb: musb: re-introduce musb->port_mode
> 
> Define MUSB_PORT_MODE_{HOST,GADGET,DUAL_ROLE} and store the
> platform-specified value in struct musb.
> 
> Note that MUSB_PORT_MODE_HOST has to be set to 1 in order to match
> existing device tree bindings which are already documented but in fact
> unusued.
> 
> Signed-off-by: Daniel Mack <zon...@gmail.com>
> ---
>  drivers/usb/musb/musb_core.c | 1 +
>  drivers/usb/musb/musb_core.h | 7 +++++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
> index fbcf5cb..2640d25 100644
> --- a/drivers/usb/musb/musb_core.c
> +++ b/drivers/usb/musb/musb_core.c
> @@ -1821,6 +1821,7 @@ musb_init_controller(struct device *dev, int nIrq,
> void __iomem *ctrl)
>       musb->board_set_power = plat->set_power;
>       musb->min_power = plat->min_power;
>       musb->ops = plat->platform_ops;
> +     musb->port_mode = plat->mode;

I assume plat->mode is fetched from DT. You may need to over-ride mode field 
from DT for host-only or gadget-only configuration through menuconfig.

Some thing like or better than this
+#ifdef CONFIG_MUSB_DUAL_ROLE
+       Musb->port_mode = plat->mode;
+#else
        Force it to host or gadget only configuration
#endif

> 
>       /* The musb_platform_init() call:
>        *   - adjusts musb->mregs
> diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
> index 6b65847..174c097 100644
> --- a/drivers/usb/musb/musb_core.h
> +++ b/drivers/usb/musb/musb_core.h
> @@ -77,6 +77,12 @@ struct musb_ep;
>  #define is_peripheral_active(m)              (!(m)->is_host)
>  #define is_host_active(m)            ((m)->is_host)
> 
> +enum {
> +     MUSB_PORT_MODE_HOST     = 1,
> +     MUSB_PORT_MODE_GADGET,
> +     MUSB_PORT_MODE_DUAL_ROLE,
> +};
> +
>  #ifdef CONFIG_PROC_FS
>  #include <linux/fs.h>
>  #define MUSB_CONFIG_PROC_FS
> @@ -356,6 +362,7 @@ struct musb {
> 
>       u8                      min_power;      /* vbus for periph, in mA/2 */
> 
> +     int                     port_mode;      /* MUSB_PORT_MODE_* */
>       bool                    is_host;
> 
>       int                     a_wait_bcon;    /* VBUS timeout in msecs */
> --
> 1.8.1.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to