Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17d30ac0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (47 commits)
  mfd: Rename twl5031 sih modules
  mfd: Storage class for timberdale should be before const qualifier
  mfd: Remove unneeded and dangerous clearing of clientdata
  mfd: New AB8500 driver
  gpio: Fix inverted rdc321x gpio data out registers
  mfd: Change rdc321x resources flags to IORESOURCE_IO
  mfd: Move pcf50633 irq related functions to its own file.
  mfd: Use threaded irq for pcf50633
  mfd: pcf50633-adc: Fix potential race in pcf50633_adc_sync_read
  mfd: Fix pcf50633 bitfield logic in interrupt handler
  gpio: rdc321x needs to select MFD_CORE
  mfd: Use menuconfig for quicker config editing
  ARM: AB3550 board configuration and irq for U300
  mfd: AB3550 core driver
  mfd: AB3100 register access change to abx500 API
  mfd: Renamed ab3100.h to abx500.h
  gpio: Add TC35892 GPIO driver
  mfd: Add Toshiba's TC35892 MFD core
  mfd: Delay to mask tsc irq in max8925
  mfd: Remove incorrect wm8350 kfree
  ...
parents e38c1e54 191211f5
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <linux/i2c.h>
#include <linux/i2c/at24.h>
#include <linux/i2c/pca953x.h>
#include <linux/mfd/tps6507x.h>
#include <linux/gpio.h>
#include <linux/platform_device.h>
#include <linux/mtd/mtd.h>
@@ -24,6 +25,8 @@
#include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/tps6507x.h>
#include <linux/input/tps6507x-ts.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -533,10 +536,24 @@ struct regulator_init_data tps65070_regulator_data[] = {
	},
};

static struct touchscreen_init_data tps6507x_touchscreen_data = {
	.poll_period =  30,	/* ms between touch samples */
	.min_pressure = 0x30,	/* minimum pressure to trigger touch */
	.vref = 0,		/* turn off vref when not using A/D */
	.vendor = 0,		/* /sys/class/input/input?/id/vendor */
	.product = 65070,	/* /sys/class/input/input?/id/product */
	.version = 0x100,	/* /sys/class/input/input?/id/version */
};

static struct tps6507x_board tps_board = {
	.tps6507x_pmic_init_data = &tps65070_regulator_data[0],
	.tps6507x_ts_init_data = &tps6507x_touchscreen_data,
};

static struct i2c_board_info __initdata da850evm_tps65070_info[] = {
	{
		I2C_BOARD_INFO("tps6507x", 0x48),
		.platform_data = &tps65070_regulator_data[0],
		.platform_data = &tps_board,
	},
};

+56 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
 */
#include <linux/kernel.h>
#include <linux/i2c.h>
#include <linux/mfd/ab3100.h>
#include <linux/mfd/abx500.h>
#include <linux/regulator/machine.h>
#include <linux/amba/bus.h>
#include <mach/irqs.h>
@@ -46,6 +46,7 @@
/* BUCK SLEEP 0xAC: 1.05V, Not used, SLEEP_A and B, Not used */
#define BUCK_SLEEP_SETTING	0xAC

#ifdef CONFIG_AB3100_CORE
static struct regulator_consumer_supply supply_ldo_c[] = {
	{
		.dev_name = "ab3100-codec",
@@ -253,14 +254,68 @@ static struct ab3100_platform_data ab3100_plf_data = {
		LDO_D_SETTING,
	},
};
#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)
	{
		.type = "ab3100",
		.addr = 0x48,
		.irq = IRQ_U300_IRQ0_EXT,
		.platform_data = &ab3100_plf_data,
	},
#else
	{ },
#endif
};

static struct i2c_board_info __initdata bus1_i2c_board_info[] = {
+7 −0
Original line number Diff line number Diff line
@@ -109,6 +109,13 @@
#define U300_NR_IRQS			48
#endif

#ifdef CONFIG_AB3550_CORE
#define IRQ_AB3550_BASE			(U300_NR_IRQS)
#define IRQ_AB3550_END			(IRQ_AB3550_BASE + 37)

#define NR_IRQS				(IRQ_AB3550_END + 1)
#else
#define NR_IRQS U300_NR_IRQS
#endif

#endif
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ struct pl022_config_chip ab4500_chip_info = {

static struct spi_board_info u8500_spi_devices[] = {
	{
		.modalias = "ab4500",
		.modalias = "ab8500",
		.controller_data = &ab4500_chip_info,
		.max_speed_hz = 12000000,
		.bus_num = 0,
+26 −0
Original line number Diff line number Diff line
@@ -195,6 +195,13 @@ config GPIO_PCF857X
	  This driver provides an in-kernel interface to those GPIOs using
	  platform-neutral GPIO calls.

config GPIO_TC35892
	bool "TC35892 GPIOs"
	depends on MFD_TC35892
	help
	  This enables support for the GPIOs found on the TC35892
	  I/O Expander.

config GPIO_TWL4030
	tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
	depends on TWL4030_CORE
@@ -282,6 +289,15 @@ config GPIO_TIMBERDALE
	---help---
	Add support for the GPIO IP in the timberdale FPGA.

config GPIO_RDC321X
	tristate "RDC R-321x GPIO support"
	depends on PCI && GPIOLIB
	select MFD_CORE
	select MFD_RDC321X
	help
	  Support for the RDC R321x SoC GPIOs over southbridge
	  PCI configuration space.

comment "SPI GPIO expanders:"

config GPIO_MAX7301
@@ -317,4 +333,14 @@ config GPIO_UCB1400
	  To compile this driver as a module, choose M here: the
	  module will be called ucb1400_gpio.

comment "MODULbus GPIO expanders:"

config GPIO_JANZ_TTL
	tristate "Janz VMOD-TTL Digital IO Module"
	depends on MFD_JANZ_CMODIO
	help
	  This enables support for the Janz VMOD-TTL Digital IO module.
	  This driver provides support for driving the pins in output
	  mode only. Input mode is not supported.

endif
Loading