Button upper half driver: Add definitions needed for compilation with the poll() interface is not disabled.
This commit is contained in:
parent
e891a33c2e
commit
9c4b604074
@ -331,7 +331,7 @@ config BUTTONS
|
|||||||
if BUTTONS
|
if BUTTONS
|
||||||
|
|
||||||
config BUTTONS_LOWER
|
config BUTTONS_LOWER
|
||||||
bool "Generic Lower Half Button Dirver"
|
bool "Generic Lower Half Button Driver"
|
||||||
default n
|
default n
|
||||||
depends on ARCH_BUTTONS && ARCH_IRQBUTTONS
|
depends on ARCH_BUTTONS && ARCH_IRQBUTTONS
|
||||||
---help---
|
---help---
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* drivers/input/button_upper.c
|
* drivers/input/button_upper.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -230,8 +230,8 @@ static void btn_enable(FAR struct btn_upperhalf_s *priv)
|
|||||||
{
|
{
|
||||||
/* Yes.. OR in the poll event buttons */
|
/* Yes.. OR in the poll event buttons */
|
||||||
|
|
||||||
press |= opriv->bo_pollevents.ap_press;
|
press |= opriv->bo_pollevents.bp_press;
|
||||||
release |= opriv->bo_pollevents.ap_release;
|
release |= opriv->bo_pollevents.bp_release;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,8 +322,8 @@ static void btn_sample(FAR struct btn_upperhalf_s *priv)
|
|||||||
* newly released.
|
* newly released.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
change = sample ^ priv->bu_sample;
|
change = sample ^ priv->bu_sample;
|
||||||
press = change & sample;
|
press = change & sample;
|
||||||
|
|
||||||
DEBUGASSERT(lower->bl_supported);
|
DEBUGASSERT(lower->bl_supported);
|
||||||
release = change & (lower->bl_supported(lower) & ~sample);
|
release = change & (lower->bl_supported(lower) & ~sample);
|
||||||
@ -335,8 +335,8 @@ static void btn_sample(FAR struct btn_upperhalf_s *priv)
|
|||||||
#ifndef CONFIG_DISABLE_POLL
|
#ifndef CONFIG_DISABLE_POLL
|
||||||
/* Have any poll events occurred? */
|
/* Have any poll events occurred? */
|
||||||
|
|
||||||
if ((press & opriv->bo_pollevents.ap_press) != 0 ||
|
if ((press & opriv->bo_pollevents.bp_press) != 0 ||
|
||||||
(release & opriv->bo_pollevents.ap_release) != 0)
|
(release & opriv->bo_pollevents.bp_release) != 0)
|
||||||
{
|
{
|
||||||
/* Yes.. Notify all waiters */
|
/* Yes.. Notify all waiters */
|
||||||
|
|
||||||
@ -431,8 +431,8 @@ static int btn_open(FAR struct file *filep)
|
|||||||
DEBUGASSERT(lower && lower->bl_supported);
|
DEBUGASSERT(lower && lower->bl_supported);
|
||||||
supported = lower->bl_supported(lower);
|
supported = lower->bl_supported(lower);
|
||||||
|
|
||||||
opriv->bo_pollevents.ap_press = supported;
|
opriv->bo_pollevents.bp_press = supported;
|
||||||
opriv->bo_pollevents.ap_release = supported;
|
opriv->bo_pollevents.bp_release = supported;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Attach the open structure to the device */
|
/* Attach the open structure to the device */
|
||||||
@ -664,8 +664,8 @@ static int btn_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
|
|||||||
{
|
{
|
||||||
/* Save the poll events */
|
/* Save the poll events */
|
||||||
|
|
||||||
opriv->bo_pollevents.ap_press = pollevents->ap_press;
|
opriv->bo_pollevents.bp_press = pollevents->bp_press;
|
||||||
opriv->bo_pollevents.ap_release = pollevents->ap_release;
|
opriv->bo_pollevents.bp_release = pollevents->bp_release;
|
||||||
|
|
||||||
/* Enable/disable interrupt handling */
|
/* Enable/disable interrupt handling */
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Configuration ************************************************************/
|
/* Configuration ************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_AJOYSTICK_NPOLLWAITERS
|
#ifndef CONFIG_AJOYSTICK_NPOLLWAITERS
|
||||||
@ -159,6 +160,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* This type is a bit set that contains the state of all analog joystick
|
/* This type is a bit set that contains the state of all analog joystick
|
||||||
* buttons.
|
* buttons.
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* include/nuttx/input/buttons.h
|
* include/nuttx/input/buttons.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -46,6 +46,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Configuration ************************************************************/
|
/* Configuration ************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_BUTTONS_NPOLLWAITERS
|
#ifndef CONFIG_BUTTONS_NPOLLWAITERS
|
||||||
@ -64,6 +65,17 @@
|
|||||||
|
|
||||||
#define BTNIOC_SUPPORTED _BTNIOC(0x0001)
|
#define BTNIOC_SUPPORTED _BTNIOC(0x0001)
|
||||||
|
|
||||||
|
/* Command: BTNIOC_POLLEVENTS
|
||||||
|
* Description: Specify the set of button events that can cause a poll()
|
||||||
|
* to awaken. The default is all button depressions and all
|
||||||
|
* button releases (all supported buttons);
|
||||||
|
* Argument: A read-only pointer to an instance of struct ajoy_pollevents_s
|
||||||
|
* Return: Zero (OK) on success. Minus one will be returned on failure
|
||||||
|
* with the errno value set appropriately.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define BTNIOC_POLLEVENTS _BTNIOC(0x0002)
|
||||||
|
|
||||||
/* Command: BTNIOC_REGISTER
|
/* Command: BTNIOC_REGISTER
|
||||||
* Description: Register to receive a signal whenever there is a change in
|
* Description: Register to receive a signal whenever there is a change in
|
||||||
* the state of button inputs. This feature, of course, depends
|
* the state of button inputs. This feature, of course, depends
|
||||||
@ -73,11 +85,12 @@
|
|||||||
* with the errno value set appropriately.
|
* with the errno value set appropriately.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BTNIOC_REGISTER _BTNIOC(0x0002)
|
#define BTNIOC_REGISTER _BTNIOC(0x0003)
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* This type is a bit set that contains the state of all buttons as defined
|
/* This type is a bit set that contains the state of all buttons as defined
|
||||||
* in arch/board/board.h. This is the value that is returned when reading
|
* in arch/board/board.h. This is the value that is returned when reading
|
||||||
* from the button driver.
|
* from the button driver.
|
||||||
@ -85,6 +98,17 @@
|
|||||||
|
|
||||||
typedef uint8_t btn_buttonset_t;
|
typedef uint8_t btn_buttonset_t;
|
||||||
|
|
||||||
|
/* A reference to this structure is provided with the BTNIOC_POLLEVENTS IOCTL
|
||||||
|
* command and describes the conditions under which the client would like
|
||||||
|
* to receive notification.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct btn_pollevents_s
|
||||||
|
{
|
||||||
|
btn_buttonset_t bp_press; /* Set of button depressions to wake up the poll */
|
||||||
|
btn_buttonset_t bp_release; /* Set of button releases to wake up the poll */
|
||||||
|
};
|
||||||
|
|
||||||
/* A reference to this structure is provided with the BTNIOC_REGISTER IOCTL
|
/* A reference to this structure is provided with the BTNIOC_REGISTER IOCTL
|
||||||
* command and describes the conditions under which the client would like
|
* command and describes the conditions under which the client would like
|
||||||
* to receive notification.
|
* to receive notification.
|
||||||
|
Loading…
Reference in New Issue
Block a user