aboutsummaryrefslogtreecommitdiff
path: root/nuttx/include/nuttx/analog/pga11x.h
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/include/nuttx/analog/pga11x.h')
-rw-r--r--nuttx/include/nuttx/analog/pga11x.h390
1 files changed, 0 insertions, 390 deletions
diff --git a/nuttx/include/nuttx/analog/pga11x.h b/nuttx/include/nuttx/analog/pga11x.h
deleted file mode 100644
index 8b04dee19..000000000
--- a/nuttx/include/nuttx/analog/pga11x.h
+++ /dev/null
@@ -1,390 +0,0 @@
-/****************************************************************************
- * include/nuttx/analog/pga11x.h
- *
- * Copyright (C) 2012 Gregory Nutt. All rights reserved.
- * Authors: Gregory Nutt <gnutt@nuttx.org>
- *
- * References:
- * "PGA112, PGA113, PGA116, PGA117: Zerø-Drift PROGRAMMABLE GAIN AMPLIFIER
- * with MUX", SBOS424B, March 2008, Revised September 2008, Texas
- * Instruments Incorporated"
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#ifndef __INCLUDE_NUTTX_ANALOG_PGA11X_H
-#define __INCLUDE_NUTTX_ANALOG_PGA11X_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-#include <nuttx/spi.h>
-
-#if defined(CONFIG_ADC) && defined(CONFIG_ADC_PGA11X)
-
-/****************************************************************************
- * Pre-Processor Definitions
- ****************************************************************************/
-/* Configuration ************************************************************/
-/* Prerequisites:
- * CONFIG_ADC=y is needed to enable support for analog input devices
- *
- * CONFIG_ADC_PGA11X
- * Enables support for the PGA11X driver (Needs CONFIG_ADC)
- * CONFIG_PGA11X_SPIFREQUENCY
- * SPI frequency. Default 1MHz
- * CONFIG_PGA11X_DAISYCHAIN
- * Use two PGA116/7's in Daisy Chain commands.
- * CONFIG_PGA11X_SPIMODE
- * SPI Mode. The specification says that the device operates in Mode 0 or
- * Mode 3. But sometimes you need to tinker with this to get things to
- * work correctly. Default: Mode 0
- * CONFIG_PGA11X_MULTIPLE
- * Can be defined to support multiple PGA11X devices on board. Each
- * device will require a customized SPI interface to distinguish them
- * When SPI_SELECT is called with devid=SPIDEV_MUX.
- *
- * Other settings that effect the driver:
- * CONFIG_SPI_OWNBUS -- If the PGA117 is enabled, this must be set to 'y'
- * if the PGA117 is the only device on the SPI bus;
- * CONFIG_DEBUG_SPI -- With CONFIG_DEBUG and CONFIG_DEBUG_VERBOSE,
- * this will enable debug output from the PGA117 driver.
- */
-
-#ifndef CONFIG_PGA11X_SPIFREQUENCY
-# define CONFIG_PGA11X_SPIFREQUENCY 1000000
-#endif
-
-#ifndef CONFIG_PGA11X_SPIMODE
-# define CONFIG_PGA11X_SPIMODE SPIDEV_MODE0
-#endif
-
-/* PGA11x Commands **********************************************************/
-/* Write command Gain Selection Bits (PGA112/PGA113)
- *
- * the PGA112 and PGA116 provide binary gain selections (1, 2, 4, 8, 16, 32,
- * 64, 128); the PGA113 and PGA117 provide scope gain selections (1, 2, 5, 10,
- * 20, 50, 100, 200).
- */
-
-#define PGA11X_GAIN_1 (0) /* Gain=1: Scope Gain=1 */
-#define PGA11X_GAIN_2 (1) /* Gain=2: Scope Gain=2 */
-#define PGA11X_GAIN_4 (2) /* Gain=4: Scope Gain=5 */
-#define PGA11X_GAIN_5 (2) /* Gain=4: Scope Gain=5 */
-#define PGA11X_GAIN_8 (3) /* Gain=8: Scope Gain=10 */
-#define PGA11X_GAIN_10 (3) /* Gain=8: Scope Gain=10 */
-#define PGA11X_GAIN_16 (4) /* Gain=16: Scope Gain=20 */
-#define PGA11X_GAIN_20 (4) /* Gain=16: Scope Gain=20 */
-#define PGA11X_GAIN_32 (5) /* Gain=32: Scope Gain=50 */
-#define PGA11X_GAIN_50 (5) /* Gain=32: Scope Gain=50 */
-#define PGA11X_GAIN_64 (6) /* Gain=64: Scope Gain=100 */
-#define PGA11X_GAIN_100 (6) /* Gain=64: Scope Gain=100 */
-#define PGA11X_GAIN_128 (7) /* Gain=128: Scope Gain=200 */
-#define PGA11X_GAIN_200 (7) /* Gain=128: Scope Gain=200 */
-
-/* Write command Mux Channel Selection Bits
- *
- * The PGA112/PGA113 have a two-channel input MUX; the PGA116/PGA117 have a
- * 10-channel input MUX.
- */
-
-#define PGA11X_CHAN_VCAL (0) /* VCAL/CH0 */
-#define PGA11X_CHAN_CH0 (0) /* VCAL/CH0 */
-#define PGA11X_CHAN_CH1 (1) /* CH1 */
-#define PGA11X_CHAN_CH2 (2) /* CH2 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH3 (3) /* CH3 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH4 (4) /* CH4 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH5 (5) /* CH5 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH6 (6) /* CH6 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH7 (7) /* CH7 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH8 (8) /* CH8 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CH9 (9) /* CH9 (PGA116/PGA117 only) */
-#define PGA11X_CHAN_CAL1 (12) /* CAL1: connects to GND */
-#define PGA11X_CHAN_CAL2 (13) /* CAL2: connects to 0.9VCAL */
-#define PGA11X_CHAN_CAL3 (14) /* CAL3: connects to 0.1VCAL */
-#define PGA11X_CHAN_CAL4 (15) /* CAL4: connects to VREF */
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/* Handle used to reference the particular PGA11X instance */
-
-typedef FAR void *PGA11X_HANDLE;
-
-/* Settings for one device in a daisy-chain */
-
-#ifdef CONFIG_PGA11X_DAISYCHAIN
-struct pga11x_usettings_s
-{
- uint8_t channel; /* See PGA11X_CHAN_* definitions */
- uint8_t gain; /* See PGA11X_GAIN_* definitions */
-};
-#endif
-
-/* These structures are used to encode gain and channel settings. This
- * includes both devices in the case of a daisy-chained configuration.
- * NOTE: This this logic is currently limited to only 2 devices in the
- * daisy-chain.
- */
-
-struct pga11x_settings_s
-{
-#ifndef CONFIG_PGA11X_DAISYCHAIN
- uint8_t channel; /* See PGA11X_CHAN_* definitions */
- uint8_t gain; /* See PGA11X_GAIN_* definitions */
-#else
- struct
- {
- uint8_t channel; /* See PGA11X_CHAN_* definitions */
- uint8_t gain; /* See PGA11X_GAIN_* definitions */
- } u1;
-
- struct
- {
- uint8_t channel; /* See PGA11X_CHAN_* definitions */
- uint8_t gain; /* See PGA11X_GAIN_* definitions */
- } u2;
-#endif
-};
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-/****************************************************************************
- * Name: pga11x_initialize
- *
- * Description:
- * Initialize the PGA117 amplifier/multiplexer(s).
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- *
- * Returned Value:
- * On success, a non-NULL opaque handle is returned; a NULL is returned
- * on any failure. This handle may be used with the other PGA117 interface
- * functions to control the multiplexer
- *
- ****************************************************************************/
-
-EXTERN PGA11X_HANDLE pga11x_initialize(FAR struct spi_dev_s *spi);
-
-/****************************************************************************
- * Name: pga11x_select
- *
- * Description:
- * Select an input channel and gain for all PGA11xs.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_select() configures
- * both chips in the daisy-chain. pga11x_uselect() is provided to support
- * configuring the parts in the daisychain independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * settings - New channel and gain settings
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-EXTERN int pga11x_select(PGA11X_HANDLE handle,
- FAR const struct pga11x_settings_s *settings);
-
-/****************************************************************************
- * Name: pga11x_uselect
- *
- * Description:
- * Select an input channel and gain for one PGA11x.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_uselect() configures
- * one chips in the daisy-chain.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * pos - Position of the chip in the daisy chain (0 or 1)
- * settings - New channel and gain settings
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-#ifdef CONFIG_PGA11X_DAISYCHAIN
-EXTERN int pga11x_uselect(PGA11X_HANDLE handle, int pos,
- FAR const struct pga11x_usettings_s *settings);
-#endif
-
-/****************************************************************************
- * Name: pga11x_read
- *
- * Description:
- * Read from all PGA117 amplifier/multiplexers.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_read() reads from
- * both chips in the daisy-chain. pga11x_uread() is provided to support
- * accessing the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * settings - Returned channel and gain settings
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-EXTERN int pga11x_read(PGA11X_HANDLE handle,
- FAR struct pga11x_settings_s *settings);
-
-/****************************************************************************
- * Name: pga11x_uread
- *
- * Description:
- * Read from one PGA117 amplifier/multiplexer.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_read() reads
- * the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * pos - Position of the chip in the daisy chain (0 or 1)
- * settings - Returned channel and gain settings
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-#ifdef CONFIG_PGA11X_DAISYCHAIN
-EXTERN int pga11x_uread(PGA11X_HANDLE handle, int pos,
- FAR struct pga11x_usettings_s *settings);
-#endif
-
-/****************************************************************************
- * Name: pga11x_shutdown
- *
- * Description:
- * Put all PGA11x;'s in shutdown down mode.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_shutdown() controls
- * both chips in the daisy-chain. pga11x_ushutdown() is provided to
- * control the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-EXTERN int pga11x_shutdown(PGA11X_HANDLE handle);
-
-/****************************************************************************
- * Name: pga11x_ushutdown
- *
- * Description:
- * Put one PGA11x in shutdown down mode.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_ushutdown() is
- * provided to shutdown the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * pos - Position of the chip in the daisy chain (0 or 1)
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-#ifdef CONFIG_PGA11X_DAISYCHAIN
-EXTERN int pga11x_ushutdown(PGA11X_HANDLE handle, int pos);
-#endif
-
-/****************************************************************************
- * Name: pga11x_enable
- *
- * Description:
- * Take all PGA11x's out of shutdown down mode.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_enable() controls
- * both chips in the daisy-chain. pga11x_uenable() is provided to
- * control the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-EXTERN int pga11x_enable(PGA11X_HANDLE handle);
-
-/****************************************************************************
- * Name: pga11x_uenable
- *
- * Description:
- * Take one PGA11x out of shutdown down mode.
- *
- * If CONFIG_PGA11X_DAISYCHAIN is defined, then pga11x_uenable() is
- * provided to enable the parts independently.
- *
- * Input Parameters:
- * spi - An SPI "bottom half" device driver instance
- * pos - Position of the chip in the daisy chain (0 or 1)
- *
- * Returned Value:
- * Zero on sucess; a negated errno value on failure.
- *
- ****************************************************************************/
-
-#ifdef CONFIG_PGA11X_DAISYCHAIN
-EXTERN int pga11x_uenable(PGA11X_HANDLE handle, int pos);
-#endif
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CONFIG_ADC && CONFIG_ADC_PGA11X */
-#endif /* __INCLUDE_NUTTX_ANALOG_PGA11X_H */