1
0
Fork 0
forked from nuttx/nuttx-update

Fix some cloned errors in SAM GPIO interrupt setup

This commit is contained in:
Gregory Nutt 2014-07-07 15:54:37 -06:00
parent c4674b2e4a
commit befcb1c961
31 changed files with 158 additions and 101 deletions

View file

@ -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 &quot;nfs&quot; (2) The NFS file system is identified with the simple string &quot;nfs&quot;
(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.

View file

@ -1988,7 +1988,7 @@ mount -t &lt;fstype&gt; &lt;block-device&gt; <code>&lt;dir-path&gt;</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.

View file

@ -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.

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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
{ {

View file

@ -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;

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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.

View file

@ -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.

View file

@ -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;
}; };

View file

@ -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.

View file

@ -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.

View file

@ -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)
{ {