|
Linux Kernel
3.7.1
|
#include <sound/core.h>#include <sound/pcm.h>#include <sound/ac97_codec.h>#include <sound/initval.h>#include <linux/types.h>#include <linux/list.h>#include <linux/input.h>#include <linux/platform_device.h>Go to the source code of this file.
Data Structures | |
| struct | wm97xx_data |
| struct | wm97xx_codec_drv |
| struct | wm97xx_mach_ops |
| struct | wm97xx |
| struct | wm97xx_batt_pdata |
| struct | wm97xx_pdata |
Macros | |
| #define | WM97xx_GENERIC 0x0000 |
| #define | WM97xx_WM1613 0x1613 |
| #define | AC97_WM97XX_DIGITISER1 0x76 |
| #define | AC97_WM97XX_DIGITISER2 0x78 |
| #define | AC97_WM97XX_DIGITISER_RD 0x7a |
| #define | AC97_WM9713_DIG1 0x74 |
| #define | AC97_WM9713_DIG2 AC97_WM97XX_DIGITISER1 |
| #define | AC97_WM9713_DIG3 AC97_WM97XX_DIGITISER2 |
| #define | WM97XX_POLL 0x8000 /* initiate a polling measurement */ |
| #define | WM97XX_ADCSEL_X 0x1000 /* x coord measurement */ |
| #define | WM97XX_ADCSEL_Y 0x2000 /* y coord measurement */ |
| #define | WM97XX_ADCSEL_PRES 0x3000 /* pressure measurement */ |
| #define | WM97XX_AUX_ID1 0x4000 |
| #define | WM97XX_AUX_ID2 0x5000 |
| #define | WM97XX_AUX_ID3 0x6000 |
| #define | WM97XX_AUX_ID4 0x7000 |
| #define | WM97XX_ADCSEL_MASK 0x7000 /* ADC selection mask */ |
| #define | WM97XX_COO 0x0800 /* enable coordinate mode */ |
| #define | WM97XX_CTC 0x0400 /* enable continuous mode */ |
| #define | WM97XX_CM_RATE_93 0x0000 /* 93.75Hz continuous rate */ |
| #define | WM97XX_CM_RATE_187 0x0100 /* 187.5Hz continuous rate */ |
| #define | WM97XX_CM_RATE_375 0x0200 /* 375Hz continuous rate */ |
| #define | WM97XX_CM_RATE_750 0x0300 /* 750Hz continuous rate */ |
| #define | WM97XX_CM_RATE_8K 0x00f0 /* 8kHz continuous rate */ |
| #define | WM97XX_CM_RATE_12K 0x01f0 /* 12kHz continuous rate */ |
| #define | WM97XX_CM_RATE_24K 0x02f0 /* 24kHz continuous rate */ |
| #define | WM97XX_CM_RATE_48K 0x03f0 /* 48kHz continuous rate */ |
| #define | WM97XX_CM_RATE_MASK 0x03f0 |
| #define | WM97XX_RATE(i) (((i & 3) << 8) | ((i & 4) ? 0xf0 : 0)) |
| #define | WM97XX_DELAY(i) ((i << 4) & 0x00f0) /* sample delay times */ |
| #define | WM97XX_DELAY_MASK 0x00f0 |
| #define | WM97XX_SLEN 0x0008 /* slot read back enable */ |
| #define | WM97XX_SLT(i) ((i - 5) & 0x7) /* panel slot (5-11) */ |
| #define | WM97XX_SLT_MASK 0x0007 |
| #define | WM97XX_PRP_DETW 0x4000 /* detect on, digitise off, wake */ |
| #define | WM97XX_PRP_DET 0x8000 /* detect on, digitise off, no wake */ |
| #define | WM97XX_PRP_DET_DIG 0xc000 /* setect on, digitise on */ |
| #define | WM97XX_RPR 0x2000 /* wake up on pen down */ |
| #define | WM97XX_PEN_DOWN 0x8000 /* pen is down */ |
| #define | WM9712_45W 0x1000 /* set for 5-wire touchscreen */ |
| #define | WM9712_PDEN 0x0800 /* measure only when pen down */ |
| #define | WM9712_WAIT 0x0200 /* wait until adc is read before next sample */ |
| #define | WM9712_PIL 0x0100 /* current used for pressure measurement. set 400uA else 200uA */ |
| #define | WM9712_MASK_HI 0x0040 /* hi on mask pin (47) stops conversions */ |
| #define | WM9712_MASK_EDGE 0x0080 /* rising/falling edge on pin delays sample */ |
| #define | WM9712_MASK_SYNC 0x00c0 /* rising/falling edge on mask initiates sample */ |
| #define | WM9712_RPU(i) (i&0x3f) /* internal pull up on pen detect (64k / rpu) */ |
| #define | WM9712_PD(i) (0x1 << i) /* power management */ |
| #define | AC97_WM9712_POWER 0x24 |
| #define | AC97_WM9712_REV 0x58 |
| #define | WM9705_PDEN 0x1000 /* measure only when pen is down */ |
| #define | WM9705_PINV 0x0800 /* inverts sense of pen down output */ |
| #define | WM9705_BSEN 0x0400 /* BUSY flag enable, pin47 is 1 when busy */ |
| #define | WM9705_BINV 0x0200 /* invert BUSY (pin47) output */ |
| #define | WM9705_WAIT 0x0100 /* wait until adc is read before next sample */ |
| #define | WM9705_PIL 0x0080 /* current used for pressure measurement. set 400uA else 200uA */ |
| #define | WM9705_PHIZ 0x0040 /* set PHONE and PCBEEP inputs to high impedance */ |
| #define | WM9705_MASK_HI 0x0010 /* hi on mask stops conversions */ |
| #define | WM9705_MASK_EDGE 0x0020 /* rising/falling edge on pin delays sample */ |
| #define | WM9705_MASK_SYNC 0x0030 /* rising/falling edge on mask initiates sample */ |
| #define | WM9705_PDD(i) (i & 0x000f) /* pen detect comparator threshold */ |
| #define | WM9713_PDPOL 0x0400 /* Pen down polarity */ |
| #define | WM9713_POLL 0x0200 /* initiate a polling measurement */ |
| #define | WM9713_CTC 0x0100 /* enable continuous mode */ |
| #define | WM9713_ADCSEL_X 0x0002 /* X measurement */ |
| #define | WM9713_ADCSEL_Y 0x0004 /* Y measurement */ |
| #define | WM9713_ADCSEL_PRES 0x0008 /* Pressure measurement */ |
| #define | WM9713_COO 0x0001 /* enable coordinate mode */ |
| #define | WM9713_45W 0x1000 /* set for 5 wire panel */ |
| #define | WM9713_PDEN 0x0800 /* measure only when pen down */ |
| #define | WM9713_ADCSEL_MASK 0x00fe /* ADC selection mask */ |
| #define | WM9713_WAIT 0x0200 /* coordinate wait */ |
| #define | TS_COMP1 0x0 |
| #define | TS_COMP2 0x1 |
| #define | TS_BMON 0x2 |
| #define | TS_WIPER 0x3 |
| #define | WM97XX_ID1 0x574d |
| #define | WM9712_ID2 0x4c12 |
| #define | WM9705_ID2 0x4c05 |
| #define | WM9713_ID2 0x4c13 |
| #define | WM97XX_MAX_GPIO 16 |
| #define | WM97XX_GPIO_1 (1 << 1) |
| #define | WM97XX_GPIO_2 (1 << 2) |
| #define | WM97XX_GPIO_3 (1 << 3) |
| #define | WM97XX_GPIO_4 (1 << 4) |
| #define | WM97XX_GPIO_5 (1 << 5) |
| #define | WM97XX_GPIO_6 (1 << 6) |
| #define | WM97XX_GPIO_7 (1 << 7) |
| #define | WM97XX_GPIO_8 (1 << 8) |
| #define | WM97XX_GPIO_9 (1 << 9) |
| #define | WM97XX_GPIO_10 (1 << 10) |
| #define | WM97XX_GPIO_11 (1 << 11) |
| #define | WM97XX_GPIO_12 (1 << 12) |
| #define | WM97XX_GPIO_13 (1 << 13) |
| #define | WM97XX_GPIO_14 (1 << 14) |
| #define | WM97XX_GPIO_15 (1 << 15) |
| #define | AC97_LINK_FRAME 21 /* time in uS for AC97 link frame */ |
| #define | RC_AGAIN 0x00000001 |
| #define | RC_VALID 0x00000002 |
| #define | RC_PENUP 0x00000004 |
| #define | RC_PENDOWN 0x00000008 |
| #define | WM97XX_DIG_START 0x1 |
| #define | WM97XX_DIG_STOP 0x2 |
| #define | WM97XX_PHY_INIT 0x3 |
| #define | WM97XX_AUX_PREPARE 0x4 |
| #define | WM97XX_DIG_RESTORE 0x5 |
Enumerations | |
| enum | wm97xx_gpio_status { WM97XX_GPIO_HIGH, WM97XX_GPIO_LOW } |
| enum | wm97xx_gpio_dir { WM97XX_GPIO_IN, WM97XX_GPIO_OUT } |
| enum | wm97xx_gpio_pol { WM97XX_GPIO_POL_HIGH, WM97XX_GPIO_POL_LOW } |
| enum | wm97xx_gpio_sticky { WM97XX_GPIO_STICKY, WM97XX_GPIO_NOTSTICKY } |
| enum | wm97xx_gpio_wake { WM97XX_GPIO_WAKE, WM97XX_GPIO_NOWAKE } |
Functions | |
| enum wm97xx_gpio_status | wm97xx_get_gpio (struct wm97xx *wm, u32 gpio) |
| void | wm97xx_set_gpio (struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_status status) |
| void | wm97xx_config_gpio (struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_dir dir, enum wm97xx_gpio_pol pol, enum wm97xx_gpio_sticky sticky, enum wm97xx_gpio_wake wake) |
| void | wm97xx_set_suspend_mode (struct wm97xx *wm, u16 mode) |
| int | wm97xx_reg_read (struct wm97xx *wm, u16 reg) |
| void | wm97xx_reg_write (struct wm97xx *wm, u16 reg, u16 val) |
| int | wm97xx_read_aux_adc (struct wm97xx *wm, u16 adcsel) |
| int | wm97xx_register_mach_ops (struct wm97xx *, struct wm97xx_mach_ops *) |
| void | wm97xx_unregister_mach_ops (struct wm97xx *) |
Variables | |
| struct wm97xx_codec_drv | wm9705_codec |
| struct wm97xx_codec_drv | wm9712_codec |
| struct wm97xx_codec_drv | wm9713_codec |
| #define AC97_WM9713_DIG2 AC97_WM97XX_DIGITISER1 |
| #define AC97_WM9713_DIG3 AC97_WM97XX_DIGITISER2 |
| #define WM9705_BSEN 0x0400 /* BUSY flag enable, pin47 is 1 when busy */ |
| #define WM9705_MASK_EDGE 0x0020 /* rising/falling edge on pin delays sample */ |
| #define WM9705_MASK_HI 0x0010 /* hi on mask stops conversions */ |
| #define WM9705_MASK_SYNC 0x0030 /* rising/falling edge on mask initiates sample */ |
| #define WM9705_PDEN 0x1000 /* measure only when pen is down */ |
| #define WM9705_PHIZ 0x0040 /* set PHONE and PCBEEP inputs to high impedance */ |
| #define WM9705_PIL 0x0080 /* current used for pressure measurement. set 400uA else 200uA */ |
| #define WM9705_PINV 0x0800 /* inverts sense of pen down output */ |
| #define WM9705_WAIT 0x0100 /* wait until adc is read before next sample */ |
| #define WM9712_MASK_EDGE 0x0080 /* rising/falling edge on pin delays sample */ |
| #define WM9712_MASK_HI 0x0040 /* hi on mask pin (47) stops conversions */ |
| #define WM9712_MASK_SYNC 0x00c0 /* rising/falling edge on mask initiates sample */ |
| #define WM9712_PIL 0x0100 /* current used for pressure measurement. set 400uA else 200uA */ |
| #define WM9712_WAIT 0x0200 /* wait until adc is read before next sample */ |
| #define WM9713_ADCSEL_PRES 0x0008 /* Pressure measurement */ |
| #define WM9713_PDEN 0x0800 /* measure only when pen down */ |
| #define WM9713_POLL 0x0200 /* initiate a polling measurement */ |
| #define WM97XX_ADCSEL_PRES 0x3000 /* pressure measurement */ |
| #define WM97XX_CM_RATE_12K 0x01f0 /* 12kHz continuous rate */ |
| #define WM97XX_CM_RATE_187 0x0100 /* 187.5Hz continuous rate */ |
| #define WM97XX_CM_RATE_24K 0x02f0 /* 24kHz continuous rate */ |
| #define WM97XX_CM_RATE_375 0x0200 /* 375Hz continuous rate */ |
| #define WM97XX_CM_RATE_48K 0x03f0 /* 48kHz continuous rate */ |
| #define WM97XX_CM_RATE_750 0x0300 /* 750Hz continuous rate */ |
| #define WM97XX_CM_RATE_93 0x0000 /* 93.75Hz continuous rate */ |
| #define WM97XX_POLL 0x8000 /* initiate a polling measurement */ |
| #define WM97XX_PRP_DET 0x8000 /* detect on, digitise off, no wake */ |
| #define WM97XX_PRP_DET_DIG 0xc000 /* setect on, digitise on */ |
| #define WM97XX_PRP_DETW 0x4000 /* detect on, digitise off, wake */ |
| enum wm97xx_gpio_dir |
| enum wm97xx_gpio_pol |
| enum wm97xx_gpio_status |
| enum wm97xx_gpio_sticky |
| enum wm97xx_gpio_wake |
| void wm97xx_config_gpio | ( | struct wm97xx * | wm, |
| u32 | gpio, | ||
| enum wm97xx_gpio_dir | dir, | ||
| enum wm97xx_gpio_pol | pol, | ||
| enum wm97xx_gpio_sticky | sticky, | ||
| enum wm97xx_gpio_wake | wake | ||
| ) |
Definition at line 231 of file wm97xx-core.c.
| enum wm97xx_gpio_status wm97xx_get_gpio | ( | struct wm97xx * | wm, |
| u32 | gpio | ||
| ) |
wm97xx_read_aux_adc - Read the aux adc. : wm97xx device. : codec ADC to be read
Reads the selected AUX ADC.
Definition at line 124 of file wm97xx-core.c.
Definition at line 97 of file wm97xx-core.c.
| int wm97xx_register_mach_ops | ( | struct wm97xx * | , |
| struct wm97xx_mach_ops * | |||
| ) |
Definition at line 799 of file wm97xx-core.c.
| void wm97xx_set_gpio | ( | struct wm97xx * | wm, |
| u32 | gpio, | ||
| enum wm97xx_gpio_status | status | ||
| ) |
Definition at line 284 of file wm97xx-core.c.
Definition at line 814 of file wm97xx-core.c.
| struct wm97xx_codec_drv wm9705_codec |
| struct wm97xx_codec_drv wm9712_codec |
| struct wm97xx_codec_drv wm9713_codec |
1.8.2