forked from nuttx/nuttx-update
Fix some cloned errors in SAM GPIO interrupt setup
This commit is contained in:
parent
c4674b2e4a
commit
befcb1c961
31 changed files with 158 additions and 101 deletions
|
@ -175,7 +175,7 @@ char *mountpoint;
|
||||||
ret = mount(NULL, mountpoint, string "nfs", 0, (FAR void *)&data);
|
ret = mount(NULL, mountpoint, string "nfs", 0, (FAR void *)&data);
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
<p>
|
<p>
|
||||||
NOTE that: (1) the block driver paramter is <code>NULL</code>.
|
NOTE that: (1) the block driver parameter is <code>NULL</code>.
|
||||||
The <code>mount()</code> is smart enough to know that no block driver is needed with the NFS file system.
|
The <code>mount()</code> is smart enough to know that no block driver is needed with the NFS file system.
|
||||||
(2) The NFS file system is identified with the simple string "nfs"
|
(2) The NFS file system is identified with the simple string "nfs"
|
||||||
(3) A reference to <code>struct nfs_args</code> is passed as an NFS-specific argument.
|
(3) A reference to <code>struct nfs_args</code> is passed as an NFS-specific argument.
|
||||||
|
|
|
@ -1988,7 +1988,7 @@ mount -t <fstype> <block-device> <code><dir-path></code>
|
||||||
<p>
|
<p>
|
||||||
<b>Synopsis</b>.
|
<b>Synopsis</b>.
|
||||||
The <code>mount</code> command performs one of two different operations.
|
The <code>mount</code> command performs one of two different operations.
|
||||||
If no paramters are provided on the command line after the <code>mount</code> command, then the <code>mount</code> command will enumerate all of the current mountpoints on the console.
|
If no parameters are provided on the command line after the <code>mount</code> command, then the <code>mount</code> command will enumerate all of the current mountpoints on the console.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If the mount parameters are provied on the command after the <code>mount</code> command, then the <code>mount</code> command will mount a file system in the NuttX pseudo-file system.
|
If the mount parameters are provied on the command after the <code>mount</code> command, then the <code>mount</code> command will mount a file system in the NuttX pseudo-file system.
|
||||||
|
|
|
@ -1665,7 +1665,7 @@ ptr = (FAR struct somestruct_s *)value;
|
||||||
<li>
|
<li>
|
||||||
<b><code> * Input Parameters:</code></b> followed by a description of the of each input parameter beginning on the second line.
|
<b><code> * Input Parameters:</code></b> followed by a description of the of each input parameter beginning on the second line.
|
||||||
Each input parameter begins on a separator line indented by two additional spaces.
|
Each input parameter begins on a separator line indented by two additional spaces.
|
||||||
The description needs to include (1) the name of the input paramters, and (2) a short description of the input parameter.
|
The description needs to include (1) the name of the input parameters, and (2) a short description of the input parameter.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b><code> * Returned Value:</code></b> followed by a description of the of returned value(s) beginning on the second line.
|
<b><code> * Returned Value:</code></b> followed by a description of the of returned value(s) beginning on the second line.
|
||||||
|
|
|
@ -1567,7 +1567,7 @@ static void sam_req_rddisable(uint8_t epno)
|
||||||
* 'inflight' field to hold the maximum size of the transfer; but
|
* 'inflight' field to hold the maximum size of the transfer; but
|
||||||
* 'inflight' is not used with FIFO transfers.
|
* 'inflight' is not used with FIFO transfers.
|
||||||
*
|
*
|
||||||
* When the transfer completes, the 'recvsize' paramter must be the
|
* When the transfer completes, the 'recvsize' parameter must be the
|
||||||
* size of the transfer that just completed. For the case of DMA,
|
* size of the transfer that just completed. For the case of DMA,
|
||||||
* that is the size of the DMA transfer that has just been written to
|
* that is the size of the DMA transfer that has just been written to
|
||||||
* memory; for the FIFO transfer, recvsize is the number of bytes
|
* memory; for the FIFO transfer, recvsize is the number of bytes
|
||||||
|
|
|
@ -257,7 +257,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -256,7 +256,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -207,7 +207,7 @@ int stm32_usbhost_initialize(void)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -78,7 +78,8 @@ static xcpt_t g_irqbutton2;
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_SAM34_GPIOA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
#if defined(CONFIG_SAM34_GPIOA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
||||||
static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler, xcpt_t *store)
|
static xcpt_t board_button_irqx(gpio_pinset_t pinset, int irq,
|
||||||
|
xcpt_t irqhandler, xcpt_t *store)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
@ -100,7 +101,7 @@ static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler, xcpt_t *store)
|
||||||
{
|
{
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_gpioirq(irq);
|
sam_gpioirq(pinset);
|
||||||
(void)irq_attach(irq, irqhandler);
|
(void)irq_attach(irq, irqhandler);
|
||||||
sam_gpioirqenable(irq);
|
sam_gpioirqenable(irq);
|
||||||
}
|
}
|
||||||
|
@ -185,11 +186,13 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
{
|
{
|
||||||
if (id == BUTTON1)
|
if (id == BUTTON1)
|
||||||
{
|
{
|
||||||
return board_button_irqx(IRQ_BUTTON1, irqhandler, &g_irqbutton1);
|
return board_button_irqx(GPIO_BUTTON1, IRQ_BUTTON1,
|
||||||
|
irqhandler, &g_irqbutton1);
|
||||||
}
|
}
|
||||||
else if (id == BUTTON2)
|
else if (id == BUTTON2)
|
||||||
{
|
{
|
||||||
return board_button_irqx(IRQ_BUTTON2, irqhandler, &g_irqbutton2);
|
return board_button_irqx(GPIO_BUTTON2, IRQ_BUTTON2,
|
||||||
|
irqhandler, &g_irqbutton2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -80,7 +80,8 @@ static xcpt_t g_irq_tamp;
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_SAM34_GPIOA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
#if defined(CONFIG_SAM34_GPIOA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
||||||
static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler, xcpt_t *store)
|
static xcpt_t board_button_irqx(gpio_pinset_t pinset, int irq,
|
||||||
|
xcpt_t irqhandler, xcpt_t *store)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
@ -102,7 +103,7 @@ static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler, xcpt_t *store)
|
||||||
{
|
{
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_gpioirq(irq);
|
sam_gpioirq(pinset);
|
||||||
(void)irq_attach(irq, irqhandler);
|
(void)irq_attach(irq, irqhandler);
|
||||||
sam_gpioirqenable(irq);
|
sam_gpioirqenable(irq);
|
||||||
}
|
}
|
||||||
|
@ -130,10 +131,10 @@ static xcpt_t board_button_irqx(int irq, xcpt_t irqhandler, xcpt_t *store)
|
||||||
* Name: board_button_initialize
|
* Name: board_button_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* board_button_initialize() must be called to initialize button resources. After
|
* board_button_initialize() must be called to initialize button resources.
|
||||||
* that, board_buttons() may be called to collect the current state of all
|
* After that, board_buttons() may be called to collect the current state
|
||||||
* buttons or board_button_irq() may be called to register button interrupt
|
* of all buttons or board_button_irq() may be called to register button
|
||||||
* handlers.
|
* interrupt handlers.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -145,16 +146,16 @@ void board_button_initialize(void)
|
||||||
(void)sam_configgpio(GPIO_TAMP);
|
(void)sam_configgpio(GPIO_TAMP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_buttons
|
* Name: board_buttons
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* After board_button_initialize() has been called, board_buttons() may be called to collect
|
* After board_button_initialize() has been called, board_buttons() may be
|
||||||
* the state of all buttons. board_buttons() returns an 8-bit bit set with each bit
|
* called to collect the state of all buttons. board_buttons() returns an
|
||||||
* associated with a button. See the BUTTON* definitions above for the meaning of
|
* 8-bit bit set with each bit associated with a button. See the BUTTON*
|
||||||
* each bit in the returned value.
|
* definitions above for the meaning of each bit in the returned value.
|
||||||
*
|
*
|
||||||
************************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
uint8_t board_buttons(void)
|
uint8_t board_buttons(void)
|
||||||
{
|
{
|
||||||
|
@ -192,16 +193,20 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case BUTTON_SCROLLUP:
|
case BUTTON_SCROLLUP:
|
||||||
return board_button_irqx(IRQ_SCROLLUP, irqhandler, &g_irq_scrollup);
|
return board_button_irqx(GPIO_SCROLLUP, IRQ_SCROLLUP,
|
||||||
|
irqhandler, &g_irq_scrollup);
|
||||||
|
|
||||||
case BUTTON_SCROLLDOWN:
|
case BUTTON_SCROLLDOWN:
|
||||||
return board_button_irqx(IRQ_SCROLLDWN, irqhandler, &g_irq_scrolldown);
|
return board_button_irqx(GPIO_SCROLLDWN, IRQ_SCROLLDWN,
|
||||||
|
irqhandler, &g_irq_scrolldown);
|
||||||
|
|
||||||
case BUTTON_WAKU:
|
case BUTTON_WAKU:
|
||||||
return board_button_irqx(IRQ_WAKU, irqhandler, &g_irq_waku);
|
return board_button_irqx(GPIO_WAKU, IRQ_WAKU,
|
||||||
|
irqhandler, &g_irq_waku);
|
||||||
|
|
||||||
case BUTTON_TAMP:
|
case BUTTON_TAMP:
|
||||||
return board_button_irqx(IRQ_WAKU, irqhandler, &g_irq_tamp);
|
return board_button_irqx(GPIO_TAMP, IRQ_WAKU,
|
||||||
|
irqhandler, &g_irq_tamp);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -76,10 +76,10 @@ static xcpt_t g_irqsw0;
|
||||||
* Name: board_button_initialize
|
* Name: board_button_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* board_button_initialize() must be called to initialize button resources. After
|
* board_button_initialize() must be called to initialize button resources.
|
||||||
* that, board_buttons() may be called to collect the current state of all
|
* After that, board_buttons() may be called to collect the current state
|
||||||
* buttons or board_button_irq() may be called to register button interrupt
|
* of all buttons or board_button_irq() may be called to register button
|
||||||
* handlers.
|
* interrupt handlers.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -88,16 +88,16 @@ void board_button_initialize(void)
|
||||||
(void)sam_configgpio(GPIO_SW0);
|
(void)sam_configgpio(GPIO_SW0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_buttons
|
* Name: board_buttons
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* After board_button_initialize() has been called, board_buttons() may be called to collect
|
* After board_button_initialize() has been called, board_buttons() may be
|
||||||
* the state of all buttons. board_buttons() returns an 8-bit bit set with each bit
|
* called to collect the state of all buttons. board_buttons() returns an
|
||||||
* associated with a button. See the BUTTON* definitions above for the meaning of
|
* 8-bit bit set with each bit associated with a button. See the BUTTON*
|
||||||
* each bit in the returned value.
|
* definitions above for the meaning of each bit in the returned value.
|
||||||
*
|
*
|
||||||
************************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
uint8_t board_buttons(void)
|
uint8_t board_buttons(void)
|
||||||
{
|
{
|
||||||
|
@ -111,7 +111,7 @@ uint8_t board_buttons(void)
|
||||||
* This function may be called to register an interrupt handler that will
|
* This function may be called to register an interrupt handler that will
|
||||||
* be called when a button is depressed or released. The ID value is one
|
* be called when a button is depressed or released. The ID value is one
|
||||||
* of the BUTTON* definitions provided above. The previous interrupt
|
* of the BUTTON* definitions provided above. The previous interrupt
|
||||||
* handler address isreturned (so that it may restored, if so desired).
|
* handler address is returned (so that it may restored, if so desired).
|
||||||
*
|
*
|
||||||
* Configuration Notes:
|
* Configuration Notes:
|
||||||
* Configuration CONFIG_AVR32_GPIOIRQ must be selected to enable the
|
* Configuration CONFIG_AVR32_GPIOIRQ must be selected to enable the
|
||||||
|
@ -148,7 +148,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
{
|
{
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_gpioirq(IRQ_SW0);
|
sam_gpioirq(GPIO_SW0);
|
||||||
(void)irq_attach(IRQ_SW0, irqhandler);
|
(void)irq_attach(IRQ_SW0, irqhandler);
|
||||||
sam_gpioirqenable(IRQ_SW0);
|
sam_gpioirqenable(IRQ_SW0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,10 +75,10 @@ static xcpt_t g_irqsw0;
|
||||||
* Name: board_button_initialize
|
* Name: board_button_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* board_button_initialize() must be called to initialize button resources. After
|
* board_button_initialize() must be called to initialize button resources.
|
||||||
* that, board_buttons() may be called to collect the current state of all
|
* After that, board_buttons() may be called to collect the current state
|
||||||
* buttons or board_button_irq() may be called to register button interrupt
|
* of all buttons or board_button_irq() may be called to register button
|
||||||
* handlers.
|
* interrupt handlers.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -87,16 +87,16 @@ void board_button_initialize(void)
|
||||||
(void)sam_configgpio(GPIO_SW0);
|
(void)sam_configgpio(GPIO_SW0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_buttons
|
* Name: board_buttons
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* After board_button_initialize() has been called, board_buttons() may be called to collect
|
* After board_button_initialize() has been called, board_buttons() may be
|
||||||
* the state of all buttons. board_buttons() returns an 8-bit bit set with each bit
|
* called to collect the state of all buttons. board_buttons() returns an
|
||||||
* associated with a button. See the BUTTON* definitions above for the meaning of
|
* 8-bit bit set with each bit associated with a button. See the BUTTON*
|
||||||
* each bit in the returned value.
|
* definitions above for the meaning of each bit in the returned value.
|
||||||
*
|
*
|
||||||
************************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
uint8_t board_buttons(void)
|
uint8_t board_buttons(void)
|
||||||
{
|
{
|
||||||
|
@ -147,7 +147,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
{
|
{
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_gpioirq(IRQ_SW0);
|
sam_gpioirq(GPIO_SW0);
|
||||||
(void)irq_attach(IRQ_SW0, irqhandler);
|
(void)irq_attach(IRQ_SW0, irqhandler);
|
||||||
sam_gpioirqenable(IRQ_SW0);
|
sam_gpioirqenable(IRQ_SW0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,10 +74,10 @@ static xcpt_t g_irqbp2;
|
||||||
* Name: board_button_initialize
|
* Name: board_button_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* board_button_initialize() must be called to initialize button resources. After
|
* board_button_initialize() must be called to initialize button resources.
|
||||||
* that, board_buttons() may be called to collect the current state of all
|
* After that, board_buttons() may be called to collect the current state
|
||||||
* buttons or board_button_irq() may be called to register button interrupt
|
* of all buttons or board_button_irq() may be called to register button
|
||||||
* handlers.
|
* interrupt handlers.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -86,16 +86,16 @@ void board_button_initialize(void)
|
||||||
(void)sam_configgpio(GPIO_BP2);
|
(void)sam_configgpio(GPIO_BP2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_buttons
|
* Name: board_buttons
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* After board_button_initialize() has been called, board_buttons() may be called to collect
|
* After board_button_initialize() has been called, board_buttons() may be
|
||||||
* the state of all buttons. board_buttons() returns an 8-bit bit set with each bit
|
* called to collect the state of all buttons. board_buttons() returns an
|
||||||
* associated with a button. See the BUTTON* definitions above for the meaning of
|
* 8-bit bit set with each bit associated with a button. See the BUTTON*
|
||||||
* each bit in the returned value.
|
* definitions above for the meaning of each bit in the returned value.
|
||||||
*
|
*
|
||||||
************************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
uint8_t board_buttons(void)
|
uint8_t board_buttons(void)
|
||||||
{
|
{
|
||||||
|
@ -109,7 +109,7 @@ uint8_t board_buttons(void)
|
||||||
* This function may be called to register an interrupt handler that will
|
* This function may be called to register an interrupt handler that will
|
||||||
* be called when a button is depressed or released. The ID value is one
|
* be called when a button is depressed or released. The ID value is one
|
||||||
* of the BUTTON* definitions provided above. The previous interrupt
|
* of the BUTTON* definitions provided above. The previous interrupt
|
||||||
* handler address isreturned (so that it may restored, if so desired).
|
* handler address is returned (so that it may restored, if so desired).
|
||||||
*
|
*
|
||||||
* Configuration Notes:
|
* Configuration Notes:
|
||||||
* Configuration CONFIG_AVR32_GPIOIRQ must be selected to enable the
|
* Configuration CONFIG_AVR32_GPIOIRQ must be selected to enable the
|
||||||
|
@ -146,7 +146,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
{
|
{
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_gpioirq(IRQ_BP2);
|
sam_gpioirq(GPIO_BP2);
|
||||||
(void)irq_attach(IRQ_BP2, irqhandler);
|
(void)irq_attach(IRQ_BP2, irqhandler);
|
||||||
sam_gpioirqenable(IRQ_BP2);
|
sam_gpioirqenable(IRQ_BP2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@ uint8_t board_buttons(void)
|
||||||
* This function may be called to register an interrupt handler that will
|
* This function may be called to register an interrupt handler that will
|
||||||
* be called when a button is depressed or released. The ID value is one
|
* be called when a button is depressed or released. The ID value is one
|
||||||
* of the BUTTON* definitions provided above. The previous interrupt
|
* of the BUTTON* definitions provided above. The previous interrupt
|
||||||
* handler address isreturned (so that it may restored, if so desired).
|
* handler address is returned (so that it may restored, if so desired).
|
||||||
*
|
*
|
||||||
* Configuration Notes:
|
* Configuration Notes:
|
||||||
* Configuration CONFIG_SAMA5_PIO_IRQ must be selected to enable the
|
* Configuration CONFIG_SAMA5_PIO_IRQ must be selected to enable the
|
||||||
|
@ -155,11 +155,25 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
oldhandler = g_irquser1;
|
oldhandler = g_irquser1;
|
||||||
g_irquser1 = irqhandler;
|
g_irquser1 = irqhandler;
|
||||||
|
|
||||||
|
/* Are we attaching or detaching? */
|
||||||
|
|
||||||
|
if (irqhandler != NULL)
|
||||||
|
{
|
||||||
|
/* Configure the interrupt */
|
||||||
|
|
||||||
|
sam_pioirq(PIO_USER);
|
||||||
|
(void)irq_attach(IRQ_USER1, irqhandler);
|
||||||
|
sam_pioirqenable(IRQ_USER1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Disable and detach the interrupt */
|
||||||
|
|
||||||
|
sam_pioirqdisable(IRQ_USER1);
|
||||||
|
(void)irq_detach(IRQ_USER1);
|
||||||
|
}
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(IRQ_USER1);
|
|
||||||
(void)irq_attach(IRQ_USER1, irqhandler);
|
|
||||||
sam_pioirqenable(IRQ_USER1);
|
|
||||||
irqrestore(flags);
|
irqrestore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,12 +136,14 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
xcpt_t *handler;
|
xcpt_t *handler;
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
|
pio_pinset_t pinset;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
#ifdef CONFIG_SAMA5_EMACA
|
#ifdef CONFIG_SAMA5_EMACA
|
||||||
if (intf == EMAC_INTF)
|
if (intf == EMAC_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_emac_handler;
|
handler = &g_emac_handler;
|
||||||
|
pinset = PIO_INT_ETH1;
|
||||||
irq = IRQ_INT_ETH1;
|
irq = IRQ_INT_ETH1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -150,6 +152,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
if (intf == GMAC_INTF)
|
if (intf == GMAC_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_gmac_handler;
|
handler = &g_gmac_handler;
|
||||||
|
pinset = PIO_INT_ETH0;
|
||||||
irq = IRQ_INT_ETH0;
|
irq = IRQ_INT_ETH0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -172,7 +175,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(irq);
|
sam_pioirq(pinset);
|
||||||
(void)irq_attach(irq, irqhandler);
|
(void)irq_attach(irq, irqhandler);
|
||||||
sam_pioirqenable(irq);
|
sam_pioirqenable(irq);
|
||||||
|
|
||||||
|
|
|
@ -463,7 +463,7 @@ void sam_usbhost_vbusdrive(int rhport, bool enable)
|
||||||
* REVISIT: Since this is a common signal, we will need to come up with some way
|
* REVISIT: Since this is a common signal, we will need to come up with some way
|
||||||
* to inform both EHCI and OHCI drivers when this error occurs.
|
* to inform both EHCI and OHCI drivers when this error occurs.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
@ -493,7 +493,7 @@ xcpt_t sam_setup_overcurrent(xcpt_t handler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirq(PIO_USBBC_VBUS_OVERCURRENT);
|
||||||
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
||||||
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
||||||
|
|
||||||
|
|
|
@ -91,10 +91,10 @@ static xcpt_t g_irquser1;
|
||||||
* Name: board_button_initialize
|
* Name: board_button_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* board_button_initialize() must be called to initialize button resources. After
|
* board_button_initialize() must be called to initialize button resources.
|
||||||
* that, board_buttons() may be called to collect the current state of all
|
* After that, board_buttons() may be called to collect the current state
|
||||||
* buttons or board_button_irq() may be called to register button interrupt
|
* of all buttons or board_button_irq() may be called to register button
|
||||||
* handlers.
|
* interrupt handlers.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -107,10 +107,10 @@ void board_button_initialize(void)
|
||||||
* Name: board_buttons
|
* Name: board_buttons
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* After board_button_initialize() has been called, board_buttons() may be called to
|
* After board_button_initialize() has been called, board_buttons() may be
|
||||||
* collect the state of all buttons. board_buttons() returns an 8-bit bit set
|
* called to collect the state of all buttons. board_buttons() returns an
|
||||||
* with each bit associated with a button. See the BUTTON* definitions
|
* 8-bit bit set with each bit associated with a button. See the BUTTON*
|
||||||
* above for the meaning of each bit in the returned value.
|
* definitions above for the meaning of each bit in the returned value.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -155,11 +155,24 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
oldhandler = g_irquser1;
|
oldhandler = g_irquser1;
|
||||||
g_irquser1 = irqhandler;
|
g_irquser1 = irqhandler;
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Are we attaching or detaching? */
|
||||||
|
|
||||||
|
if (irqhandler != NULL)
|
||||||
|
{
|
||||||
|
/* Configure the interrupt */
|
||||||
|
|
||||||
|
sam_pioirq(PIO_USER1);
|
||||||
|
(void)irq_attach(IRQ_USER1, irqhandler);
|
||||||
|
sam_pioirqenable(IRQ_USER1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Disable and detach the interrupt */
|
||||||
|
|
||||||
|
sam_pioirqdisable(IRQ_USER1);
|
||||||
|
(void)irq_detach(IRQ_USER1);
|
||||||
|
}
|
||||||
|
|
||||||
sam_pioirq(IRQ_USER1);
|
|
||||||
(void)irq_attach(IRQ_USER1, irqhandler);
|
|
||||||
sam_pioirqenable(IRQ_USER1);
|
|
||||||
irqrestore(flags);
|
irqrestore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,12 +136,14 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
xcpt_t *handler;
|
xcpt_t *handler;
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
|
pio_pinset_t pinset;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
#ifdef CONFIG_SAMA5_EMACA
|
#ifdef CONFIG_SAMA5_EMACA
|
||||||
if (intf == EMAC_INTF)
|
if (intf == EMAC_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_emac_handler;
|
handler = &g_emac_handler;
|
||||||
|
pinset = PIO_INT_ETH1;
|
||||||
irq = IRQ_INT_ETH1;
|
irq = IRQ_INT_ETH1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -150,6 +152,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
if (intf == GMAC_INTF)
|
if (intf == GMAC_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_gmac_handler;
|
handler = &g_gmac_handler;
|
||||||
|
pinset = PIO_INT_ETH0;
|
||||||
irq = IRQ_INT_ETH0;
|
irq = IRQ_INT_ETH0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -172,7 +175,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(irq);
|
sam_pioirq(pinset);
|
||||||
(void)irq_attach(irq, irqhandler);
|
(void)irq_attach(irq, irqhandler);
|
||||||
sam_pioirqenable(irq);
|
sam_pioirqenable(irq);
|
||||||
|
|
||||||
|
|
|
@ -463,7 +463,7 @@ void sam_usbhost_vbusdrive(int rhport, bool enable)
|
||||||
* REVISIT: Since this is a common signal, we will need to come up with some way
|
* REVISIT: Since this is a common signal, we will need to come up with some way
|
||||||
* to inform both EHCI and OHCI drivers when this error occurs.
|
* to inform both EHCI and OHCI drivers when this error occurs.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
@ -493,7 +493,7 @@ xcpt_t sam_setup_overcurrent(xcpt_t handler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirq(PIO_USBBC_VBUS_OVERCURRENT);
|
||||||
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
||||||
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
||||||
|
|
||||||
|
|
|
@ -151,11 +151,24 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler)
|
||||||
oldhandler = g_irquser1;
|
oldhandler = g_irquser1;
|
||||||
g_irquser1 = irqhandler;
|
g_irquser1 = irqhandler;
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Are we attaching or detaching? */
|
||||||
|
|
||||||
|
if (irqhandler != NULL)
|
||||||
|
{
|
||||||
|
/* Configure the interrupt */
|
||||||
|
|
||||||
|
sam_pioirq(PIO_BTN_USER);
|
||||||
|
(void)irq_attach(IRQ_BTN_USER, irqhandler);
|
||||||
|
sam_pioirqenable(IRQ_BTN_USER);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Disable and detach the interrupt */
|
||||||
|
|
||||||
|
sam_pioirqdisable(IRQ_BTN_USER);
|
||||||
|
(void)irq_detach(IRQ_BTN_USER);
|
||||||
|
}
|
||||||
|
|
||||||
sam_pioirq(IRQ_USER1);
|
|
||||||
(void)irq_attach(IRQ_USER1, irqhandler);
|
|
||||||
sam_pioirqenable(IRQ_USER1);
|
|
||||||
irqrestore(flags);
|
irqrestore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,12 +105,14 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
xcpt_t *handler;
|
xcpt_t *handler;
|
||||||
xcpt_t oldhandler;
|
xcpt_t oldhandler;
|
||||||
|
pio_pinset_t pinset;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
#ifdef CONFIG_SAMA5_EMAC0
|
#ifdef CONFIG_SAMA5_EMAC0
|
||||||
if (intf == EMAC0_INTF)
|
if (intf == EMAC0_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_emac0_handler;
|
handler = &g_emac0_handler;
|
||||||
|
pinset = PIO_INT_ETH0;
|
||||||
irq = IRQ_INT_ETH0;
|
irq = IRQ_INT_ETH0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -119,6 +121,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
if (intf == EMAC1_INTF)
|
if (intf == EMAC1_INTF)
|
||||||
{
|
{
|
||||||
handler = &g_emac1_handler;
|
handler = &g_emac1_handler;
|
||||||
|
pinset = PIO_INT_ETH1;
|
||||||
irq = IRQ_INT_ETH1;
|
irq = IRQ_INT_ETH1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -141,7 +144,7 @@ xcpt_t sam_phyirq(int intf, xcpt_t irqhandler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(irq);
|
sam_pioirq(pinset);
|
||||||
(void)irq_attach(irq, irqhandler);
|
(void)irq_attach(irq, irqhandler);
|
||||||
sam_pioirqenable(irq);
|
sam_pioirqenable(irq);
|
||||||
|
|
||||||
|
|
|
@ -464,7 +464,7 @@ void sam_usbhost_vbusdrive(int rhport, bool enable)
|
||||||
* REVISIT: Since this is a common signal, we will need to come up with some way
|
* REVISIT: Since this is a common signal, we will need to come up with some way
|
||||||
* to inform both EHCI and OHCI drivers when this error occurs.
|
* to inform both EHCI and OHCI drivers when this error occurs.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameters:
|
||||||
* handler - New over-current interrupt handler
|
* handler - New over-current interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
@ -494,7 +494,7 @@ xcpt_t sam_setup_overcurrent(xcpt_t handler)
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_pioirq(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirq(PIO_USBBC_VBUS_OVERCURRENT);
|
||||||
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
(void)irq_attach(IRQ_USBBC_VBUS_OVERCURRENT, handler);
|
||||||
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
sam_pioirqenable(IRQ_USBBC_VBUS_OVERCURRENT);
|
||||||
|
|
||||||
|
|
|
@ -256,7 +256,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -256,7 +256,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -256,7 +256,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -275,7 +275,7 @@ void stm32_usbhost_vbusdrive(int iface, bool enable)
|
||||||
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
* Setup to receive an interrupt-level callback if an overcurrent condition is
|
||||||
* detected.
|
* detected.
|
||||||
*
|
*
|
||||||
* Input paramter:
|
* Input Parameter:
|
||||||
* handler - New overcurrent interrupt handler
|
* handler - New overcurrent interrupt handler
|
||||||
*
|
*
|
||||||
* Returned value:
|
* Returned value:
|
||||||
|
|
|
@ -553,7 +553,7 @@ off_t nxffs_iotell(FAR struct nxffs_volume_s *volume);
|
||||||
* over bad blocks and block headers as necessary.
|
* over bad blocks and block headers as necessary.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* volume - Describes the NXFFS volume. The paramters ioblock and iooffset
|
* volume - Describes the NXFFS volume. The parameters ioblock and iooffset
|
||||||
* in the volume structure determine the behavior of nxffs_getc().
|
* in the volume structure determine the behavior of nxffs_getc().
|
||||||
* reserve - If less than this much space is available at the end of the
|
* reserve - If less than this much space is available at the end of the
|
||||||
* block, then skip to the next block.
|
* block, then skip to the next block.
|
||||||
|
|
|
@ -195,7 +195,7 @@ off_t nxffs_iotell(FAR struct nxffs_volume_s *volume)
|
||||||
* over bad blocks and block headers as necessary.
|
* over bad blocks and block headers as necessary.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* volume - Describes the NXFFS volume. The paramters ioblock and iooffset
|
* volume - Describes the NXFFS volume. The parameters ioblock and iooffset
|
||||||
* in the volume structure determine the behavior of nxffs_getc().
|
* in the volume structure determine the behavior of nxffs_getc().
|
||||||
* reserve - If less than this much space is available at the end of the
|
* reserve - If less than this much space is available at the end of the
|
||||||
* block, then skip to the next block.
|
* block, then skip to the next block.
|
||||||
|
|
|
@ -425,7 +425,7 @@ typedef struct poff_debugfuncinfo_s poff_debugfuncinfo_t;
|
||||||
|
|
||||||
struct poff_debugarginfo_s
|
struct poff_debugarginfo_s
|
||||||
{
|
{
|
||||||
/* This is the size, in bytes, of one input paramter */
|
/* This is the size, in bytes, of one input parameter */
|
||||||
|
|
||||||
uint32_t da_size;
|
uint32_t da_size;
|
||||||
};
|
};
|
||||||
|
|
|
@ -78,7 +78,7 @@ Each type field has a format as follows:
|
||||||
A similar situation exists for unions. For example, the formal
|
A similar situation exists for unions. For example, the formal
|
||||||
parameter type union sigval -- You cannot cast a uintptr_t to
|
parameter type union sigval -- You cannot cast a uintptr_t to
|
||||||
a union sigval, but you can cast to the type of one of the union
|
a union sigval, but you can cast to the type of one of the union
|
||||||
member types when passing the actual paramter. Similarly, we
|
member types when passing the actual parameter. Similarly, we
|
||||||
cannot cast a union sigval to a uinptr_t either. Rather, we need
|
cannot cast a union sigval to a uinptr_t either. Rather, we need
|
||||||
to cast a specific union member fieldname to uintptr_t.
|
to cast a specific union member fieldname to uintptr_t.
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ Each type field has a format as follows:
|
||||||
A similar situation exists for unions. For example, the formal
|
A similar situation exists for unions. For example, the formal
|
||||||
parameter type union sigval -- You cannot cast a uintptr_t to
|
parameter type union sigval -- You cannot cast a uintptr_t to
|
||||||
a union sigval, but you can cast to the type of one of the union
|
a union sigval, but you can cast to the type of one of the union
|
||||||
member types when passing the actual paramter. Similarly, we
|
member types when passing the actual parameter. Similarly, we
|
||||||
cannot cast a union sigval to a uinptr_t either. Rather, we need
|
cannot cast a union sigval to a uinptr_t either. Rather, we need
|
||||||
to cast a specific union member fieldname to uintptr_t.
|
to cast a specific union member fieldname to uintptr_t.
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,7 @@ static void parse_args(int argc, char **argv)
|
||||||
fprintf(stderr, " Windows Native : [%s]\n", g_winnative ? "TRUE" : "FALSE");
|
fprintf(stderr, " Windows Native : [%s]\n", g_winnative ? "TRUE" : "FALSE");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for required paramters */
|
/* Check for required parameters */
|
||||||
|
|
||||||
if (!g_cc)
|
if (!g_cc)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue