|
From: <mar...@us...> - 2007-04-06 22:44:20
|
Revision: 952
http://svn.sourceforge.net/hackndev/?rev=952&view=rev
Author: marex_z71
Date: 2007-04-06 15:44:13 -0700 (Fri, 06 Apr 2007)
Log Message:
-----------
PalmLD: Fix WRITE function, add example of standard enumeration with master supplied descriptor
Modified Paths:
--------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_usb.c
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_usb.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_usb.c 2007-04-06 20:20:59 UTC (rev 951)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_usb.c 2007-04-06 22:44:13 UTC (rev 952)
@@ -41,7 +41,7 @@
int palmld_usb2_cmd_write(u8 data)
{
/* prepare data */
- u8 data1 = ((data & 0xf0)>>3); /* Upper nibble */
+ u8 data1 = ((data & 0xf0)>>4); /* Upper nibble */
u8 data2 = (data & 0x0f); /* Lower nibble */
/* initiate write to reg */
@@ -70,31 +70,195 @@
/* ENUMERATE WITH BUILTIN DESCRIPTOR */
/* select register 0x30 - descriptor RAM*/
palmld_usb2_cmd_set_reg(0x30);
- printk("SET ADDR to 0x30,GPIO86 %i\n",(GET_GPIO(86)?1:0));
/* write descriptor length */
- palmld_usb2_cmd_write(0x06);
+ palmld_usb2_cmd_write(0xa0);
palmld_usb2_cmd_write(0x00);
- printk("WRITE DESR size to 0x30,GPIO86 %i\n",(GET_GPIO(86)?1:0));
/* write descriptor as described in SX2 docs */
- palmld_usb2_cmd_write(0x04);
- palmld_usb2_cmd_write(0x0B);
+ /* Device Descriptor */
+ palmld_usb2_cmd_write(18);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(64);
+ palmld_usb2_cmd_write(0x12);
+ palmld_usb2_cmd_write(0x34);
+ palmld_usb2_cmd_write(0x56);
+ palmld_usb2_cmd_write(0x78);
+ palmld_usb2_cmd_write(0xcd);
+ palmld_usb2_cmd_write(0xab);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(01);
+ /* Device qualifier */
+ palmld_usb2_cmd_write(10);
+ palmld_usb2_cmd_write(06);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(64);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(00);
+ /* High Speed Config */
+ palmld_usb2_cmd_write(9);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(46);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(0x0A);
+ palmld_usb2_cmd_write(50);
+ /* Interface descr */
+ palmld_usb2_cmd_write(9);
+ palmld_usb2_cmd_write(04);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(04);
+ palmld_usb2_cmd_write(0xFF);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x02);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x02);
+ palmld_usb2_cmd_write(0x00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
palmld_usb2_cmd_write(0x04);
+ palmld_usb2_cmd_write(02);
palmld_usb2_cmd_write(0x00);
-
palmld_usb2_cmd_write(0x02);
palmld_usb2_cmd_write(0x00);
-
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x86);
+ palmld_usb2_cmd_write(02);
palmld_usb2_cmd_write(0x00);
- palmld_usb2_cmd_write(0x01);
-
- palmld_usb2_cmd_write(0x01);
+ palmld_usb2_cmd_write(0x02);
palmld_usb2_cmd_write(0x00);
-
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x88);
+ palmld_usb2_cmd_write(02);
palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x02);
palmld_usb2_cmd_write(0x00);
+
+ /* Full Speed Config */
+ palmld_usb2_cmd_write(9);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(46);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(01);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(0x0A);
+ palmld_usb2_cmd_write(50);
+ /* Interface descr */
+ palmld_usb2_cmd_write(9);
+ palmld_usb2_cmd_write(04);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write(04);
+ palmld_usb2_cmd_write(0xFF);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x02);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(0x40);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x04);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(0x40);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x86);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(0x40);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ /* Endpoint descr */
+ palmld_usb2_cmd_write(07);
+ palmld_usb2_cmd_write(05);
+ palmld_usb2_cmd_write(0x88);
+ palmld_usb2_cmd_write(02);
+ palmld_usb2_cmd_write(0x40);
+ palmld_usb2_cmd_write(0x00);
+ palmld_usb2_cmd_write(0x00);
+ /* String descr 0 */
+ palmld_usb2_cmd_write(04);
+ palmld_usb2_cmd_write(03);
+ palmld_usb2_cmd_write(0x09);
+ palmld_usb2_cmd_write(0x04);
+
+ /* String descr 1 */
+ palmld_usb2_cmd_write(16);
+ palmld_usb2_cmd_write(03);
+ palmld_usb2_cmd_write('C');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('y');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('p');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('r');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('e');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('s');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('s');
+ palmld_usb2_cmd_write(00);
+
+ /* String descr 1 */
+ palmld_usb2_cmd_write(20);
+ palmld_usb2_cmd_write(3);
+ palmld_usb2_cmd_write('C');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('Y');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('7');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('C');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('6');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('8');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('0');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('0');
+ palmld_usb2_cmd_write(00);
+ palmld_usb2_cmd_write('1');
+ palmld_usb2_cmd_write(00);
+
+
/* A LOT OF DEBUGING CRAP */
/* printk("GPIO106 %i\n",(GET_GPIO(106)?1:0));
printk("GPIO106 %i\n",(GET_GPIO(106)?1:0));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|