diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-04-14 12:26:49 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-04-14 12:26:49 -0600 |
commit | 09c8278b8677125f5160be9593fccfd53286bbfc (patch) | |
tree | 3a9ab0b135a77d6f3c97e134afdb1315699cdc56 /apps/examples/touchscreen | |
parent | df4aeab705353232c78e614b56296e585f833fa4 (diff) | |
download | px4-nuttx-09c8278b8677125f5160be9593fccfd53286bbfc.tar.gz px4-nuttx-09c8278b8677125f5160be9593fccfd53286bbfc.tar.bz2 px4-nuttx-09c8278b8677125f5160be9593fccfd53286bbfc.zip |
examples/touchscreen: Add a configuration option to indicate that there is or is not an architecture-specific initialization function
Diffstat (limited to 'apps/examples/touchscreen')
-rw-r--r-- | apps/examples/touchscreen/Kconfig | 21 | ||||
-rw-r--r-- | apps/examples/touchscreen/tc_main.c | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/apps/examples/touchscreen/Kconfig b/apps/examples/touchscreen/Kconfig index 5e7739c35..b75546c8b 100644 --- a/apps/examples/touchscreen/Kconfig +++ b/apps/examples/touchscreen/Kconfig @@ -43,4 +43,25 @@ config EXAMPLES_TOUCHSCREEN_MOUSE The touchscreen test can also be configured to work with a mouse driver by setting this option. +config EXAMPLES_TOUCHSCREEN_ARCHINIT + bool "Architecture-specific initialization" + default y + ---help--- + By default, the touchscreen example will call arch_tcinitialize() to + register the touchscreen device before it attempts to open it. + Similarly, it will call arch_tcuninitialize() to unregister the + touchscreen device when it is finished. + + This works well for the typical touchscreen controller but there are + other devices that cannot be initialized and uninitialized in this + fashion. Consider a USB mouse, fo example. The USB mouse will be + registered when the mouse is connected and unregistered when the + mouse is disconnected. + + So, in cases like this, there are two options: (1) provide dummy + arch_tcinitialize() and arch_tcuninitialize() just to satisfy the + linking requirements or, (2) select this option. if this option is + de-selected, then the arch_tcinitialize() and arch_tcuninitialize() will + never be called. + endif diff --git a/apps/examples/touchscreen/tc_main.c b/apps/examples/touchscreen/tc_main.c index 0eb83ca4e..1c20712a3 100644 --- a/apps/examples/touchscreen/tc_main.c +++ b/apps/examples/touchscreen/tc_main.c @@ -118,6 +118,7 @@ int tc_main(int argc, char *argv[]) message("tc_main: nsamples: %d\n", CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES); #endif +#ifdef CONFIG_EXAMPLES_TOUCHSCREEN_ARCHINIT /* Initialization of the touchscreen hardware is performed by logic * external to this test. */ @@ -130,6 +131,7 @@ int tc_main(int argc, char *argv[]) errval = 1; goto errout; } +#endif /* Open the touchscreen device for reading */ @@ -249,8 +251,12 @@ int tc_main(int argc, char *argv[]) errout_with_dev: close(fd); + errout_with_tc: +#ifdef CONFIG_EXAMPLES_TOUCHSCREEN_ARCHINIT arch_tcuninitialize(); +#endif + errout: message("Terminating!\n"); msgflush(); |