diff options
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/88pm80x.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/abx500.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/abx500/ab8500-sysctrl.h | 5 | ||||
| -rw-r--r-- | include/linux/mfd/abx500/ab8500.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/pdata.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/registers.h | 16 | ||||
| -rw-r--r-- | include/linux/mfd/dbx500-prcmu.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/max8925.h | 3 | ||||
| -rw-r--r-- | include/linux/mfd/palmas.h | 52 | ||||
| -rw-r--r-- | include/linux/mfd/rtsx_pci.h | 9 | 
10 files changed, 122 insertions, 3 deletions
diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h index 478672ed0c3..e94537befab 100644 --- a/include/linux/mfd/88pm80x.h +++ b/include/linux/mfd/88pm80x.h @@ -365,5 +365,5 @@ static inline int pm80x_dev_resume(struct device *dev)  extern int pm80x_init(struct i2c_client *client,  		      const struct i2c_device_id *id); -extern int pm80x_deinit(struct i2c_client *client); +extern int pm80x_deinit(void);  #endif /* __LINUX_MFD_88PM80X_H */ diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h index 80e3b8683a8..9ead60bc66b 100644 --- a/include/linux/mfd/abx500.h +++ b/include/linux/mfd/abx500.h @@ -311,6 +311,7 @@ int abx500_mask_and_set_register_interruptible(struct device *dev, u8 bank,  int abx500_get_chip_id(struct device *dev);  int abx500_event_registers_startup_state_get(struct device *dev, u8 *event);  int abx500_startup_irq_enabled(struct device *dev, unsigned int irq); +void abx500_dump_all_banks(void);  struct abx500_ops {  	int (*get_chip_id) (struct device *); @@ -321,6 +322,7 @@ struct abx500_ops {  	int (*mask_and_set_register) (struct device *, u8, u8, u8, u8);  	int (*event_registers_startup_state_get) (struct device *, u8 *);  	int (*startup_irq_enabled) (struct device *, unsigned int); +	void (*dump_all_banks) (struct device *);  };  int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops); diff --git a/include/linux/mfd/abx500/ab8500-sysctrl.h b/include/linux/mfd/abx500/ab8500-sysctrl.h index 10eb50973c3..ebf12e793db 100644 --- a/include/linux/mfd/abx500/ab8500-sysctrl.h +++ b/include/linux/mfd/abx500/ab8500-sysctrl.h @@ -37,6 +37,11 @@ static inline int ab8500_sysctrl_clear(u16 reg, u8 bits)  	return ab8500_sysctrl_write(reg, bits, 0);  } +/* Configuration data for SysClkReq1RfClkBuf - SysClkReq8RfClkBuf */ +struct ab8500_sysctrl_platform_data { +	u8 initial_req_buf_config[8]; +}; +  /* Registers */  #define AB8500_TURNONSTATUS		0x100  #define AB8500_RESETSTATUS		0x101 diff --git a/include/linux/mfd/abx500/ab8500.h b/include/linux/mfd/abx500/ab8500.h index fc0534483c7..9db0bda446a 100644 --- a/include/linux/mfd/abx500/ab8500.h +++ b/include/linux/mfd/abx500/ab8500.h @@ -368,10 +368,12 @@ struct regulator_reg_init;  struct regulator_init_data;  struct ab8500_gpio_platform_data;  struct ab8500_codec_platform_data; +struct ab8500_sysctrl_platform_data;  /**   * struct ab8500_platform_data - AB8500 platform data   * @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used + * @pm_power_off: Should machine pm power off hook be registered or not   * @init: board-specific initialization after detection of ab8500   * @num_regulator_reg_init: number of regulator init registers   * @regulator_reg_init: regulator init registers @@ -380,6 +382,7 @@ struct ab8500_codec_platform_data;   */  struct ab8500_platform_data {  	int irq_base; +	bool pm_power_off;  	void (*init) (struct ab8500 *);  	int num_regulator_reg_init;  	struct ab8500_regulator_reg_init *regulator_reg_init; @@ -387,6 +390,7 @@ struct ab8500_platform_data {  	struct regulator_init_data *regulator;  	struct abx500_gpio_platform_data *gpio;  	struct ab8500_codec_platform_data *codec; +	struct ab8500_sysctrl_platform_data *sysctrl;  };  extern int ab8500_init(struct ab8500 *ab8500, @@ -508,4 +512,12 @@ static inline int is_ab9540_2p0_or_earlier(struct ab8500 *ab)  	return (is_ab9540(ab) && (ab->chip_id < AB8500_CUT2P0));  } +#ifdef CONFIG_AB8500_DEBUG +void ab8500_dump_all_banks(struct device *dev); +void ab8500_debug_register_interrupt(int line); +#else +static inline void ab8500_dump_all_banks(struct device *dev) {} +static inline void ab8500_debug_register_interrupt(int line) {} +#endif +  #endif /* MFD_AB8500_H */ diff --git a/include/linux/mfd/arizona/pdata.h b/include/linux/mfd/arizona/pdata.h index 96d64f2b8d7..455c51d22d6 100644 --- a/include/linux/mfd/arizona/pdata.h +++ b/include/linux/mfd/arizona/pdata.h @@ -56,6 +56,8 @@  #define ARIZONA_DMIC_MICBIAS2 2  #define ARIZONA_DMIC_MICBIAS3 3 +#define ARIZONA_MAX_MICBIAS 3 +  #define ARIZONA_INMODE_DIFF 0  #define ARIZONA_INMODE_SE   1  #define ARIZONA_INMODE_DMIC 2 @@ -71,6 +73,13 @@  struct regulator_init_data; +struct arizona_micbias { +	int mV;                    /** Regulated voltage */ +	unsigned int ext_cap:1;    /** External capacitor fitted */ +	unsigned int discharge:1;  /** Actively discharge */ +	unsigned int fast_start:1; /** Enable aggressive startup ramp rate */ +}; +  struct arizona_micd_config {  	unsigned int src;  	unsigned int bias; @@ -136,6 +145,9 @@ struct arizona_pdata {  	/** Reference voltage for DMIC inputs */  	int dmic_ref[ARIZONA_MAX_INPUT]; +	/** MICBIAS configurations */ +	struct arizona_micbias micbias[ARIZONA_MAX_MICBIAS]; +  	/** Mode of input structures */  	int inmode[ARIZONA_MAX_INPUT]; diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h index 188d89abd96..34035513606 100644 --- a/include/linux/mfd/arizona/registers.h +++ b/include/linux/mfd/arizona/registers.h @@ -984,18 +984,34 @@  #define ARIZONA_DSP1_STATUS_1                    0x1104  #define ARIZONA_DSP1_STATUS_2                    0x1105  #define ARIZONA_DSP1_STATUS_3                    0x1106 +#define ARIZONA_DSP1_SCRATCH_0                   0x1140 +#define ARIZONA_DSP1_SCRATCH_1                   0x1141 +#define ARIZONA_DSP1_SCRATCH_2                   0x1142 +#define ARIZONA_DSP1_SCRATCH_3                   0x1143  #define ARIZONA_DSP2_CONTROL_1                   0x1200  #define ARIZONA_DSP2_CLOCKING_1                  0x1201  #define ARIZONA_DSP2_STATUS_1                    0x1204  #define ARIZONA_DSP2_STATUS_2                    0x1205 +#define ARIZONA_DSP2_SCRATCH_0                   0x1240 +#define ARIZONA_DSP2_SCRATCH_1                   0x1241 +#define ARIZONA_DSP2_SCRATCH_2                   0x1242 +#define ARIZONA_DSP2_SCRATCH_3                   0x1243  #define ARIZONA_DSP3_CONTROL_1                   0x1300  #define ARIZONA_DSP3_CLOCKING_1                  0x1301  #define ARIZONA_DSP3_STATUS_1                    0x1304  #define ARIZONA_DSP3_STATUS_2                    0x1305 +#define ARIZONA_DSP3_SCRATCH_0                   0x1340 +#define ARIZONA_DSP3_SCRATCH_1                   0x1341 +#define ARIZONA_DSP3_SCRATCH_2                   0x1342 +#define ARIZONA_DSP3_SCRATCH_3                   0x1343  #define ARIZONA_DSP4_CONTROL_1                   0x1400  #define ARIZONA_DSP4_CLOCKING_1                  0x1401  #define ARIZONA_DSP4_STATUS_1                    0x1404  #define ARIZONA_DSP4_STATUS_2                    0x1405 +#define ARIZONA_DSP4_SCRATCH_0                   0x1440 +#define ARIZONA_DSP4_SCRATCH_1                   0x1441 +#define ARIZONA_DSP4_SCRATCH_2                   0x1442 +#define ARIZONA_DSP4_SCRATCH_3                   0x1443  /*   * Field Definitions. diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h index f8bac7cfc25..3abcca91eec 100644 --- a/include/linux/mfd/dbx500-prcmu.h +++ b/include/linux/mfd/dbx500-prcmu.h @@ -151,6 +151,18 @@ enum prcmu_clock {  };  /** + * enum prcmu_wdog_id - PRCMU watchdog IDs + * @PRCMU_WDOG_ALL: use all timers + * @PRCMU_WDOG_CPU1: use first CPU timer only + * @PRCMU_WDOG_CPU2: use second CPU timer conly + */ +enum prcmu_wdog_id { +	PRCMU_WDOG_ALL = 0x00, +	PRCMU_WDOG_CPU1 = 0x01, +	PRCMU_WDOG_CPU2 = 0x02, +}; + +/**   * enum ape_opp - APE OPP states definition   * @APE_OPP_INIT:   * @APE_NO_CHANGE: The APE operating point is unchanged diff --git a/include/linux/mfd/max8925.h b/include/linux/mfd/max8925.h index 74d8e296963..ce8502e9e7d 100644 --- a/include/linux/mfd/max8925.h +++ b/include/linux/mfd/max8925.h @@ -190,6 +190,8 @@ enum {  	MAX8925_NR_IRQS,  }; + +  struct max8925_chip {  	struct device		*dev;  	struct i2c_client	*i2c; @@ -201,7 +203,6 @@ struct max8925_chip {  	int			irq_base;  	int			core_irq;  	int			tsc_irq; -  	unsigned int            wakeup_flag;  }; diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index 29f6616e12f..a4d13d7cd00 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -2789,4 +2789,56 @@ enum usb_irq_events {  #define PALMAS_GPADC_TRIM15					0xE  #define PALMAS_GPADC_TRIM16					0xF +static inline int palmas_read(struct palmas *palmas, unsigned int base, +		unsigned int reg, unsigned int *val) +{ +	unsigned int addr =  PALMAS_BASE_TO_REG(base, reg); +	int slave_id = PALMAS_BASE_TO_SLAVE(base); + +	return regmap_read(palmas->regmap[slave_id], addr, val); +} + +static inline int palmas_write(struct palmas *palmas, unsigned int base, +		unsigned int reg, unsigned int value) +{ +	unsigned int addr = PALMAS_BASE_TO_REG(base, reg); +	int slave_id = PALMAS_BASE_TO_SLAVE(base); + +	return regmap_write(palmas->regmap[slave_id], addr, value); +} + +static inline int palmas_bulk_write(struct palmas *palmas, unsigned int base, +	unsigned int reg, const void *val, size_t val_count) +{ +	unsigned int addr = PALMAS_BASE_TO_REG(base, reg); +	int slave_id = PALMAS_BASE_TO_SLAVE(base); + +	return regmap_bulk_write(palmas->regmap[slave_id], addr, +			val, val_count); +} + +static inline int palmas_bulk_read(struct palmas *palmas, unsigned int base, +		unsigned int reg, void *val, size_t val_count) +{ +	unsigned int addr = PALMAS_BASE_TO_REG(base, reg); +	int slave_id = PALMAS_BASE_TO_SLAVE(base); + +	return regmap_bulk_read(palmas->regmap[slave_id], addr, +		val, val_count); +} + +static inline int palmas_update_bits(struct palmas *palmas, unsigned int base, +	unsigned int reg, unsigned int mask, unsigned int val) +{ +	unsigned int addr = PALMAS_BASE_TO_REG(base, reg); +	int slave_id = PALMAS_BASE_TO_SLAVE(base); + +	return regmap_update_bits(palmas->regmap[slave_id], addr, mask, val); +} + +static inline int palmas_irq_get_virq(struct palmas *palmas, int irq) +{ +	return regmap_irq_get_virq(palmas->irq_data, irq); +} +  #endif /*  __LINUX_MFD_PALMAS_H */ diff --git a/include/linux/mfd/rtsx_pci.h b/include/linux/mfd/rtsx_pci.h index 4b117a3f54d..26ea7f1b7ca 100644 --- a/include/linux/mfd/rtsx_pci.h +++ b/include/linux/mfd/rtsx_pci.h @@ -465,7 +465,7 @@  #define	SD_RSP_TYPE_R6			0x01  #define	SD_RSP_TYPE_R7			0x01 -/* SD_CONFIURE3 */ +/* SD_CONFIGURE3 */  #define	SD_RSP_80CLK_TIMEOUT_EN		0x01  /* Card Transfer Reset Register */ @@ -581,8 +581,11 @@  #define CARD_GPIO_DIR			0xFD57  #define CARD_GPIO			0xFD58  #define CARD_DATA_SOURCE		0xFD5B +#define SD30_CLK_DRIVE_SEL		0xFD5A  #define CARD_SELECT			0xFD5C  #define SD30_DRIVE_SEL			0xFD5E +#define SD30_CMD_DRIVE_SEL		0xFD5E +#define SD30_DAT_DRIVE_SEL		0xFD5F  #define CARD_CLK_EN			0xFD69  #define SDIO_CTRL			0xFD6B  #define CD_PAD_CTL			0xFD73 @@ -655,6 +658,8 @@  #define MSGTXDATA3			0xFE47  #define MSGTXCTL			0xFE48  #define PETXCFG				0xFE49 +#define LTR_CTL				0xFE4A +#define OBFF_CFG			0xFE4C  #define CDRESUMECTL			0xFE52  #define WAKE_SEL_CTL			0xFE54 @@ -735,6 +740,7 @@ struct rtsx_pcr {  	unsigned int			card_inserted;  	unsigned int			card_removed; +	unsigned int			card_exist;  	struct delayed_work		carddet_work;  	struct delayed_work		idle_work; @@ -799,6 +805,7 @@ int rtsx_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,  		u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk);  int rtsx_pci_card_power_on(struct rtsx_pcr *pcr, int card);  int rtsx_pci_card_power_off(struct rtsx_pcr *pcr, int card); +int rtsx_pci_card_exclusive_check(struct rtsx_pcr *pcr, int card);  int rtsx_pci_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage);  unsigned int rtsx_pci_card_exist(struct rtsx_pcr *pcr);  void rtsx_pci_complete_unfinished_transfer(struct rtsx_pcr *pcr);  |