From: <mar...@us...> - 2007-05-22 11:23:22
|
Revision: 988 http://svn.sourceforge.net/hackndev/?rev=988&view=rev Author: marex_z71 Date: 2007-05-22 04:23:20 -0700 (Tue, 22 May 2007) Log Message: ----------- PalmLD: Some tweaks to USB2 code ... demo version!! Modified Paths: -------------- linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.c linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.h Modified: linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.c =================================================================== --- linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.c 2007-05-20 19:00:00 UTC (rev 987) +++ linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.c 2007-05-22 11:23:20 UTC (rev 988) @@ -53,7 +53,6 @@ #include <linux/usb_gadget.h> #include <asm/arch/sx2.h> -#include <asm/arch/palmld-gpio.h> #include "sx2_udc.h" @@ -266,13 +265,13 @@ | (reg & SX2_ADDR_MASK); printk("READING 0x%02x\n",reg); - SX2_ADDR_CMD=data; -// while((gpio_get_value(sx2_udc.mach->ready_pin)?1:0)==0) { - while((GET_PALMLD_GPIO(USB_READY)?1:0)==0) { - printk("WAITING FOR IRQ\n"); + writeb(data,SX2_ADDR_CMD); +/* while((gpio_get_value(sx2_mach.ready_pin)?1:0)==0) { + msleep(1); }; +*/ printk("REG 0x%02x F2 0x%02x F4 0x%02x\n",reg,SX2_ADDR_FIFO2,SX2_ADDR_FIFO4); - printk("REG 0x%02x F2 0x%02x F4 0x%02x\n",reg,SX2_ADDR_FIFO6,SX2_ADDR_FIFO8); + printk("REG 0x%02x F6 0x%02x F8 0x%02x\n",reg,SX2_ADDR_FIFO6,SX2_ADDR_FIFO8); printk("REG 0x%02x CD 0x%02x\n",reg,SX2_ADDR_CMD); return 0; } @@ -281,11 +280,9 @@ { /* initiate write to addr */ printk("SETTING 0x%02x\n",(reg | SX2_CMD_ADDR)); - SX2_ADDR_CMD=(reg | SX2_CMD_ADDR); + writeb((reg | SX2_CMD_ADDR),(SX2_ADDR_CMD)); /* wait for READY line */ -// while((gpio_get_value(sx2_udc.mach->ready_pin)?1:0)==0) { - while((GET_PALMLD_GPIO(USB_READY)?1:0)==0) { - printk("WAITING FOR IRQ\n"); + while((gpio_get_value(sx2_mach.ready_pin)?1:0)==0) { }; return 0; @@ -299,28 +296,63 @@ /* initiate write to reg */ printk("UPPER NIBBLE %02x\n",(data1 | SX2_CMD_WRITE)); - SX2_ADDR_CMD=(data1 | SX2_CMD_WRITE); + writeb((data1 | SX2_CMD_WRITE),(SX2_ADDR_CMD)); /* wait for READY line */ -// while((gpio_get_value(sx2_udc.mach->ready_pin)?1:0)==0) { - while((GET_PALMLD_GPIO(USB_READY)?1:0)==0) { - printk("WAITING FOR IRQ\n"); + while((gpio_get_value(sx2_mach.ready_pin)?1:0)==0) { }; printk("LOWER NIBBLE %02x\n",(data2 | SX2_CMD_WRITE)); - SX2_ADDR_CMD=(data2 | SX2_CMD_WRITE); + writeb((data2 | SX2_CMD_WRITE),(SX2_ADDR_CMD)); /* wait for READY line */ -// while((gpio_get_value(sx2_udc.mach->ready_pin)?1:0)==0) { - while((GET_PALMLD_GPIO(USB_READY)?1:0)==0) { - printk("WAITING FOR IRQ\n"); + while((gpio_get_value(sx2_mach.ready_pin)?1:0)==0) { }; return 0; } +void sx2_hwtest(void) +{ + sx2_cmd_set_reg(0x2E); + sx2_cmd_write(0xff); + for (;;) { + writeb(0x05,SX2_ADDR_CMD); + printk("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", + (gpio_get_value(0)?"X":"-"), // 1 1 1 + (gpio_get_value(9)?"X":"-"), // 0 0 0 + (gpio_get_value(11)?"X":"-"), // 0 0 0 + (gpio_get_value(18)?"X":"-"), // 1 1 1 + (gpio_get_value(20)?"X":"-"), // 0 1 1 + (gpio_get_value(23)?"X":"-"), // 1 1 1 + (gpio_get_value(24)?"X":"-"), // 1 1 1 + (gpio_get_value(34)?"X":"-"), // 1 1 1 + (gpio_get_value(37)?"X":"-"), // 1 1 1 + (gpio_get_value(39)?"X":"-"), // 1 1 1 + (gpio_get_value(53)?"X":"-"), // 1 0 0 + (gpio_get_value(82)?"X":"-"), // 1 1 1 + (gpio_get_value(86)?"X":"-"), // 1 1 X + (gpio_get_value(87)?"X":"-"), // 0 0 0 + (gpio_get_value(88)?"X":"-"), // 1 1 1 + (gpio_get_value(90)?"X":"-"), // 0 0 0 + (gpio_get_value(93)?"X":"-"), // 1 1 1 + (gpio_get_value(99)?"X":"-"), // 0 0 0 + (gpio_get_value(106)?"X":"-"), // 0 0 0 + (gpio_get_value(107)?"X":"-"), // 0 0 0 + (gpio_get_value(113)?"X":"-"), // 1 1 1 + (gpio_get_value(114)?"X":"-"), // 0 0 0 + (gpio_get_value(116)?"X":"-"), // 1 1 1 + (gpio_get_value(117)?"X":"-"), // 1 1 1 + (gpio_get_value(118)?"X":"-"), // 1 1 1 + (gpio_get_value(119)?"X":"-"), // 1 1 1 + (gpio_get_value(120)?"X":"-") // 1 1 1 + ); // def rst wrt + } +/* printk("REG 0x%02x %02x %02x %02x %02x %02x\n",0x05,readb(SX2_ADDR_FIFO2),readb(SX2_ADDR_FIFO4), + readb(SX2_ADDR_FIFO6),readb(SX2_ADDR_FIFO8),readb(SX2_ADDR_CMD)); +*/ + for (;;); +} - - /* GADGET LEVEL HANDLING STUFF */ @@ -378,6 +410,7 @@ udelay(100); gpio_set_value(usb->mach->power_pin,1); udelay(500); +/* sx2_hwtest(); */ sx2_enum(); printk("SX2: sx2_udc_probe DONE\n"); return 0; @@ -419,14 +452,3 @@ MODULE_DESCRIPTION("Cypress EZUSB SX2 Peripheral Controller"); MODULE_AUTHOR("Marek Vasut"); MODULE_LICENSE("GPL"); - - - - - - - - - - - Modified: linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.h =================================================================== --- linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.h 2007-05-20 19:00:00 UTC (rev 987) +++ linux4palm/linux/trunk/drivers/usb/gadget/sx2_udc.h 2007-05-22 11:23:20 UTC (rev 988) @@ -94,18 +94,16 @@ ***************************************************/ #define SX2_ADDR_BASE 0xf0000000 -#define SX2_ADDR_IF(x) (*((volatile u8 *)x)) - /* We have 16bit bus of the chip connected to 32 bit bus of CPU */ -#define SX2_ADDR_FIFO2 SX2_ADDR_IF (SX2_ADDR_BASE + 0x00) -#define SX2_ADDR_FIFO4 SX2_ADDR_IF (SX2_ADDR_BASE + 0x01) -#define SX2_ADDR_FIFO6 SX2_ADDR_IF (SX2_ADDR_BASE + 0x04) -#define SX2_ADDR_FIFO8 SX2_ADDR_IF (SX2_ADDR_BASE + 0x05) -#define SX2_ADDR_CMD SX2_ADDR_IF (SX2_ADDR_BASE + 0x08) -#define SX2_ADDR_RESERVED1 SX2_ADDR_IF (SX2_ADDR_BASE + 0x09) -#define SX2_ADDR_RESERVED2 SX2_ADDR_IF (SX2_ADDR_BASE + 0x0C) -#define SX2_ADDR_RESERVED3 SX2_ADDR_IF (SX2_ADDR_BASE + 0x0D) +#define SX2_ADDR_FIFO2 (SX2_ADDR_BASE + 0x00) +#define SX2_ADDR_FIFO4 (SX2_ADDR_BASE + 0x01) +#define SX2_ADDR_FIFO6 (SX2_ADDR_BASE + 0x04) +#define SX2_ADDR_FIFO8 (SX2_ADDR_BASE + 0x05) +#define SX2_ADDR_CMD (SX2_ADDR_BASE + 0x08) +#define SX2_ADDR_RESERVED1 (SX2_ADDR_BASE + 0x09) +#define SX2_ADDR_RESERVED2 (SX2_ADDR_BASE + 0x0C) +#define SX2_ADDR_RESERVED3 (SX2_ADDR_BASE + 0x0D) /*************************************************** * SX2 COMMANDS * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |