Merge branch 'master' into remove-dcd-set-config
This commit is contained in:
		@@ -181,9 +181,7 @@ void dcd_init(uint8_t rhport)
 | 
			
		||||
  LPC_USB->UDCAH = (uint32_t) _dcd.udca;
 | 
			
		||||
  LPC_USB->DMAIntEn = (DMA_INT_END_OF_XFER_MASK /*| DMA_INT_NEW_DD_REQUEST_MASK*/ | DMA_INT_ERROR_MASK);
 | 
			
		||||
 | 
			
		||||
  sie_write(SIE_CMDCODE_DEVICE_STATUS, 1, 1);    // connect
 | 
			
		||||
 | 
			
		||||
  // USB IRQ priority should be set by application previously
 | 
			
		||||
  // Clear pending IRQ
 | 
			
		||||
  NVIC_ClearPendingIRQ(USB_IRQn);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -221,6 +219,18 @@ void dcd_remote_wakeup(uint8_t rhport)
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_connect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
  sie_write(SIE_CMDCODE_DEVICE_STATUS, 1, SIE_DEV_STATUS_CONNECT_STATUS_MASK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_disconnect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
  sie_write(SIE_CMDCODE_DEVICE_STATUS, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// CONTROL HELPER
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -498,7 +508,7 @@ static void dd_complete_isr(uint8_t rhport, uint8_t ep_id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// main USB IRQ handler
 | 
			
		||||
void dcd_irq_handler(uint8_t rhport)
 | 
			
		||||
void dcd_int_handler(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  uint32_t const dev_int_status = LPC_USB->DevIntSt & LPC_USB->DevIntEn;
 | 
			
		||||
  LPC_USB->DevIntClr = dev_int_status;// Acknowledge handled interrupt
 | 
			
		||||
 
 | 
			
		||||
@@ -95,7 +95,7 @@ enum {
 | 
			
		||||
  CMDSTAT_DEVICE_ADDR_MASK    = TU_BIT(7 )-1,
 | 
			
		||||
  CMDSTAT_DEVICE_ENABLE_MASK  = TU_BIT(7 ),
 | 
			
		||||
  CMDSTAT_SETUP_RECEIVED_MASK = TU_BIT(8 ),
 | 
			
		||||
  CMDSTAT_DEVICE_CONNECT_MASK = TU_BIT(16), ///< reflect the softconnect only, does not reflect the actual attached state
 | 
			
		||||
  CMDSTAT_DEVICE_CONNECT_MASK = TU_BIT(16), ///< reflect the soft-connect only, does not reflect the actual attached state
 | 
			
		||||
  CMDSTAT_DEVICE_SUSPEND_MASK = TU_BIT(17),
 | 
			
		||||
  CMDSTAT_CONNECT_CHANGE_MASK = TU_BIT(24),
 | 
			
		||||
  CMDSTAT_SUSPEND_CHANGE_MASK = TU_BIT(25),
 | 
			
		||||
@@ -209,6 +209,18 @@ void dcd_remote_wakeup(uint8_t rhport)
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_connect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
  DCD_REGS->DEVCMDSTAT |= CMDSTAT_DEVICE_CONNECT_MASK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_disconnect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
  DCD_REGS->DEVCMDSTAT &= ~CMDSTAT_DEVICE_CONNECT_MASK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// DCD Endpoint Port
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -333,7 +345,7 @@ static void process_xfer_isr(uint32_t int_status)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_irq_handler(uint8_t rhport)
 | 
			
		||||
void dcd_int_handler(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  (void) rhport; // TODO support multiple USB on supported mcu such as LPC55s69
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -322,7 +322,7 @@ void dcd_init(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  tu_memclr(&_dcd_data, sizeof(dcd_data_t));
 | 
			
		||||
 | 
			
		||||
  dcd_registers_t* const dcd_reg = _dcd_controller[rhport].regs;
 | 
			
		||||
  dcd_registers_t* dcd_reg = _dcd_controller[rhport].regs;
 | 
			
		||||
 | 
			
		||||
  // Reset controller
 | 
			
		||||
  dcd_reg->USBCMD |= USBCMD_RESET;
 | 
			
		||||
@@ -342,7 +342,6 @@ void dcd_init(uint8_t rhport)
 | 
			
		||||
  dcd_reg->USBINTR = INTR_USB | INTR_ERROR | INTR_PORT_CHANGE | INTR_RESET | INTR_SUSPEND /*| INTR_SOF*/;
 | 
			
		||||
 | 
			
		||||
  dcd_reg->USBCMD &= ~0x00FF0000; // Interrupt Threshold Interval = 0
 | 
			
		||||
  dcd_reg->USBCMD |= TU_BIT(0); // connect
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_int_enable(uint8_t rhport)
 | 
			
		||||
@@ -376,6 +375,18 @@ void dcd_remote_wakeup(uint8_t rhport)
 | 
			
		||||
  (void) rhport;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_connect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  dcd_registers_t* dcd_reg = _dcd_controller[rhport].regs;
 | 
			
		||||
  dcd_reg->USBCMD |= USBCMD_RUN_STOP;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dcd_disconnect(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  dcd_registers_t* dcd_reg = _dcd_controller[rhport].regs;
 | 
			
		||||
  dcd_reg->USBCMD &= ~USBCMD_RUN_STOP;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// HELPER
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -492,7 +503,7 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t * buffer, uint16_t t
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// ISR
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
void dcd_irq_handler(uint8_t rhport)
 | 
			
		||||
void dcd_int_handler(uint8_t rhport)
 | 
			
		||||
{
 | 
			
		||||
  dcd_registers_t* const dcd_reg = _dcd_controller[rhport].regs;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user