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

Commit 6f130478 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: (55 commits)
  regulator: Voltage count for AB3100
  mfd: Convert WM8350 to use request_threaded_irq()
  mfd: Update MAINTAINERS patterns for WM831x
  mfd: Fix twl4030-power warnings
  regulator: AB3100 support
  rtc: AB3100 RTC support
  mfd: Fix ab3100-otp build failure
  mfd: OMAP: Board-specifc twl4030 DPS scripts for RX51 board
  mfd: Print warning for twl4030 out-of-order script loading
  mfd: Add support for TWL4030/5030 dynamic power switching
  mfd: AB3100 OTP readout
  regulator: Add Freescale MC13783 driver
  mfd: Add Freescale MC13783 driver
  mfd: AB3100 disable irq nosync
  mfd: AB3100 alter default setting
  mfd: AB3100 propagate error
  mfd: AB3100 accessor function cleanups
  rtc: Add support for RTCs on Wolfson WM831x devices
  regulator: get pcap data from the parent device
  input: PCAP2 misc input driver
  ...
parents 6f128fa3 75f2ba8f
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
Kernel driver wm831x-hwmon
==========================

Supported chips:
  * Wolfson Microelectronics WM831x PMICs
    Prefix: 'wm831x'
    Datasheet:
	http://www.wolfsonmicro.com/products/WM8310
	http://www.wolfsonmicro.com/products/WM8311
	http://www.wolfsonmicro.com/products/WM8312

Authors: Mark Brown <broonie@opensource.wolfsonmicro.com>

Description
-----------

The WM831x series of PMICs include an AUXADC which can be used to
monitor a range of system operating parameters, including the voltages
of the major supplies within the system.  Currently the driver provides
reporting of all the input values but does not provide any alarms.

Voltage Monitoring
------------------

Voltages are sampled by a 12 bit ADC.  Voltages in milivolts are 1.465
times the ADC value.

Temperature Monitoring
----------------------

Temperatures are sampled by a 12 bit ADC.  Chip and battery temperatures
are available.  The chip temperature is calculated as:

	Degrees celsius = (512.18 - data) / 1.0983

while the battery temperature calculation will depend on the NTC
thermistor component.
+26 −0
Original line number Diff line number Diff line
Kernel driver wm8350-hwmon
==========================

Supported chips:
  * Wolfson Microelectronics WM835x PMICs
    Prefix: 'wm8350'
    Datasheet:
	http://www.wolfsonmicro.com/products/WM8350
	http://www.wolfsonmicro.com/products/WM8351
	http://www.wolfsonmicro.com/products/WM8352

Authors: Mark Brown <broonie@opensource.wolfsonmicro.com>

Description
-----------

The WM835x series of PMICs include an AUXADC which can be used to
monitor a range of system operating parameters, including the voltages
of the major supplies within the system.  Currently the driver provides
simple access to these major supplies.

Voltage Monitoring
------------------

Voltages are sampled by a 12 bit ADC.  For the internal supplies the ADC
is referenced to the system VRTC.
+20 −0
Original line number Diff line number Diff line
@@ -5683,6 +5683,26 @@ S: Supported
F:	drivers/input/touchscreen/*wm97*
F:	include/linux/wm97xx.h

WOLFSON MICROELECTRONICS PMIC DRIVERS
P:	Mark Brown
M:	broonie@opensource.wolfsonmicro.com
L:	linux-kernel@vger.kernel.org
T:	git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
W:	http://opensource.wolfsonmicro.com/node/8
S:	Supported
F:	drivers/leds/leds-wm83*.c
F:	drivers/mfd/wm8*.c
F:	drivers/power/wm83*.c
F:	drivers/rtc/rtc-wm83*.c
F:	drivers/regulator/wm8*.c
F:	drivers/video/backlight/wm83*_bl.c
F:	drivers/watchdog/wm83*_wdt.c
F:	include/linux/mfd/wm831x/
F:	include/linux/mfd/wm8350/
F:	include/linux/mfd/wm8400/
F:	sound/soc/codecs/wm8350.c
F:	sound/soc/codecs/wm8400.c

X.25 NETWORK LAYER
M:	Henner Eisen <eis@baty.hanse.de>
L:	linux-x25@vger.kernel.org
+120 −2
Original line number Diff line number Diff line
/*
 * linux/arch/arm/mach-omap2/board-rx51-flash.c
 * linux/arch/arm/mach-omap2/board-rx51-peripherals.c
 *
 * Copyright (C) 2008-2009 Nokia
 *
@@ -282,7 +282,124 @@ static struct twl4030_usb_data rx51_usb_data = {
	.usb_mode		= T2_USB_MODE_ULPI,
};

static struct twl4030_platform_data rx51_twldata = {
static struct twl4030_ins sleep_on_seq[] __initdata = {
/*
 * Turn off VDD1 and VDD2.
 */
	{MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_OFF), 4},
	{MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_OFF), 2},
/*
 * And also turn off the OMAP3 PLLs and the sysclk output.
 */
	{MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_OFF), 3},
	{MSG_SINGULAR(DEV_GRP_P1, 0x17, RES_STATE_OFF), 3},
};

static struct twl4030_script sleep_on_script __initdata = {
	.script = sleep_on_seq,
	.size   = ARRAY_SIZE(sleep_on_seq),
	.flags  = TWL4030_SLEEP_SCRIPT,
};

static struct twl4030_ins wakeup_seq[] __initdata = {
/*
 * Reenable the OMAP3 PLLs.
 * Wakeup VDD1 and VDD2.
 * Reenable sysclk output.
 */
	{MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_ACTIVE), 0x30},
	{MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_ACTIVE), 0x30},
	{MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_ACTIVE), 0x37},
	{MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 3},
};

static struct twl4030_script wakeup_script __initdata = {
	.script	= wakeup_seq,
	.size	= ARRAY_SIZE(wakeup_seq),
	.flags	= TWL4030_WAKEUP12_SCRIPT,
};

static struct twl4030_ins wakeup_p3_seq[] __initdata = {
/*
 * Wakeup VDD1 (dummy to be able to insert a delay)
 * Enable CLKEN
 */
	{MSG_SINGULAR(DEV_GRP_P1, 0x17, RES_STATE_ACTIVE), 3},
};

static struct twl4030_script wakeup_p3_script __initdata = {
	.script	= wakeup_p3_seq,
	.size	= ARRAY_SIZE(wakeup_p3_seq),
	.flags	= TWL4030_WAKEUP3_SCRIPT,
};

static struct twl4030_ins wrst_seq[] __initdata = {
/*
 * Reset twl4030.
 * Reset VDD1 regulator.
 * Reset VDD2 regulator.
 * Reset VPLL1 regulator.
 * Enable sysclk output.
 * Reenable twl4030.
 */
	{MSG_SINGULAR(DEV_GRP_NULL, RES_RESET, RES_STATE_OFF), 2},
	{MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, 0, 1, RES_STATE_ACTIVE),
		0x13},
	{MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_PP, 0, 2, RES_STATE_WRST), 0x13},
	{MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_PP, 0, 3, RES_STATE_OFF), 0x13},
	{MSG_SINGULAR(DEV_GRP_NULL, RES_VDD1, RES_STATE_WRST), 0x13},
	{MSG_SINGULAR(DEV_GRP_NULL, RES_VDD2, RES_STATE_WRST), 0x13},
	{MSG_SINGULAR(DEV_GRP_NULL, RES_VPLL1, RES_STATE_WRST), 0x35},
	{MSG_SINGULAR(DEV_GRP_P1, RES_HFCLKOUT, RES_STATE_ACTIVE), 2},
	{MSG_SINGULAR(DEV_GRP_NULL, RES_RESET, RES_STATE_ACTIVE), 2},
};

static struct twl4030_script wrst_script __initdata = {
	.script = wrst_seq,
	.size   = ARRAY_SIZE(wrst_seq),
	.flags  = TWL4030_WRST_SCRIPT,
};

static struct twl4030_script *twl4030_scripts[] __initdata = {
	/* wakeup12 script should be loaded before sleep script, otherwise a
	   board might hit retention before loading of wakeup script is
	   completed. This can cause boot failures depending on timing issues.
	*/
	&wakeup_script,
	&sleep_on_script,
	&wakeup_p3_script,
	&wrst_script,
};

static struct twl4030_resconfig twl4030_rconfig[] __initdata = {
	{ .resource = RES_VINTANA1, .devgroup = -1, .type = -1, .type2 = 1 },
	{ .resource = RES_VINTANA2, .devgroup = -1, .type = -1, .type2 = 1 },
	{ .resource = RES_VINTDIG, .devgroup = -1, .type = -1, .type2 = 1 },
	{ .resource = RES_VMMC1, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VMMC2, .devgroup = DEV_GRP_NULL, .type = -1,
	  .type2 = 3},
	{ .resource = RES_VAUX1, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VAUX2, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VAUX3, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VAUX4, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VPLL2, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VDAC, .devgroup = -1, .type = -1, .type2 = 3},
	{ .resource = RES_VSIM, .devgroup = DEV_GRP_NULL, .type = -1,
	  .type2 = 3},
	{ .resource = RES_CLKEN, .devgroup = DEV_GRP_P3, .type = -1,
		.type2 = 1 },
	{ 0, 0},
};

static struct twl4030_power_data rx51_t2scripts_data __initdata = {
	.scripts        = twl4030_scripts,
	.num = ARRAY_SIZE(twl4030_scripts),
	.resource_config = twl4030_rconfig,
};



static struct twl4030_platform_data rx51_twldata __initdata = {
	.irq_base		= TWL4030_IRQ_BASE,
	.irq_end		= TWL4030_IRQ_END,

@@ -291,6 +408,7 @@ static struct twl4030_platform_data rx51_twldata = {
	.keypad			= &rx51_kp_data,
	.madc			= &rx51_madc_data,
	.usb			= &rx51_usb_data,
	.power			= &rx51_t2scripts_data,

	.vaux1			= &rx51_vaux1,
	.vaux2			= &rx51_vaux2,
+7 −0
Original line number Diff line number Diff line
@@ -155,6 +155,13 @@ config GPIO_TWL4030
	  Say yes here to access the GPIO signals of various multi-function
	  power management chips from Texas Instruments.

config GPIO_WM831X
	tristate "WM831x GPIOs"
	depends on MFD_WM831X
	help
	  Say yes here to access the GPIO signals of WM831x power management
	  chips from Wolfson Microelectronics.

comment "PCI GPIO expanders:"

config GPIO_BT8XX
Loading