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 branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6
* 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6: (80 commits) mfd: Fix missing abx500 header file updates mfd: Add missing <linux/io.h> include to intel_msic x86, mrst: add platform support for MSIC MFD driver mfd: Expose TurnOnStatus in ab8500 sysfs mfd: Remove support for early drop ab8500 chip mfd: Add support for ab8500 v3.3 mfd: Add ab8500 interrupt disable hook mfd: Convert db8500-prcmu panic() into pr_crit() mfd: Refactor db8500-prcmu request_clock() function mfd: Rename db8500-prcmu init function mfd: Fix db5500-prcmu defines mfd: db8500-prcmu voltage domain consumers additions mfd: db8500-prcmu reset code retrieval mfd: db8500-prcmu tweak for modem wakeup mfd: Add db8500-pcmu watchdog accessor functions for watchdog mfd: hwacc power state db8500-prcmu accessor mfd: Add db8500-prcmu accessors for PLL and SGA clock mfd: Move to the new db500 PRCMU API mfd: Create a common interface for dbx500 PRCMU drivers mfd: Initialize DB8500 PRCMU regs ... Fix up trivial conflicts in arch/arm/mach-imx/mach-mx31moboard.c arch/arm/mach-omap2/board-omap3beagle.c arch/arm/mach-u300/include/mach/irqs.h drivers/mfd/wm831x-spi.c
This commit is contained in:
@@ -293,8 +293,7 @@ static struct mc13xxx_platform_data mc13783_pdata = {
|
||||
.num_regulators = ARRAY_SIZE(mx27_3ds_regulators),
|
||||
|
||||
},
|
||||
.flags = MC13783_USE_REGULATOR | MC13783_USE_TOUCHSCREEN |
|
||||
MC13783_USE_RTC,
|
||||
.flags = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC,
|
||||
};
|
||||
|
||||
/* SPI */
|
||||
|
||||
@@ -492,7 +492,7 @@ static struct mc13xxx_platform_data mc13783_pdata = {
|
||||
.regulators = mx31_3ds_regulators,
|
||||
.num_regulators = ARRAY_SIZE(mx31_3ds_regulators),
|
||||
},
|
||||
.flags = MC13783_USE_REGULATOR | MC13783_USE_TOUCHSCREEN,
|
||||
.flags = MC13XXX_USE_TOUCHSCREEN,
|
||||
};
|
||||
|
||||
/* SPI */
|
||||
|
||||
@@ -112,8 +112,7 @@ static const struct spi_imx_master spi1_pdata __initconst = {
|
||||
};
|
||||
|
||||
static struct mc13xxx_platform_data mc13783_pdata __initdata = {
|
||||
.flags = MC13XXX_USE_RTC |
|
||||
MC13XXX_USE_REGULATOR,
|
||||
.flags = MC13XXX_USE_RTC,
|
||||
};
|
||||
|
||||
static struct spi_board_info mc13783_spi_dev __initdata = {
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/input.h>
|
||||
|
||||
#include <linux/usb/otg.h>
|
||||
#include <linux/usb/ulpi.h>
|
||||
@@ -225,7 +226,7 @@ static struct mc13xxx_regulator_init_data moboard_regulators[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct mc13783_led_platform_data moboard_led[] = {
|
||||
static struct mc13xxx_led_platform_data moboard_led[] = {
|
||||
{
|
||||
.id = MC13783_LED_R1,
|
||||
.name = "coreboard-led-4:red",
|
||||
@@ -258,7 +259,7 @@ static struct mc13783_led_platform_data moboard_led[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct mc13783_leds_platform_data moboard_leds = {
|
||||
static struct mc13xxx_leds_platform_data moboard_leds = {
|
||||
.num_leds = ARRAY_SIZE(moboard_led),
|
||||
.led = moboard_led,
|
||||
.flags = MC13783_LED_SLEWLIMTC,
|
||||
@@ -267,14 +268,20 @@ static struct mc13783_leds_platform_data moboard_leds = {
|
||||
.tc2_period = MC13783_LED_PERIOD_10MS,
|
||||
};
|
||||
|
||||
static struct mc13xxx_buttons_platform_data moboard_buttons = {
|
||||
.b1on_flags = MC13783_BUTTON_DBNC_750MS | MC13783_BUTTON_ENABLE |
|
||||
MC13783_BUTTON_POL_INVERT,
|
||||
.b1on_key = KEY_POWER,
|
||||
};
|
||||
|
||||
static struct mc13xxx_platform_data moboard_pmic = {
|
||||
.regulators = {
|
||||
.regulators = moboard_regulators,
|
||||
.num_regulators = ARRAY_SIZE(moboard_regulators),
|
||||
},
|
||||
.leds = &moboard_leds,
|
||||
.flags = MC13XXX_USE_REGULATOR | MC13XXX_USE_RTC |
|
||||
MC13XXX_USE_ADC | MC13XXX_USE_LED,
|
||||
.buttons = &moboard_buttons,
|
||||
.flags = MC13XXX_USE_RTC | MC13XXX_USE_ADC,
|
||||
};
|
||||
|
||||
static struct spi_board_info moboard_spi_board_info[] __initdata = {
|
||||
|
||||
@@ -268,8 +268,7 @@ static struct mc13xxx_platform_data pcm038_pmic = {
|
||||
.regulators = pcm038_regulators,
|
||||
.num_regulators = ARRAY_SIZE(pcm038_regulators),
|
||||
},
|
||||
.flags = MC13783_USE_ADC | MC13783_USE_REGULATOR |
|
||||
MC13783_USE_TOUCHSCREEN,
|
||||
.flags = MC13XXX_USE_ADC | MC13XXX_USE_TOUCHSCREEN,
|
||||
};
|
||||
|
||||
static struct spi_board_info pcm038_spi_board_info[] __initdata = {
|
||||
|
||||
@@ -565,7 +565,7 @@ static struct mc13xxx_regulator_init_data mx51_efika_regulators[] = {
|
||||
};
|
||||
|
||||
static struct mc13xxx_platform_data mx51_efika_mc13892_data = {
|
||||
.flags = MC13XXX_USE_RTC | MC13XXX_USE_REGULATOR,
|
||||
.flags = MC13XXX_USE_RTC,
|
||||
.regulators = {
|
||||
.num_regulators = ARRAY_SIZE(mx51_efika_regulators),
|
||||
.regulators = mx51_efika_regulators,
|
||||
|
||||
@@ -14,7 +14,6 @@ config ARCH_OMAP2PLUS_TYPICAL
|
||||
select SERIAL_OMAP_CONSOLE
|
||||
select I2C
|
||||
select I2C_OMAP
|
||||
select MFD_SUPPORT
|
||||
select MENELAUS if ARCH_OMAP2
|
||||
select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
|
||||
select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
|
||||
|
||||
@@ -378,7 +378,8 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
|
||||
static int __init omap3_beagle_i2c_init(void)
|
||||
{
|
||||
omap3_pmic_get_config(&beagle_twldata,
|
||||
TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
|
||||
TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC |
|
||||
TWL_COMMON_PDATA_AUDIO,
|
||||
TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
|
||||
|
||||
beagle_twldata.vpll2->constraints.name = "VDVI";
|
||||
@@ -444,9 +445,15 @@ static struct platform_device keys_gpio = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device madc_hwmon = {
|
||||
.name = "twl4030_madc_hwmon",
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
static struct platform_device *omap3_beagle_devices[] __initdata = {
|
||||
&leds_gpio,
|
||||
&keys_gpio,
|
||||
&madc_hwmon,
|
||||
};
|
||||
|
||||
static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
|
||||
|
||||
@@ -256,57 +256,8 @@ static struct ab3100_platform_data ab3100_plf_data = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AB3550_CORE
|
||||
static struct abx500_init_settings ab3550_init_settings[] = {
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR1,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR2,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR3,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR4,
|
||||
.setting = 0xff
|
||||
},
|
||||
{
|
||||
.bank = 0,
|
||||
.reg = AB3550_IMR5,
|
||||
/* The two most significant bits are not used */
|
||||
.setting = 0x3f
|
||||
},
|
||||
};
|
||||
|
||||
static struct ab3550_platform_data ab3550_plf_data = {
|
||||
.irq = {
|
||||
.base = IRQ_AB3550_BASE,
|
||||
.count = (IRQ_AB3550_END - IRQ_AB3550_BASE + 1),
|
||||
},
|
||||
.dev_data = {
|
||||
},
|
||||
.init_settings = ab3550_init_settings,
|
||||
.init_settings_sz = ARRAY_SIZE(ab3550_init_settings),
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct i2c_board_info __initdata bus0_i2c_board_info[] = {
|
||||
#if defined(CONFIG_AB3550_CORE)
|
||||
{
|
||||
.type = "ab3550",
|
||||
.addr = 0x4A,
|
||||
.irq = IRQ_U300_IRQ0_EXT,
|
||||
.platform_data = &ab3550_plf_data,
|
||||
},
|
||||
#elif defined(CONFIG_AB3100_CORE)
|
||||
#ifdef CONFIG_AB3100_CORE
|
||||
{
|
||||
.type = "ab3100",
|
||||
.addr = 0x48,
|
||||
|
||||
@@ -117,14 +117,6 @@
|
||||
#define IRQ_U300_GPIO_END (U300_VIC_IRQS_END)
|
||||
#endif
|
||||
|
||||
/* Optional AB3550 mixsig chip */
|
||||
#ifdef CONFIG_AB3550_CORE
|
||||
#define IRQ_AB3550_BASE (IRQ_U300_GPIO_END)
|
||||
#define IRQ_AB3550_END (IRQ_AB3550_BASE + 38)
|
||||
#else
|
||||
#define IRQ_AB3550_END (IRQ_U300_GPIO_END)
|
||||
#endif
|
||||
|
||||
#define NR_IRQS (IRQ_AB3550_END)
|
||||
#define NR_IRQS (IRQ_U300_GPIO_END)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/amba/bus.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mfd/ab5500/ab5500.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
@@ -87,7 +88,6 @@ static struct lm3530_platform_data u5500_als_platform_data = {
|
||||
.brt_val = 0x7F, /* Max brightness */
|
||||
};
|
||||
|
||||
|
||||
static struct i2c_board_info __initdata u5500_i2c2_devices[] = {
|
||||
{
|
||||
/* Backlight */
|
||||
@@ -101,6 +101,30 @@ static void __init u5500_i2c_init(void)
|
||||
db5500_add_i2c2(&u5500_i2c2_data);
|
||||
i2c_register_board_info(2, ARRAY_AND_SIZE(u5500_i2c2_devices));
|
||||
}
|
||||
|
||||
static struct ab5500_platform_data ab5500_plf_data = {
|
||||
.irq = {
|
||||
.base = 0,
|
||||
.count = 0,
|
||||
},
|
||||
.init_settings = NULL,
|
||||
.init_settings_sz = 0,
|
||||
.pm_power_off = false,
|
||||
};
|
||||
|
||||
static struct platform_device ab5500_device = {
|
||||
.name = "ab5500-core",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &ab5500_plf_data,
|
||||
},
|
||||
.num_resources = 0,
|
||||
};
|
||||
|
||||
static struct platform_device *u5500_platform_devices[] __initdata = {
|
||||
&ab5500_device,
|
||||
};
|
||||
|
||||
static void __init u5500_uart_init(void)
|
||||
{
|
||||
db5500_add_uart0(NULL);
|
||||
@@ -115,6 +139,9 @@ static void __init u5500_init_machine(void)
|
||||
u5500_i2c_init();
|
||||
u5500_sdi_init();
|
||||
u5500_uart_init();
|
||||
|
||||
platform_add_devices(u5500_platform_devices,
|
||||
ARRAY_SIZE(u5500_platform_devices));
|
||||
}
|
||||
|
||||
MACHINE_START(U5500, "ST-Ericsson U5500 Platform")
|
||||
|
||||
@@ -47,6 +47,6 @@ void __init ux500_init_irq(void)
|
||||
if (cpu_is_u5500())
|
||||
db5500_prcmu_early_init();
|
||||
if (cpu_is_u8500())
|
||||
prcmu_early_init();
|
||||
db8500_prcmu_early_init();
|
||||
clk_init();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _ASM_X86_INTEL_SCU_IPC_H_
|
||||
#define _ASM_X86_INTEL_SCU_IPC_H_
|
||||
|
||||
#include <linux/notifier.h>
|
||||
|
||||
#define IPCMSG_VRTC 0xFA /* Set vRTC device */
|
||||
|
||||
/* Command id associated with message IPCMSG_VRTC */
|
||||
@@ -44,4 +46,24 @@ int intel_scu_ipc_i2c_cntrl(u32 addr, u32 *data);
|
||||
/* Update FW version */
|
||||
int intel_scu_ipc_fw_update(u8 *buffer, u32 length);
|
||||
|
||||
extern struct blocking_notifier_head intel_scu_notifier;
|
||||
|
||||
static inline void intel_scu_notifier_add(struct notifier_block *nb)
|
||||
{
|
||||
blocking_notifier_chain_register(&intel_scu_notifier, nb);
|
||||
}
|
||||
|
||||
static inline void intel_scu_notifier_remove(struct notifier_block *nb)
|
||||
{
|
||||
blocking_notifier_chain_unregister(&intel_scu_notifier, nb);
|
||||
}
|
||||
|
||||
static inline int intel_scu_notifier_post(unsigned long v, void *p)
|
||||
{
|
||||
return blocking_notifier_call_chain(&intel_scu_notifier, v, p);
|
||||
}
|
||||
|
||||
#define SCU_AVAILABLE 1
|
||||
#define SCU_DOWN 2
|
||||
|
||||
#endif
|
||||
|
||||
+161
-15
@@ -26,6 +26,8 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/mfd/intel_msic.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/mpspec_def.h>
|
||||
@@ -483,6 +485,128 @@ static void __init *no_platform_data(void *info)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct resource msic_resources[] = {
|
||||
{
|
||||
.start = INTEL_MSIC_IRQ_PHYS_BASE,
|
||||
.end = INTEL_MSIC_IRQ_PHYS_BASE + 64 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct intel_msic_platform_data msic_pdata;
|
||||
|
||||
static struct platform_device msic_device = {
|
||||
.name = "intel_msic",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &msic_pdata,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(msic_resources),
|
||||
.resource = msic_resources,
|
||||
};
|
||||
|
||||
static inline bool mrst_has_msic(void)
|
||||
{
|
||||
return mrst_identify_cpu() == MRST_CPU_CHIP_PENWELL;
|
||||
}
|
||||
|
||||
static int msic_scu_status_change(struct notifier_block *nb,
|
||||
unsigned long code, void *data)
|
||||
{
|
||||
if (code == SCU_DOWN) {
|
||||
platform_device_unregister(&msic_device);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return platform_device_register(&msic_device);
|
||||
}
|
||||
|
||||
static int __init msic_init(void)
|
||||
{
|
||||
static struct notifier_block msic_scu_notifier = {
|
||||
.notifier_call = msic_scu_status_change,
|
||||
};
|
||||
|
||||
/*
|
||||
* We need to be sure that the SCU IPC is ready before MSIC device
|
||||
* can be registered.
|
||||
*/
|
||||
if (mrst_has_msic())
|
||||
intel_scu_notifier_add(&msic_scu_notifier);
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(msic_init);
|
||||
|
||||
/*
|
||||
* msic_generic_platform_data - sets generic platform data for the block
|
||||
* @info: pointer to the SFI device table entry for this block
|
||||
* @block: MSIC block
|
||||
*
|
||||
* Function sets IRQ number from the SFI table entry for given device to
|
||||
* the MSIC platform data.
|
||||
*/
|
||||
static void *msic_generic_platform_data(void *info, enum intel_msic_block block)
|
||||
{
|
||||
struct sfi_device_table_entry *entry = info;
|
||||
|
||||
BUG_ON(block < 0 || block >= INTEL_MSIC_BLOCK_LAST);
|
||||
msic_pdata.irq[block] = entry->irq;
|
||||
|
||||
return no_platform_data(info);
|
||||
}
|
||||
|
||||
static void *msic_battery_platform_data(void *info)
|
||||
{
|
||||
return msic_generic_platform_data(info, INTEL_MSIC_BLOCK_BATTERY);
|
||||
}
|
||||
|
||||
static void *msic_gpio_platform_data(void *info)
|
||||
{
|
||||
static struct intel_msic_gpio_pdata pdata;
|
||||
int gpio = get_gpio_by_name("msic_gpio_base");
|
||||
|
||||
if (gpio < 0)
|
||||
return NULL;
|
||||
|
||||
pdata.gpio_base = gpio;
|
||||
msic_pdata.gpio = &pdata;
|
||||
|
||||
return msic_generic_platform_data(info, INTEL_MSIC_BLOCK_GPIO);
|
||||
}
|
||||
|
||||
static void *msic_audio_platform_data(void *info)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
|
||||
pdev = platform_device_register_simple("sst-platform", -1, NULL, 0);
|
||||
if (IS_ERR(pdev)) {
|
||||
pr_err("failed to create audio platform device\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return msic_generic_platform_data(info, INTEL_MSIC_BLOCK_AUDIO);
|
||||
}
|
||||
|
||||
static void *msic_power_btn_platform_data(void *info)
|
||||
{
|
||||
return msic_generic_platform_data(info, INTEL_MSIC_BLOCK_POWER_BTN);
|
||||
}
|
||||
|
||||
static void *msic_ocd_platform_data(void *info)
|
||||
{
|
||||
static struct intel_msic_ocd_pdata pdata;
|
||||
int gpio = get_gpio_by_name("ocd_gpio");
|
||||
|
||||
if (gpio < 0)
|
||||
return NULL;
|
||||
|
||||
pdata.gpio = gpio;
|
||||
msic_pdata.ocd = &pdata;
|
||||
|
||||
return msic_generic_platform_data(info, INTEL_MSIC_BLOCK_OCD);
|
||||
}
|
||||
|
||||
static const struct devs_id __initconst device_ids[] = {
|
||||
{"pmic_gpio", SFI_DEV_TYPE_SPI, 1, &pmic_gpio_platform_data},
|
||||
{"spi_max3111", SFI_DEV_TYPE_SPI, 0, &max3111_platform_data},
|
||||
@@ -491,7 +615,14 @@ static const struct devs_id __initconst device_ids[] = {
|
||||
{"emc1403", SFI_DEV_TYPE_I2C, 1, &emc1403_platform_data},
|
||||
{"i2c_accel", SFI_DEV_TYPE_I2C, 0, &lis331dl_platform_data},
|
||||
{"pmic_audio", SFI_DEV_TYPE_IPC, 1, &no_platform_data},
|
||||
{"msic_audio", SFI_DEV_TYPE_IPC, 1, &no_platform_data},
|
||||
|
||||
/* MSIC subdevices */
|
||||
{"msic_battery", SFI_DEV_TYPE_IPC, 1, &msic_battery_platform_data},
|
||||
{"msic_gpio", SFI_DEV_TYPE_IPC, 1, &msic_gpio_platform_data},
|
||||
{"msic_audio", SFI_DEV_TYPE_IPC, 1, &msic_audio_platform_data},
|
||||
{"msic_power_btn", SFI_DEV_TYPE_IPC, 1, &msic_power_btn_platform_data},
|
||||
{"msic_ocd", SFI_DEV_TYPE_IPC, 1, &msic_ocd_platform_data},
|
||||
|
||||
{},
|
||||
};
|
||||
|
||||
@@ -558,6 +689,9 @@ static void __init intel_scu_i2c_device_register(int bus,
|
||||
i2c_devs[i2c_next_dev++] = new_dev;
|
||||
}
|
||||
|
||||
BLOCKING_NOTIFIER_HEAD(intel_scu_notifier);
|
||||
EXPORT_SYMBOL_GPL(intel_scu_notifier);
|
||||
|
||||
/* Called by IPC driver */
|
||||
void intel_scu_devices_create(void)
|
||||
{
|
||||
@@ -582,6 +716,7 @@ void intel_scu_devices_create(void)
|
||||
} else
|
||||
i2c_register_board_info(i2c_bus[i], i2c_devs[i], 1);
|
||||
}
|
||||
intel_scu_notifier_post(SCU_AVAILABLE, 0L);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(intel_scu_devices_create);
|
||||
|
||||
@@ -590,6 +725,8 @@ void intel_scu_devices_destroy(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
intel_scu_notifier_post(SCU_DOWN, 0L);
|
||||
|
||||
for (i = 0; i < ipc_next_dev; i++)
|
||||
platform_device_del(ipc_devs[i]);
|
||||
}
|
||||
@@ -606,19 +743,37 @@ static void __init install_irq_resource(struct platform_device *pdev, int irq)
|
||||
platform_device_add_resources(pdev, &res, 1);
|
||||
}
|
||||
|
||||
static void __init sfi_handle_ipc_dev(struct platform_device *pdev)
|
||||
static void __init sfi_handle_ipc_dev(struct sfi_device_table_entry *entry)
|
||||
{
|
||||
const struct devs_id *dev = device_ids;
|
||||
struct platform_device *pdev;
|
||||
void *pdata = NULL;
|
||||
|
||||
while (dev->name[0]) {
|
||||
if (dev->type == SFI_DEV_TYPE_IPC &&
|
||||
!strncmp(dev->name, pdev->name, SFI_NAME_LEN)) {
|
||||
pdata = dev->get_platform_data(pdev);
|
||||
!strncmp(dev->name, entry->name, SFI_NAME_LEN)) {
|
||||
pdata = dev->get_platform_data(entry);
|
||||
break;
|
||||
}
|
||||
dev++;
|
||||
}
|
||||
|
||||
/*
|
||||
* On Medfield the platform device creation is handled by the MSIC
|
||||
* MFD driver so we don't need to do it here.
|
||||
*/
|
||||
if (mrst_has_msic())
|
||||
return;
|
||||
|
||||
/* ID as IRQ is a hack that will go away */
|
||||
pdev = platform_device_alloc(entry->name, entry->irq);
|
||||
if (pdev == NULL) {
|
||||
pr_err("out of memory for SFI platform device '%s'.\n",
|
||||
entry->name);
|
||||
return;
|
||||
}
|
||||
install_irq_resource(pdev, entry->irq);
|
||||
|
||||
pdev->dev.platform_data = pdata;
|
||||
intel_scu_device_register(pdev);
|
||||
}
|
||||
@@ -671,7 +826,6 @@ static int __init sfi_parse_devs(struct sfi_table_header *table)
|
||||
struct sfi_device_table_entry *pentry;
|
||||
struct spi_board_info spi_info;
|
||||
struct i2c_board_info i2c_info;
|
||||
struct platform_device *pdev;
|
||||
int num, i, bus;
|
||||
int ioapic;
|
||||
struct io_apic_irq_attr irq_attr;
|
||||
@@ -699,17 +853,9 @@ static int __init sfi_parse_devs(struct sfi_table_header *table)
|
||||
|
||||
switch (pentry->type) {
|
||||
case SFI_DEV_TYPE_IPC:
|
||||
/* ID as IRQ is a hack that will go away */
|
||||
pdev = platform_device_alloc(pentry->name, irq);
|
||||
if (pdev == NULL) {
|
||||
pr_err("out of memory for SFI platform device '%s'.\n",
|
||||
pentry->name);
|
||||
continue;
|
||||
}
|
||||
install_irq_resource(pdev, irq);
|
||||
pr_debug("info[%2d]: IPC bus, name = %16.16s, "
|
||||
"irq = 0x%2x\n", i, pentry->name, irq);
|
||||
sfi_handle_ipc_dev(pdev);
|
||||
"irq = 0x%2x\n", i, pentry->name, pentry->irq);
|
||||
sfi_handle_ipc_dev(pentry);
|
||||
break;
|
||||
case SFI_DEV_TYPE_SPI:
|
||||
memset(&spi_info, 0, sizeof(spi_info));
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <mach/id.h>
|
||||
|
||||
static struct cpufreq_frequency_table freq_table[] = {
|
||||
|
||||
@@ -189,7 +189,7 @@ config GPIO_U300
|
||||
|
||||
config GPIO_VX855
|
||||
tristate "VIA VX855/VX875 GPIO"
|
||||
depends on MFD_SUPPORT && PCI
|
||||
depends on PCI
|
||||
select MFD_CORE
|
||||
select MFD_VX855
|
||||
help
|
||||
@@ -428,7 +428,6 @@ config GPIO_TIMBERDALE
|
||||
config GPIO_RDC321X
|
||||
tristate "RDC R-321x GPIO support"
|
||||
depends on PCI
|
||||
select MFD_SUPPORT
|
||||
select MFD_CORE
|
||||
select MFD_RDC321X
|
||||
help
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#define MC13783_ADC_NAME "mc13783-adc"
|
||||
|
||||
struct mc13783_adc_priv {
|
||||
struct mc13783 *mc13783;
|
||||
struct mc13xxx *mc13xxx;
|
||||
struct device *hwmon_dev;
|
||||
};
|
||||
|
||||
@@ -51,8 +51,8 @@ static int mc13783_adc_read(struct device *dev,
|
||||
unsigned int sample[4];
|
||||
int ret;
|
||||
|
||||
ret = mc13783_adc_do_conversion(priv->mc13783,
|
||||
MC13783_ADC_MODE_MULT_CHAN,
|
||||
ret = mc13xxx_adc_do_conversion(priv->mc13xxx,
|
||||
MC13XXX_ADC_MODE_MULT_CHAN,
|
||||
channel, sample);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -147,9 +147,9 @@ static const struct attribute_group mc13783_group_ts = {
|
||||
static int mc13783_adc_use_touchscreen(struct platform_device *pdev)
|
||||
{
|
||||
struct mc13783_adc_priv *priv = platform_get_drvdata(pdev);
|
||||
unsigned flags = mc13783_get_flags(priv->mc13783);
|
||||
unsigned flags = mc13xxx_get_flags(priv->mc13xxx);
|
||||
|
||||
return flags & MC13783_USE_TOUCHSCREEN;
|
||||
return flags & MC13XXX_USE_TOUCHSCREEN;
|
||||
}
|
||||
|
||||
static int __init mc13783_adc_probe(struct platform_device *pdev)
|
||||
@@ -161,7 +161,7 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
priv->mc13783 = dev_get_drvdata(pdev->dev.parent);
|
||||
priv->mc13xxx = dev_get_drvdata(pdev->dev.parent);
|
||||
|
||||
platform_set_drvdata(pdev, priv);
|
||||
|
||||
|
||||
@@ -110,7 +110,6 @@ config I2C_I801
|
||||
config I2C_ISCH
|
||||
tristate "Intel SCH SMBus 1.0"
|
||||
depends on PCI
|
||||
select MFD_CORE
|
||||
select LPC_SCH
|
||||
help
|
||||
Say Y here if you want to use SMBus controller on the Intel SCH
|
||||
|
||||
@@ -134,6 +134,16 @@ config INPUT_MAX8925_ONKEY
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called max8925_onkey.
|
||||
|
||||
config INPUT_MC13783_PWRBUTTON
|
||||
tristate "MC13783 ON buttons"
|
||||
depends on MFD_MC13783
|
||||
help
|
||||
Support the ON buttons of MC13783 PMIC as an input device
|
||||
reporting power button status.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called mc13783-pwrbutton.
|
||||
|
||||
config INPUT_MMA8450
|
||||
tristate "MMA8450 - Freescale's 3-Axis, 8/12-bit Digital Accelerometer"
|
||||
depends on I2C
|
||||
|
||||
@@ -28,6 +28,7 @@ obj-$(CONFIG_INPUT_KEYSPAN_REMOTE) += keyspan_remote.o
|
||||
obj-$(CONFIG_INPUT_KXTJ9) += kxtj9.o
|
||||
obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o
|
||||
obj-$(CONFIG_INPUT_MAX8925_ONKEY) += max8925_onkey.o
|
||||
obj-$(CONFIG_INPUT_MC13783_PWRBUTTON) += mc13783-pwrbutton.o
|
||||
obj-$(CONFIG_INPUT_MMA8450) += mma8450.o
|
||||
obj-$(CONFIG_INPUT_MPU3050) += mpu3050.o
|
||||
obj-$(CONFIG_INPUT_PCAP) += pcap_keys.o
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user