diff options
Diffstat (limited to 'include/linux/i2c')
| -rw-r--r-- | include/linux/i2c/ads1015.h | 36 | ||||
| -rw-r--r-- | include/linux/i2c/atmel_mxt_ts.h (renamed from include/linux/i2c/qt602240_ts.h) | 34 | ||||
| -rw-r--r-- | include/linux/i2c/max6639.h | 14 | ||||
| -rw-r--r-- | include/linux/i2c/mcs.h | 1 | ||||
| -rw-r--r-- | include/linux/i2c/pmbus.h | 45 | ||||
| -rw-r--r-- | include/linux/i2c/pxa-i2c.h | 82 | ||||
| -rw-r--r-- | include/linux/i2c/twl.h | 6 | ||||
| -rw-r--r-- | include/linux/i2c/twl4030-madc.h | 141 |
8 files changed, 343 insertions, 16 deletions
diff --git a/include/linux/i2c/ads1015.h b/include/linux/i2c/ads1015.h new file mode 100644 index 000000000000..d5aa2a045669 --- /dev/null +++ b/include/linux/i2c/ads1015.h | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | /* | ||
| 2 | * Platform Data for ADS1015 12-bit 4-input ADC | ||
| 3 | * (C) Copyright 2010 | ||
| 4 | * Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 19 | */ | ||
| 20 | |||
| 21 | #ifndef LINUX_ADS1015_H | ||
| 22 | #define LINUX_ADS1015_H | ||
| 23 | |||
| 24 | #define ADS1015_CHANNELS 8 | ||
| 25 | |||
| 26 | struct ads1015_channel_data { | ||
| 27 | bool enabled; | ||
| 28 | unsigned int pga; | ||
| 29 | unsigned int data_rate; | ||
| 30 | }; | ||
| 31 | |||
| 32 | struct ads1015_platform_data { | ||
| 33 | struct ads1015_channel_data channel_data[ADS1015_CHANNELS]; | ||
| 34 | }; | ||
| 35 | |||
| 36 | #endif /* LINUX_ADS1015_H */ | ||
diff --git a/include/linux/i2c/qt602240_ts.h b/include/linux/i2c/atmel_mxt_ts.h index c5033e101094..f027f7a63511 100644 --- a/include/linux/i2c/qt602240_ts.h +++ b/include/linux/i2c/atmel_mxt_ts.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * AT42QT602240/ATMXT224 Touchscreen driver | 2 | * Atmel maXTouch Touchscreen driver |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2010 Samsung Electronics Co.Ltd | 4 | * Copyright (C) 2010 Samsung Electronics Co.Ltd |
| 5 | * Author: Joonyoung Shim <jy0922.shim@samsung.com> | 5 | * Author: Joonyoung Shim <jy0922.shim@samsung.com> |
| @@ -10,21 +10,26 @@ | |||
| 10 | * option) any later version. | 10 | * option) any later version. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #ifndef __LINUX_QT602240_TS_H | 13 | #ifndef __LINUX_ATMEL_MXT_TS_H |
| 14 | #define __LINUX_QT602240_TS_H | 14 | #define __LINUX_ATMEL_MXT_TS_H |
| 15 | |||
| 16 | #include <linux/types.h> | ||
| 15 | 17 | ||
| 16 | /* Orient */ | 18 | /* Orient */ |
| 17 | #define QT602240_NORMAL 0x0 | 19 | #define MXT_NORMAL 0x0 |
| 18 | #define QT602240_DIAGONAL 0x1 | 20 | #define MXT_DIAGONAL 0x1 |
| 19 | #define QT602240_HORIZONTAL_FLIP 0x2 | 21 | #define MXT_HORIZONTAL_FLIP 0x2 |
| 20 | #define QT602240_ROTATED_90_COUNTER 0x3 | 22 | #define MXT_ROTATED_90_COUNTER 0x3 |
| 21 | #define QT602240_VERTICAL_FLIP 0x4 | 23 | #define MXT_VERTICAL_FLIP 0x4 |
| 22 | #define QT602240_ROTATED_90 0x5 | 24 | #define MXT_ROTATED_90 0x5 |
| 23 | #define QT602240_ROTATED_180 0x6 | 25 | #define MXT_ROTATED_180 0x6 |
| 24 | #define QT602240_DIAGONAL_COUNTER 0x7 | 26 | #define MXT_DIAGONAL_COUNTER 0x7 |
| 27 | |||
| 28 | /* The platform data for the Atmel maXTouch touchscreen driver */ | ||
| 29 | struct mxt_platform_data { | ||
| 30 | const u8 *config; | ||
| 31 | size_t config_length; | ||
| 25 | 32 | ||
| 26 | /* The platform data for the AT42QT602240/ATMXT224 touchscreen driver */ | ||
| 27 | struct qt602240_platform_data { | ||
| 28 | unsigned int x_line; | 33 | unsigned int x_line; |
| 29 | unsigned int y_line; | 34 | unsigned int y_line; |
| 30 | unsigned int x_size; | 35 | unsigned int x_size; |
| @@ -33,6 +38,7 @@ struct qt602240_platform_data { | |||
| 33 | unsigned int threshold; | 38 | unsigned int threshold; |
| 34 | unsigned int voltage; | 39 | unsigned int voltage; |
| 35 | unsigned char orient; | 40 | unsigned char orient; |
| 41 | unsigned long irqflags; | ||
| 36 | }; | 42 | }; |
| 37 | 43 | ||
| 38 | #endif /* __LINUX_QT602240_TS_H */ | 44 | #endif /* __LINUX_ATMEL_MXT_TS_H */ |
diff --git a/include/linux/i2c/max6639.h b/include/linux/i2c/max6639.h new file mode 100644 index 000000000000..6011c42034da --- /dev/null +++ b/include/linux/i2c/max6639.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | #ifndef _LINUX_MAX6639_H | ||
| 2 | #define _LINUX_MAX6639_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | |||
| 6 | /* platform data for the MAX6639 temperature sensor and fan control */ | ||
| 7 | |||
| 8 | struct max6639_platform_data { | ||
| 9 | bool pwm_polarity; /* Polarity low (0) or high (1, default) */ | ||
| 10 | int ppr; /* Pulses per rotation 1..4 (default == 2) */ | ||
| 11 | int rpm_range; /* 2000, 4000 (default), 8000 or 16000 */ | ||
| 12 | }; | ||
| 13 | |||
| 14 | #endif /* _LINUX_MAX6639_H */ | ||
diff --git a/include/linux/i2c/mcs.h b/include/linux/i2c/mcs.h index 725ae7c313ff..61bb18a4fd3c 100644 --- a/include/linux/i2c/mcs.h +++ b/include/linux/i2c/mcs.h | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #define MCS_KEY_CODE(v) ((v) & 0xffff) | 18 | #define MCS_KEY_CODE(v) ((v) & 0xffff) |
| 19 | 19 | ||
| 20 | struct mcs_platform_data { | 20 | struct mcs_platform_data { |
| 21 | void (*poweron)(bool); | ||
| 21 | void (*cfg_pin)(void); | 22 | void (*cfg_pin)(void); |
| 22 | 23 | ||
| 23 | /* touchscreen */ | 24 | /* touchscreen */ |
diff --git a/include/linux/i2c/pmbus.h b/include/linux/i2c/pmbus.h new file mode 100644 index 000000000000..69280db02c41 --- /dev/null +++ b/include/linux/i2c/pmbus.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* | ||
| 2 | * Hardware monitoring driver for PMBus devices | ||
| 3 | * | ||
| 4 | * Copyright (c) 2010, 2011 Ericsson AB. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 19 | */ | ||
| 20 | |||
| 21 | #ifndef _PMBUS_H_ | ||
| 22 | #define _PMBUS_H_ | ||
| 23 | |||
| 24 | /* flags */ | ||
| 25 | |||
| 26 | /* | ||
| 27 | * PMBUS_SKIP_STATUS_CHECK | ||
| 28 | * | ||
| 29 | * During register detection, skip checking the status register for | ||
| 30 | * communication or command errors. | ||
| 31 | * | ||
| 32 | * Some PMBus chips respond with valid data when trying to read an unsupported | ||
| 33 | * register. For such chips, checking the status register is mandatory when | ||
| 34 | * trying to determine if a chip register exists or not. | ||
| 35 | * Other PMBus chips don't support the STATUS_CML register, or report | ||
| 36 | * communication errors for no explicable reason. For such chips, checking | ||
| 37 | * the status register must be disabled. | ||
| 38 | */ | ||
| 39 | #define PMBUS_SKIP_STATUS_CHECK (1 << 0) | ||
| 40 | |||
| 41 | struct pmbus_platform_data { | ||
| 42 | u32 flags; /* Device specific flags */ | ||
| 43 | }; | ||
| 44 | |||
| 45 | #endif /* _PMBUS_H_ */ | ||
diff --git a/include/linux/i2c/pxa-i2c.h b/include/linux/i2c/pxa-i2c.h new file mode 100644 index 000000000000..1a9f65e6ec0f --- /dev/null +++ b/include/linux/i2c/pxa-i2c.h | |||
| @@ -0,0 +1,82 @@ | |||
| 1 | /* | ||
| 2 | * i2c_pxa.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2002 Intrinsyc Software Inc. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | * | ||
| 10 | */ | ||
| 11 | #ifndef _I2C_PXA_H_ | ||
| 12 | #define _I2C_PXA_H_ | ||
| 13 | |||
| 14 | #if 0 | ||
| 15 | #define DEF_TIMEOUT 3 | ||
| 16 | #else | ||
| 17 | /* need a longer timeout if we're dealing with the fact we may well be | ||
| 18 | * looking at a multi-master environment | ||
| 19 | */ | ||
| 20 | #define DEF_TIMEOUT 32 | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define BUS_ERROR (-EREMOTEIO) | ||
| 24 | #define XFER_NAKED (-ECONNREFUSED) | ||
| 25 | #define I2C_RETRY (-2000) /* an error has occurred retry transmit */ | ||
| 26 | |||
| 27 | /* ICR initialize bit values | ||
| 28 | * | ||
| 29 | * 15. FM 0 (100 Khz operation) | ||
| 30 | * 14. UR 0 (No unit reset) | ||
| 31 | * 13. SADIE 0 (Disables the unit from interrupting on slave addresses | ||
| 32 | * matching its slave address) | ||
| 33 | * 12. ALDIE 0 (Disables the unit from interrupt when it loses arbitration | ||
| 34 | * in master mode) | ||
| 35 | * 11. SSDIE 0 (Disables interrupts from a slave stop detected, in slave mode) | ||
| 36 | * 10. BEIE 1 (Enable interrupts from detected bus errors, no ACK sent) | ||
| 37 | * 9. IRFIE 1 (Enable interrupts from full buffer received) | ||
| 38 | * 8. ITEIE 1 (Enables the I2C unit to interrupt when transmit buffer empty) | ||
| 39 | * 7. GCD 1 (Disables i2c unit response to general call messages as a slave) | ||
| 40 | * 6. IUE 0 (Disable unit until we change settings) | ||
| 41 | * 5. SCLE 1 (Enables the i2c clock output for master mode (drives SCL) | ||
| 42 | * 4. MA 0 (Only send stop with the ICR stop bit) | ||
| 43 | * 3. TB 0 (We are not transmitting a byte initially) | ||
| 44 | * 2. ACKNAK 0 (Send an ACK after the unit receives a byte) | ||
| 45 | * 1. STOP 0 (Do not send a STOP) | ||
| 46 | * 0. START 0 (Do not send a START) | ||
| 47 | * | ||
| 48 | */ | ||
| 49 | #define I2C_ICR_INIT (ICR_BEIE | ICR_IRFIE | ICR_ITEIE | ICR_GCD | ICR_SCLE) | ||
| 50 | |||
| 51 | /* I2C status register init values | ||
| 52 | * | ||
| 53 | * 10. BED 1 (Clear bus error detected) | ||
| 54 | * 9. SAD 1 (Clear slave address detected) | ||
| 55 | * 7. IRF 1 (Clear IDBR Receive Full) | ||
| 56 | * 6. ITE 1 (Clear IDBR Transmit Empty) | ||
| 57 | * 5. ALD 1 (Clear Arbitration Loss Detected) | ||
| 58 | * 4. SSD 1 (Clear Slave Stop Detected) | ||
| 59 | */ | ||
| 60 | #define I2C_ISR_INIT 0x7FF /* status register init */ | ||
| 61 | |||
| 62 | struct i2c_slave_client; | ||
| 63 | |||
| 64 | struct i2c_pxa_platform_data { | ||
| 65 | unsigned int slave_addr; | ||
| 66 | struct i2c_slave_client *slave; | ||
| 67 | unsigned int class; | ||
| 68 | unsigned int use_pio :1; | ||
| 69 | unsigned int fast_mode :1; | ||
| 70 | }; | ||
| 71 | |||
| 72 | extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info); | ||
| 73 | |||
| 74 | #ifdef CONFIG_PXA27x | ||
| 75 | extern void pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info); | ||
| 76 | #endif | ||
| 77 | |||
| 78 | #ifdef CONFIG_PXA3xx | ||
| 79 | extern void pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info); | ||
| 80 | #endif | ||
| 81 | |||
| 82 | #endif | ||
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 61b9609e55f2..0c0d1ae79981 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h | |||
| @@ -600,6 +600,8 @@ struct twl4030_usb_data { | |||
| 600 | int (*phy_power)(struct device *dev, int iD, int on); | 600 | int (*phy_power)(struct device *dev, int iD, int on); |
| 601 | /* enable/disable phy clocks */ | 601 | /* enable/disable phy clocks */ |
| 602 | int (*phy_set_clock)(struct device *dev, int on); | 602 | int (*phy_set_clock)(struct device *dev, int on); |
| 603 | /* suspend/resume of phy */ | ||
| 604 | int (*phy_suspend)(struct device *dev, int suspend); | ||
| 603 | }; | 605 | }; |
| 604 | 606 | ||
| 605 | struct twl4030_ins { | 607 | struct twl4030_ins { |
| @@ -637,7 +639,6 @@ extern void twl4030_power_init(struct twl4030_power_data *triton2_scripts); | |||
| 637 | extern int twl4030_remove_script(u8 flags); | 639 | extern int twl4030_remove_script(u8 flags); |
| 638 | 640 | ||
| 639 | struct twl4030_codec_audio_data { | 641 | struct twl4030_codec_audio_data { |
| 640 | unsigned int audio_mclk; /* not used, will be removed */ | ||
| 641 | unsigned int digimic_delay; /* in ms */ | 642 | unsigned int digimic_delay; /* in ms */ |
| 642 | unsigned int ramp_delay_value; | 643 | unsigned int ramp_delay_value; |
| 643 | unsigned int offset_cncl_path; | 644 | unsigned int offset_cncl_path; |
| @@ -648,7 +649,6 @@ struct twl4030_codec_audio_data { | |||
| 648 | }; | 649 | }; |
| 649 | 650 | ||
| 650 | struct twl4030_codec_vibra_data { | 651 | struct twl4030_codec_vibra_data { |
| 651 | unsigned int audio_mclk; | ||
| 652 | unsigned int coexist; | 652 | unsigned int coexist; |
| 653 | }; | 653 | }; |
| 654 | 654 | ||
| @@ -698,6 +698,7 @@ struct twl4030_platform_data { | |||
| 698 | struct regulator_init_data *vana; | 698 | struct regulator_init_data *vana; |
| 699 | struct regulator_init_data *vcxio; | 699 | struct regulator_init_data *vcxio; |
| 700 | struct regulator_init_data *vusb; | 700 | struct regulator_init_data *vusb; |
| 701 | struct regulator_init_data *clk32kg; | ||
| 701 | }; | 702 | }; |
| 702 | 703 | ||
| 703 | /*----------------------------------------------------------------------*/ | 704 | /*----------------------------------------------------------------------*/ |
| @@ -777,5 +778,6 @@ static inline int twl4030charger_usb_en(int enable) { return 0; } | |||
| 777 | 778 | ||
| 778 | /* INTERNAL LDOs */ | 779 | /* INTERNAL LDOs */ |
| 779 | #define TWL6030_REG_VRTC 47 | 780 | #define TWL6030_REG_VRTC 47 |
| 781 | #define TWL6030_REG_CLK32KG 48 | ||
| 780 | 782 | ||
| 781 | #endif /* End of __TWL4030_H */ | 783 | #endif /* End of __TWL4030_H */ |
diff --git a/include/linux/i2c/twl4030-madc.h b/include/linux/i2c/twl4030-madc.h new file mode 100644 index 000000000000..6427d298fbfc --- /dev/null +++ b/include/linux/i2c/twl4030-madc.h | |||
| @@ -0,0 +1,141 @@ | |||
| 1 | /* | ||
| 2 | * twl4030_madc.h - Header for TWL4030 MADC | ||
| 3 | * | ||
| 4 | * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 5 | * J Keerthy <j-keerthy@ti.com> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or | ||
| 8 | * modify it under the terms of the GNU General Public License | ||
| 9 | * version 2 as published by the Free Software Foundation. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, but | ||
| 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | * General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
| 19 | * 02110-1301 USA | ||
| 20 | * | ||
| 21 | */ | ||
| 22 | |||
| 23 | #ifndef _TWL4030_MADC_H | ||
| 24 | #define _TWL4030_MADC_H | ||
| 25 | |||
| 26 | struct twl4030_madc_conversion_method { | ||
| 27 | u8 sel; | ||
| 28 | u8 avg; | ||
| 29 | u8 rbase; | ||
| 30 | u8 ctrl; | ||
| 31 | }; | ||
| 32 | |||
| 33 | #define TWL4030_MADC_MAX_CHANNELS 16 | ||
| 34 | |||
| 35 | |||
| 36 | /* | ||
| 37 | * twl4030_madc_request- madc request packet for channel conversion | ||
| 38 | * @channels: 16 bit bitmap for individual channels | ||
| 39 | * @do_avgP: sample the input channel for 4 consecutive cycles | ||
| 40 | * @method: RT, SW1, SW2 | ||
| 41 | * @type: Polling or interrupt based method | ||
| 42 | */ | ||
| 43 | |||
| 44 | struct twl4030_madc_request { | ||
| 45 | unsigned long channels; | ||
| 46 | u16 do_avg; | ||
| 47 | u16 method; | ||
| 48 | u16 type; | ||
| 49 | bool active; | ||
| 50 | bool result_pending; | ||
| 51 | int rbuf[TWL4030_MADC_MAX_CHANNELS]; | ||
| 52 | void (*func_cb)(int len, int channels, int *buf); | ||
| 53 | }; | ||
| 54 | |||
| 55 | enum conversion_methods { | ||
| 56 | TWL4030_MADC_RT, | ||
| 57 | TWL4030_MADC_SW1, | ||
| 58 | TWL4030_MADC_SW2, | ||
| 59 | TWL4030_MADC_NUM_METHODS | ||
| 60 | }; | ||
| 61 | |||
| 62 | enum sample_type { | ||
| 63 | TWL4030_MADC_WAIT, | ||
| 64 | TWL4030_MADC_IRQ_ONESHOT, | ||
| 65 | TWL4030_MADC_IRQ_REARM | ||
| 66 | }; | ||
| 67 | |||
| 68 | #define TWL4030_MADC_CTRL1 0x00 | ||
| 69 | #define TWL4030_MADC_CTRL2 0x01 | ||
| 70 | |||
| 71 | #define TWL4030_MADC_RTSELECT_LSB 0x02 | ||
| 72 | #define TWL4030_MADC_SW1SELECT_LSB 0x06 | ||
| 73 | #define TWL4030_MADC_SW2SELECT_LSB 0x0A | ||
| 74 | |||
| 75 | #define TWL4030_MADC_RTAVERAGE_LSB 0x04 | ||
| 76 | #define TWL4030_MADC_SW1AVERAGE_LSB 0x08 | ||
| 77 | #define TWL4030_MADC_SW2AVERAGE_LSB 0x0C | ||
| 78 | |||
| 79 | #define TWL4030_MADC_CTRL_SW1 0x12 | ||
| 80 | #define TWL4030_MADC_CTRL_SW2 0x13 | ||
| 81 | |||
| 82 | #define TWL4030_MADC_RTCH0_LSB 0x17 | ||
| 83 | #define TWL4030_MADC_GPCH0_LSB 0x37 | ||
| 84 | |||
| 85 | #define TWL4030_MADC_MADCON (1 << 0) /* MADC power on */ | ||
| 86 | #define TWL4030_MADC_BUSY (1 << 0) /* MADC busy */ | ||
| 87 | /* MADC conversion completion */ | ||
| 88 | #define TWL4030_MADC_EOC_SW (1 << 1) | ||
| 89 | /* MADC SWx start conversion */ | ||
| 90 | #define TWL4030_MADC_SW_START (1 << 5) | ||
| 91 | #define TWL4030_MADC_ADCIN0 (1 << 0) | ||
| 92 | #define TWL4030_MADC_ADCIN1 (1 << 1) | ||
| 93 | #define TWL4030_MADC_ADCIN2 (1 << 2) | ||
| 94 | #define TWL4030_MADC_ADCIN3 (1 << 3) | ||
| 95 | #define TWL4030_MADC_ADCIN4 (1 << 4) | ||
| 96 | #define TWL4030_MADC_ADCIN5 (1 << 5) | ||
| 97 | #define TWL4030_MADC_ADCIN6 (1 << 6) | ||
| 98 | #define TWL4030_MADC_ADCIN7 (1 << 7) | ||
| 99 | #define TWL4030_MADC_ADCIN8 (1 << 8) | ||
| 100 | #define TWL4030_MADC_ADCIN9 (1 << 9) | ||
| 101 | #define TWL4030_MADC_ADCIN10 (1 << 10) | ||
| 102 | #define TWL4030_MADC_ADCIN11 (1 << 11) | ||
| 103 | #define TWL4030_MADC_ADCIN12 (1 << 12) | ||
| 104 | #define TWL4030_MADC_ADCIN13 (1 << 13) | ||
| 105 | #define TWL4030_MADC_ADCIN14 (1 << 14) | ||
| 106 | #define TWL4030_MADC_ADCIN15 (1 << 15) | ||
| 107 | |||
| 108 | /* Fixed channels */ | ||
| 109 | #define TWL4030_MADC_BTEMP TWL4030_MADC_ADCIN1 | ||
| 110 | #define TWL4030_MADC_VBUS TWL4030_MADC_ADCIN8 | ||
| 111 | #define TWL4030_MADC_VBKB TWL4030_MADC_ADCIN9 | ||
| 112 | #define TWL4030_MADC_ICHG TWL4030_MADC_ADCIN10 | ||
| 113 | #define TWL4030_MADC_VCHG TWL4030_MADC_ADCIN11 | ||
| 114 | #define TWL4030_MADC_VBAT TWL4030_MADC_ADCIN12 | ||
| 115 | |||
| 116 | /* Step size and prescaler ratio */ | ||
| 117 | #define TEMP_STEP_SIZE 147 | ||
| 118 | #define TEMP_PSR_R 100 | ||
| 119 | #define CURR_STEP_SIZE 147 | ||
| 120 | #define CURR_PSR_R1 44 | ||
| 121 | #define CURR_PSR_R2 88 | ||
| 122 | |||
| 123 | #define TWL4030_BCI_BCICTL1 0x23 | ||
| 124 | #define TWL4030_BCI_CGAIN 0x020 | ||
| 125 | #define TWL4030_BCI_MESBAT (1 << 1) | ||
| 126 | #define TWL4030_BCI_TYPEN (1 << 4) | ||
| 127 | #define TWL4030_BCI_ITHEN (1 << 3) | ||
| 128 | |||
| 129 | #define REG_BCICTL2 0x024 | ||
| 130 | #define TWL4030_BCI_ITHSENS 0x007 | ||
| 131 | |||
| 132 | struct twl4030_madc_user_parms { | ||
| 133 | int channel; | ||
| 134 | int average; | ||
| 135 | int status; | ||
| 136 | u16 result; | ||
| 137 | }; | ||
| 138 | |||
| 139 | int twl4030_madc_conversion(struct twl4030_madc_request *conv); | ||
| 140 | int twl4030_get_madc_conversion(int channel_no); | ||
| 141 | #endif | ||
