Re: [PATCH] board-n8x0: add USB initialization

2010-03-01 Thread Kalle Valo
Francisco Alecrim  writes:

> Hi Kalle,

Hi again Francisco,

> On Sun, Feb 28, 2010 at 2:57 PM, Kalle Valo  wrote:
> Please do not add my Signed-off-by unless I have explicitly added it.
> And I don't recall giving it to this patch, so it can be removed.
>
>
> I got the initial code from http://www.valot.fi/kalle/n8x0/patches/n8x0-add/
> 2009-07-31-12:15/07-n8x0-add-usb-support.patch .  I just re-organized some
> variables. So I didn't remove your Signed-off-by.

Hehe, I had totally forgotten that patch! Sorry :)

> And I merged your patch to Tony's code http://www.mail-archive.com/
> linux-omap@vger.kernel.org/msg21443.html . So I kept his Signed-off-by.

[...]

> Sorry! I was not sure about keep or not these Signed-off-by. Do you
> want me to re-send it without your Signed-off-by?  

No, this was my mistake. Please don't remove the Signed-off-by line.

But when you improve a patch originally implemented by somene else
it's a good practise to mention the history of the patch. For example,
"Based on Kalle's and Tony's patches", or something like that, is
enough IMHO.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] board-n8x0: add USB initialization

2010-02-28 Thread Felipe Balbi
Hi,

On Sat, Feb 27, 2010 at 09:50:31PM -0400, Francisco Alecrim wrote:
> +static struct musb_hdrc_eps_bits musb_eps[] = {

this structure is being removed from current code, it's
not used anywhere. You can drop it.

> + {   "ep1_tx", 5,},
> + {   "ep1_rx", 5,},
> + {   "ep2_tx", 5,},
> + {   "ep2_rx", 5,},
> + {   "ep3_tx", 3,},
> + {   "ep3_rx", 3,},
> + {   "ep4_tx", 3,},
> + {   "ep4_rx", 3,},
> + {   "ep5_tx", 2,},
> + {   "ep5_rx", 2,},
> + {   "ep6_tx", 2,},
> + {   "ep6_rx", 2,},
> + {   "ep7_tx", 2,},
> + {   "ep7_rx", 2,},
> + {   "ep8_tx", 2,},
> + {   "ep8_rx", 2,},
> + {   "ep9_tx", 2,},
> + {   "ep9_rx", 2,},
> + {   "ep10_tx", 2,   },
> + {   "ep10_rx", 2,   },
> + {   "ep11_tx", 2,   },
> + {   "ep11_rx", 2,   },
> + {   "ep12_tx", 2,   },
> + {   "ep12_rx", 2,   },
> + {   "ep13_tx", 2,   },
> + {   "ep13_rx", 2,   },
> + {   "ep14_tx", 2,   },
> + {   "ep14_rx", 2,   },
> + {   "ep15_tx", 2,   },
> + {   "ep15_rx", 2,   },
> +};
> +
> +static struct musb_hdrc_config musb_config = {
> + .multipoint = 1,
> + .dyn_fifo   = 1,
> + .soft_con   = 1,
> + .dma= 1,
> + .num_eps= 16,
> + .dma_channels   = 7,
> + .ram_bits   = 12,
> + .eps_bits   = musb_eps,

also few fields from here were droped but I can't recall without looking
at my code. Will only be able to do so tomorrow though.

> @@ -1841,6 +1841,7 @@ static struct omap_clk omap2420_clks[] = {
>   CLK(NULL,   "aes_ick",  &aes_ick,   CK_242X),
>   CLK(NULL,   "pka_ick",  &pka_ick,   CK_242X),
>   CLK(NULL,   "usb_fck",  &usb_fck,   CK_242X),
> + CLK("musb_hdrc","fck",  &osc_ck,CK_242X),

it's called ick on other archs, let's keep consistency so we can stop
passing clock names soon.

Unless Tony are Paul have a reason not to do so.

-- 
balbi

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] board-n8x0: add USB initialization

2010-02-28 Thread Francisco Alecrim
On Sun, Feb 28, 2010 at 2:57 PM, Kalle Valo  wrote:
>
> Hi Francisco,
>
> Francisco Alecrim  writes:
>
> > From: Francisco Alecrim 
> >
> > Signed-off-by: Kalle Valo 
> > Signed-off-by: Francisco Alecrim 
> > Signed-off-by: Tony Lindgren 
>
> Please do not add my Signed-off-by unless I have explicitly added it.
> And I don't recall giving it to this patch, so it can be removed.

I got the initial code from
http://www.valot.fi/kalle/n8x0/patches/n8x0-add/2009-07-31-12:15/07-n8x0-add-usb-support.patch
.  I just re-organized some variables. So I didn't remove your
Signed-off-by.

And I merged your patch to Tony's code
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg21443.html .
So I kept his Signed-off-by.

>
> Removing the line doesn't change anything from technical point of
> view, this is just a little bit of legalise we have to deal with.

Sorry! I was not sure about keep or not these Signed-off-by. Do you
want me to re-send it without your Signed-off-by?

Regards,
Alecrim.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] board-n8x0: add USB initialization

2010-02-28 Thread Kalle Valo
Hi Francisco,

Francisco Alecrim  writes:

> From: Francisco Alecrim 
>
> Signed-off-by: Kalle Valo 
> Signed-off-by: Francisco Alecrim 
> Signed-off-by: Tony Lindgren 

Please do not add my Signed-off-by unless I have explicitly added it.
And I don't recall giving it to this patch, so it can be removed.

Removing the line doesn't change anything from technical point of
view, this is just a little bit of legalise we have to deal with.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] board-n8x0: add USB initialization

2010-02-27 Thread Francisco Alecrim
From: Francisco Alecrim 

Signed-off-by: Kalle Valo 
Signed-off-by: Francisco Alecrim 
Signed-off-by: Tony Lindgren 
---
 arch/arm/mach-omap2/board-n8x0.c |  126 ++
 arch/arm/mach-omap2/clock2420_data.c |1 +
 include/linux/usb/musb.h |4 +
 3 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index ee548dd..e1c0c71 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -32,6 +32,131 @@
 #include 
 #include 
 
+
+#if defined(CONFIG_USB_MUSB_OTG)
+#define BOARD_MODE MUSB_OTG
+#elif defined(CONFIG_USB_MUSB_PERIPHERAL)
+#define BOARD_MODE MUSB_PERIPHERAL
+#else /* defined(CONFIG_USB_MUSB_HOST) */
+#define BOARD_MODE MUSB_HOST
+#endif
+
+/*
+ * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
+ * 1.5 V voltage regulators of PM companion chip. Companion chip will then
+ * provide then PGOOD signal to TUSB6010 which will release it from reset.
+ */
+static int tusb_set_power(int state)
+{
+   int i, retval = 0;
+
+   if (state) {
+   gpio_set_value(TUSB6010_GPIO_ENABLE, 1);
+   msleep(1);
+
+   /* Wait until TUSB6010 pulls INT pin down */
+   i = 100;
+   while (i && gpio_get_value(TUSB6010_GPIO_INT)) {
+   msleep(1);
+   i--;
+   }
+
+   if (!i) {
+   printk(KERN_ERR "tusb: powerup failed\n");
+   retval = -ENODEV;
+   }
+   } else {
+   gpio_set_value(TUSB6010_GPIO_ENABLE, 0);
+   msleep(10);
+   }
+
+   return retval;
+}
+
+
+static struct musb_hdrc_eps_bits musb_eps[] = {
+   {   "ep1_tx", 5,},
+   {   "ep1_rx", 5,},
+   {   "ep2_tx", 5,},
+   {   "ep2_rx", 5,},
+   {   "ep3_tx", 3,},
+   {   "ep3_rx", 3,},
+   {   "ep4_tx", 3,},
+   {   "ep4_rx", 3,},
+   {   "ep5_tx", 2,},
+   {   "ep5_rx", 2,},
+   {   "ep6_tx", 2,},
+   {   "ep6_rx", 2,},
+   {   "ep7_tx", 2,},
+   {   "ep7_rx", 2,},
+   {   "ep8_tx", 2,},
+   {   "ep8_rx", 2,},
+   {   "ep9_tx", 2,},
+   {   "ep9_rx", 2,},
+   {   "ep10_tx", 2,   },
+   {   "ep10_rx", 2,   },
+   {   "ep11_tx", 2,   },
+   {   "ep11_rx", 2,   },
+   {   "ep12_tx", 2,   },
+   {   "ep12_rx", 2,   },
+   {   "ep13_tx", 2,   },
+   {   "ep13_rx", 2,   },
+   {   "ep14_tx", 2,   },
+   {   "ep14_rx", 2,   },
+   {   "ep15_tx", 2,   },
+   {   "ep15_rx", 2,   },
+};
+
+static struct musb_hdrc_config musb_config = {
+   .multipoint = 1,
+   .dyn_fifo   = 1,
+   .soft_con   = 1,
+   .dma= 1,
+   .num_eps= 16,
+   .dma_channels   = 7,
+   .ram_bits   = 12,
+   .eps_bits   = musb_eps,
+};
+
+static struct musb_hdrc_platform_data tusb_data = {
+   .mode   = BOARD_MODE,
+   .set_power  = tusb_set_power,
+   .min_power  = 25,   /* x2 = 50 mA drawn from VBUS as peripheral */
+   .power  = 100,  /* Max 100 mA VBUS for host mode */
+   .config = &musb_config,
+};
+
+static void __init n8x0_usb_init(void)
+{
+   int ret = 0;
+   static char announce[] __initdata = KERN_INFO "TUSB 6010\n";
+
+   /* PM companion chip power control pin */
+   ret = gpio_request(TUSB6010_GPIO_ENABLE, "TUSB6010 enable");
+   if (ret != 0) {
+   printk(KERN_ERR "Could not get TUSB power GPIO%i\n",
+  TUSB6010_GPIO_ENABLE);
+   return;
+   }
+   gpio_direction_output(TUSB6010_GPIO_ENABLE, 0);
+
+   tusb_set_power(0);
+
+   ret = tusb6010_setup_interface(&tusb_data, TUSB6010_REFCLK_19, 2,
+   TUSB6010_ASYNC_CS, TUSB6010_SYNC_CS,
+   TUSB6010_GPIO_INT, 0x3f);
+   if (ret != 0)
+   goto err;
+
+   printk(announce);
+
+   return;
+
+err:
+   gpio_free(TUSB6010_GPIO_ENABLE);
+}
+
+
 static struct omap2_mcspi_device_config p54spi_mcspi_config = {
.turbo_mode = 0,
.single_channel = 1,
@@ -148,6 +273,7 @@ static void __init n8x0_init_machine(void)
 
omap_serial_init();
n8x0_onenand_init();
+   n8x0_usb_init();
 }
 
 MACHINE_START(NOKIA_N800, "Nokia N800")
diff --git a/arch/arm/mach-omap2/clock2420_data.c 
b/arch/arm/mach-omap2/clock2420_data.c
index f12af95..d932b14 100644
--- a/arch/arm/mach-omap2/clock2420_data.c
+++ b/arch/arm/mach-omap2/clock2420_data.c
@@ -1841,6 +1841,7 @@ static struct omap_clk omap2420_clks[] = {
CLK(NULL,   "aes_ick",  &aes_ick,