Linux Kernel
3.7.1
|
Go to the source code of this file.
Data Structures | |
struct | ucb1x00_plat_data |
struct | ucb1x00 |
struct | ucb1x00_dev |
struct | ucb1x00_driver |
Macros | |
#define | UCB_IO_DATA 0x00 |
#define | UCB_IO_DIR 0x01 |
#define | UCB_IO_0 (1 << 0) |
#define | UCB_IO_1 (1 << 1) |
#define | UCB_IO_2 (1 << 2) |
#define | UCB_IO_3 (1 << 3) |
#define | UCB_IO_4 (1 << 4) |
#define | UCB_IO_5 (1 << 5) |
#define | UCB_IO_6 (1 << 6) |
#define | UCB_IO_7 (1 << 7) |
#define | UCB_IO_8 (1 << 8) |
#define | UCB_IO_9 (1 << 9) |
#define | UCB_IE_RIS 0x02 |
#define | UCB_IE_FAL 0x03 |
#define | UCB_IE_STATUS 0x04 |
#define | UCB_IE_CLEAR 0x04 |
#define | UCB_IE_ADC (1 << 11) |
#define | UCB_IE_TSPX (1 << 12) |
#define | UCB_IE_TSMX (1 << 13) |
#define | UCB_IE_TCLIP (1 << 14) |
#define | UCB_IE_ACLIP (1 << 15) |
#define | UCB_IRQ_TSPX 12 |
#define | UCB_TC_A 0x05 |
#define | UCB_TC_A_LOOP (1 << 7) /* UCB1200 */ |
#define | UCB_TC_A_AMPL (1 << 7) /* UCB1300 */ |
#define | UCB_TC_B 0x06 |
#define | UCB_TC_B_VOICE_ENA (1 << 3) |
#define | UCB_TC_B_CLIP (1 << 4) |
#define | UCB_TC_B_ATT (1 << 6) |
#define | UCB_TC_B_SIDE_ENA (1 << 11) |
#define | UCB_TC_B_MUTE (1 << 13) |
#define | UCB_TC_B_IN_ENA (1 << 14) |
#define | UCB_TC_B_OUT_ENA (1 << 15) |
#define | UCB_AC_A 0x07 |
#define | UCB_AC_B 0x08 |
#define | UCB_AC_B_LOOP (1 << 8) |
#define | UCB_AC_B_MUTE (1 << 13) |
#define | UCB_AC_B_IN_ENA (1 << 14) |
#define | UCB_AC_B_OUT_ENA (1 << 15) |
#define | UCB_TS_CR 0x09 |
#define | UCB_TS_CR_TSMX_POW (1 << 0) |
#define | UCB_TS_CR_TSPX_POW (1 << 1) |
#define | UCB_TS_CR_TSMY_POW (1 << 2) |
#define | UCB_TS_CR_TSPY_POW (1 << 3) |
#define | UCB_TS_CR_TSMX_GND (1 << 4) |
#define | UCB_TS_CR_TSPX_GND (1 << 5) |
#define | UCB_TS_CR_TSMY_GND (1 << 6) |
#define | UCB_TS_CR_TSPY_GND (1 << 7) |
#define | UCB_TS_CR_MODE_INT (0 << 8) |
#define | UCB_TS_CR_MODE_PRES (1 << 8) |
#define | UCB_TS_CR_MODE_POS (2 << 8) |
#define | UCB_TS_CR_BIAS_ENA (1 << 11) |
#define | UCB_TS_CR_TSPX_LOW (1 << 12) |
#define | UCB_TS_CR_TSMX_LOW (1 << 13) |
#define | UCB_ADC_CR 0x0a |
#define | UCB_ADC_SYNC_ENA (1 << 0) |
#define | UCB_ADC_VREFBYP_CON (1 << 1) |
#define | UCB_ADC_INP_TSPX (0 << 2) |
#define | UCB_ADC_INP_TSMX (1 << 2) |
#define | UCB_ADC_INP_TSPY (2 << 2) |
#define | UCB_ADC_INP_TSMY (3 << 2) |
#define | UCB_ADC_INP_AD0 (4 << 2) |
#define | UCB_ADC_INP_AD1 (5 << 2) |
#define | UCB_ADC_INP_AD2 (6 << 2) |
#define | UCB_ADC_INP_AD3 (7 << 2) |
#define | UCB_ADC_EXT_REF (1 << 5) |
#define | UCB_ADC_START (1 << 7) |
#define | UCB_ADC_ENA (1 << 15) |
#define | UCB_ADC_DATA 0x0b |
#define | UCB_ADC_DAT_VAL (1 << 15) |
#define | UCB_ADC_DAT(x) (((x) & 0x7fe0) >> 5) |
#define | UCB_ID 0x0c |
#define | UCB_ID_1200 0x1004 |
#define | UCB_ID_1300 0x1005 |
#define | UCB_ID_TC35143 0x9712 |
#define | UCB_MODE 0x0d |
#define | UCB_MODE_DYN_VFLAG_ENA (1 << 12) |
#define | UCB_MODE_AUD_OFF_CAN (1 << 13) |
#define | classdev_to_ucb1x00(cd) container_of(cd, struct ucb1x00, dev) |
#define | UCB_NOSYNC (0) |
#define | UCB_SYNC (1) |
Enumerations | |
enum | ucb1x00_reset { UCB_RST_PROBE, UCB_RST_RESUME, UCB_RST_SUSPEND, UCB_RST_REMOVE, UCB_RST_PROBE_FAIL } |
Functions | |
int | ucb1x00_register_driver (struct ucb1x00_driver *) |
void | ucb1x00_unregister_driver (struct ucb1x00_driver *) |
void | ucb1x00_io_set_dir (struct ucb1x00 *ucb, unsigned int, unsigned int) |
void | ucb1x00_io_write (struct ucb1x00 *ucb, unsigned int, unsigned int) |
unsigned int | ucb1x00_io_read (struct ucb1x00 *ucb) |
unsigned int | ucb1x00_adc_read (struct ucb1x00 *ucb, int adc_channel, int sync) |
void | ucb1x00_adc_enable (struct ucb1x00 *ucb) |
void | ucb1x00_adc_disable (struct ucb1x00 *ucb) |
enum ucb1x00_reset |
ucb1x00_adc_disable - disable the ADC converter : UCB1x00 structure describing chip
Disable the ADC converter and release the ADC mutex.
Definition at line 268 of file ucb1x00-core.c.
ucb1x00_adc_enable - enable the ADC converter : UCB1x00 structure describing chip
Enable the ucb1x00 and ADC converter on the UCB1x00 for use. Any code wishing to use the ADC converter must call this function prior to using it.
This function takes the ADC mutex to prevent two or more concurrent uses, and therefore may sleep. As a result, it can only be called from process context, not interrupt context.
You should release the ADC as soon as possible using ucb1x00_adc_disable.
Definition at line 214 of file ucb1x00-core.c.
ucb1x00_adc_read - read the specified ADC channel : UCB1x00 structure describing chip : ADC channel mask : wait for syncronisation pulse.
Start an ADC conversion and wait for the result. Note that synchronised ADC conversions (via the ADCSYNC pin) must wait until the trigger is asserted and the conversion is finished.
This function currently spins waiting for the conversion to complete (2 frames max without sync).
If called for a synchronised ADC conversion, it may sleep with the ADC mutex held.
Definition at line 240 of file ucb1x00-core.c.
ucb1x00_io_read - read the current state of the IO pins : UCB1x00 structure describing chip
Return a bitfield describing the logic state of the ten general purpose IO pins.
ucb1x00_enable must have been called to enable the comms before using this function.
This function does not take any mutexes or spinlocks.
Definition at line 105 of file ucb1x00-core.c.
ucb1x00_io_set_dir - set IO direction : UCB1x00 structure describing chip : bitfield of IO pins to be set as inputs : bitfield of IO pins to be set as outputs
Set the IO direction of the ten general purpose IO pins on the UCB1x00 chip. The bitfield has priority over the bitfield, in that if you specify a pin as both input and output, it will end up as an input.
ucb1x00_enable must have been called to enable the comms before using this function.
This function takes a spinlock, disabling interrupts.
Definition at line 53 of file ucb1x00-core.c.
ucb1x00_io_write - set or clear IO outputs : UCB1x00 structure describing chip : bitfield of IO pins to set to logic '1' : bitfield of IO pins to set to logic '0'
Set the IO output state of the specified IO pins. The value is retained if the pins are subsequently configured as inputs. The bitfield has priority over the bitfield - outputs will be cleared.
ucb1x00_enable must have been called to enable the comms before using this function.
This function takes a spinlock, disabling interrupts.
Definition at line 81 of file ucb1x00-core.c.
int ucb1x00_register_driver | ( | struct ucb1x00_driver * | ) |
Definition at line 645 of file ucb1x00-core.c.
void ucb1x00_unregister_driver | ( | struct ucb1x00_driver * | ) |
Definition at line 659 of file ucb1x00-core.c.