PIC32 USB driver fixes (still not working)

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4308 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-01-17 23:02:40 +00:00
parent 88094197cb
commit de66b638e1
3 changed files with 16 additions and 8 deletions

View File

@ -35,7 +35,7 @@ nuttx/
(3) AVR (arch/avr)
(0) Intel x86 (arch/x86)
(4) 8051 / MCS51 (arch/8051/)
(1) MIPS (arch/mips)
(1) MIPS/PIC32 (arch/mips)
(1) Hitachi/Renesas SH-1 (arch/sh/src/sh1)
(4) Renesas M16C/26 (arch/sh/src/m16c)
(10) z80/z8/ez80 (arch/z80/)

View File

@ -2199,7 +2199,7 @@ static int pic32mx_interrupt(int irq, void *context)
pic32mx_putreg(USB_INT_ALL, PIC32MX_USB_IR);
/* Make sure the the USE reset and idle detect interrupts are enabled */
/* Make sure that the USE reset and IDLE detect interrupts are enabled */
regval = pic32mx_getreg(PIC32MX_USB_IE);
regval |= (USB_INT_URST|USB_INT_IDLE);
@ -2411,7 +2411,9 @@ static void pic32mx_suspend(struct pic32mx_usbdev_s *priv)
{
uint16_t regval;
/* NOTE: Do not clear UIRbits.ACTVIF here! Reason: ACTVIF is only
/* Enable the ACTV interrupt.
*
* NOTE: Do not clear UIRbits.ACTVIF here! Reason: ACTVIF is only
* generated once an IDLEIF has been generated. This is a 1:1 ratio
* interrupt generation. For every IDLEIF, there will be only one ACTVIF
* regardless of the number of subsequent bus transitions. If the ACTIF
@ -2424,6 +2426,12 @@ static void pic32mx_suspend(struct pic32mx_usbdev_s *priv)
regval |= USBOTG_INT_ACTV;
pic32mx_putreg(regval, PIC32MX_USBOTG_IE);
/* Disable further IDLE interrupts. Once is enough. */
regval = pic32mx_getreg(PIC32MX_USB_IE);
regval &= ~USB_INT_IDLE;
pic32mx_putreg(regval, PIC32MX_USB_IE);
/* Invoke a callback into board-specific logic. The board-specific logic
* may enter into sleep or idle modes or switch to a slower clock, etc.
*/
@ -3457,7 +3465,7 @@ static void pic32mx_hwreset(struct pic32mx_usbdev_s *priv)
pic32mx_putreg(0, PIC32MX_USB_CNFG1);
pic32mx_putreg(ERROR_INTERRUPTS, PIC32MX_USB_EIE);
pic32mx_putreg(NORMAL_INTERRUPTS, PIC32MX_USB_EIE);
pic32mx_putreg(NORMAL_INTERRUPTS, PIC32MX_USB_IE);
/* Power up the USB module */
@ -3595,7 +3603,7 @@ static void pic32mx_hwshutdown(struct pic32mx_usbdev_s *priv)
/* Disable all interrupts and force the USB controller into reset */
pic32mx_putreg(0, PIC32MX_USB_EIE);
pic32mx_putreg(0, PIC32MX_USB_EIE);
pic32mx_putreg(0, PIC32MX_USB_IE);
/* Clear any pending interrupts */

View File

@ -81,9 +81,9 @@
*/
#define GPIO_USB_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTD|GPIO_PIN7)
#define GPIO_SD_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTD|GPIO_PIN8)
#define GPIO_FLASH_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTD|GPIO_PIN9)
#define GPIO_ERROR_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTD|GPIO_PIN10)
#define GPIO_SD_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTD|GPIO_PIN6)
#define GPIO_FLASH_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTF|GPIO_PIN0)
#define GPIO_ERROR_LED (GPIO_OUTPUT|GPIO_VALUE_ONE|GPIO_PORTF|GPIO_PIN1)
/* LED Management Definitions ***********************************************/