You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull MFS updates from Samuel Ortiz:
"This is the MFD pull request for the 3.9 merge window.
No new drivers this time, but a bunch of fairly big cleanups:
- Roger Quadros worked on a OMAP USBHS and TLL platform data
consolidation, OMAP5 support and clock management code cleanup.
- The first step of a major sync for the ab8500 driver from Lee
Jones. In particular, the debugfs and the sysct interfaces got
extended and improved.
- Peter Ujfalusi sent a nice patchset for cleaning and fixing the
twl-core driver, with a much needed module id lookup code
improvement.
- The regular wm5102 and arizona cleanups and fixes from Mark Brown.
- Laxman Dewangan extended the palmas APIs in order to implement the
palmas GPIO and rt drivers.
- Laxman also added DT support for the tps65090 driver.
- The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
and Darren Hart.
- Linus Walleij patchset for the ab8500 driver allowed ab8500 and
ab9540 based devices to switch to the new abx500 pin-ctrl driver.
- The max8925 now has device tree and irqdomain support thanks to
Qing Xu.
- The recently added rtsx driver got a few cleanups and fixes for a
better card detection code path and now also supports the RTS5227
chipset, thanks to Wei Wang and Roger Tseng."
* tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
mfd: lpc_ich: Use devres API to allocate private data
mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
mfd: lpc_sch: Accomodate partial population of the MFD devices
mfd: da9052-i2c: Staticize da9052_i2c_fix()
mfd: syscon: Fix sparse warning
mfd: twl-core: Fix kernel panic on boot
mfd: rtsx: Fix issue that booting OS with SD card inserted
mfd: ab8500: Fix compile error
mfd: Add missing GENERIC_HARDIRQS dependecies
Documentation: Add docs for max8925 dt
mfd: max8925: Add dts
mfd: max8925: Support dt for backlight
mfd: max8925: Fix onkey driver irq base
mfd: max8925: Fix mfd device register failure
mfd: max8925: Add irqdomain for dt
mfd: vexpress: Allow vexpress-sysreg to self-initialise
mfd: rtsx: Support RTS5227
mfd: rtsx: Implement driving adjustment to device-dependent callbacks
mfd: vexpress: Add pseudo-GPIO based LEDs
mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
...
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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];
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -150,6 +150,18 @@ enum prcmu_clock {
|
||||
PRCMU_DSI2ESCCLK,
|
||||
};
|
||||
|
||||
/**
|
||||
* 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:
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user