RE: [PATCH v2 09/11] usb: musb: re-introduce musb->port_mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <zonque@xxxxxxxxx>
> ---
>  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 majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux