[patch] Add USB Gadget support for mx35pdk

Daniel Mack daniel at caiaq.de
Thu Nov 26 10:25:23 EST 2009


On Thu, Nov 26, 2009 at 04:09:11PM +0100, Harro Haan wrote:
> Add USB Gadget support for mx35pdk
> 
> The patch is baselined on:
> git://git.pengutronix.de/git/imx/linux-2.6.git mxc-master
> 
> Signed-off-by: Harro Haan <hrhaan at yahoo.com>
> ---
>  arch/arm/mach-mx3/clock-imx35.c |    3 +++
>  arch/arm/mach-mx3/mx35pdk.c     |   12 ++++++++++++
>  drivers/usb/gadget/Kconfig      |    2 +-
>  3 files changed, 16 insertions(+), 1 deletion(-)


Thank you for working on this.

However, you should split your patch into functional pieces. In this
case, that means you should have one for drivers/usb/gadget/Kconfig, one
for mx35pdk.c and one for clock-imx35.c.

Firstly because that makes tracking changes easier later and also
because these patches might take different pathes to mainline
eventually.

Git makes that very easy, btw.

Thanks,
Daniel


> Index: linux-2.6.31/drivers/usb/gadget/Kconfig
> ===================================================================
> --- linux-2.6.31.orig/drivers/usb/gadget/Kconfig	2009-11-25 17:57:01.000000000 +0100
> +++ linux-2.6.31/drivers/usb/gadget/Kconfig	2009-11-25 18:13:28.000000000 +0100
> @@ -156,7 +156,7 @@ config USB_ATMEL_USBA
>  
>  config USB_GADGET_FSL_USB2
>  	boolean "Freescale Highspeed USB DR Peripheral Controller"
> -	depends on FSL_SOC || ARCH_MXC
> +	depends on FSL_SOC || ARCH_MXC || ARCH_MX35
>  	select USB_GADGET_DUALSPEED
>  	help
>  	   Some of Freescale PowerPC processors have a High Speed
> Index: linux-2.6.31/arch/arm/mach-mx3/mx35pdk.c
> ===================================================================
> --- linux-2.6.31.orig/arch/arm/mach-mx3/mx35pdk.c	2009-11-25 17:57:01.000000000 +0100
> +++ linux-2.6.31/arch/arm/mach-mx3/mx35pdk.c	2009-11-25 19:04:39.000000000 +0100
> @@ -23,6 +23,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/memory.h>
>  #include <linux/gpio.h>
> +#include <linux/fsl_devices.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -69,6 +70,15 @@ static struct pad_desc mx35pdk_pads[] = 
>  	MX35_PAD_FEC_TDATA2__FEC_TDATA_2,
>  	MX35_PAD_FEC_RDATA3__FEC_RDATA_3,
>  	MX35_PAD_FEC_TDATA3__FEC_TDATA_3,
> +	/* USBOTG */
> +	MX35_PAD_USBOTG_PWR__USB_TOP_USBOTG_PWR,
> +	MX35_PAD_USBOTG_OC__USB_TOP_USBOTG_OC,
> +};
> +
> +/* OTG config */
> +static struct fsl_usb2_platform_data usb_pdata = {
> +	.operating_mode	= FSL_USB2_DR_DEVICE,
> +	.phy_mode	= FSL_USB2_PHY_UTMI_WIDE,
>  };
>  
>  /*
> @@ -81,6 +91,8 @@ static void __init mxc_board_init(void)
>  	platform_add_devices(devices, ARRAY_SIZE(devices));
>  
>  	mxc_register_device(&mxc_uart_device0, &uart_pdata);
> +
> +	mxc_register_device(&mxc_otg_udc_device, &usb_pdata);
>  }
>  
>  static void __init mx35pdk_timer_init(void)
> Index: linux-2.6.31/arch/arm/mach-mx3/clock-imx35.c
> ===================================================================
> --- linux-2.6.31.orig/arch/arm/mach-mx3/clock-imx35.c	2009-11-25 18:20:04.000000000 +0100
> +++ linux-2.6.31/arch/arm/mach-mx3/clock-imx35.c	2009-11-25 18:29:08.000000000 +0100
> @@ -387,6 +387,8 @@ DEFINE_CLOCK(csi_clk,    0, CCM_CGR3,  0
>  DEFINE_CLOCK(iim_clk,    0, CCM_CGR3,  2, NULL, NULL);
>  DEFINE_CLOCK(gpu2d_clk,  0, CCM_CGR3,  4, NULL, NULL);
>  
> +DEFINE_CLOCK(usbahb_clk, 0, 0,         0, get_rate_ahb, NULL);
> +
>  static int clk_dummy_enable(struct clk *clk)
>  {
>  	return 0;
> @@ -471,6 +473,7 @@ static struct clk_lookup lookups[] = {
>  	_REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk)
>  	_REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk)
>  	_REGISTER_CLOCK("fsl-usb2-udc", "usb", usbotg_clk)
> +	_REGISTER_CLOCK("fsl-usb2-udc", "usb_ahb", usbahb_clk)
>  	_REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk)
>  	_REGISTER_CLOCK(NULL, "max", max_clk)
>  	_REGISTER_CLOCK(NULL, "audmux", audmux_clk)
> 
> -- 
> 
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list