]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
9 years agomfd: omap-usb-host: Fix improper mask use.
Michael Welling [Mon, 28 Jul 2014 23:01:04 +0000 (18:01 -0500)]
mfd: omap-usb-host: Fix improper mask use.

single-ulpi-bypass is a flag used for older OMAP3 silicon.

The flag when set, can excite code that improperly uses the
OMAP_UHH_HOSTCONFIG_UPLI_BYPASS define to clear the corresponding bit.
Instead it clears all of the other bits disabling all of the ports in
the process.

Cc: stable@vger.kernel.org
Signed-off-by: Michael Welling <mwelling@emacinc.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: arizona: Only free the CTRLIF_ERR IRQ if we requested it
Charles Keepax [Tue, 15 Jul 2014 10:21:50 +0000 (11:21 +0100)]
mfd: arizona: Only free the CTRLIF_ERR IRQ if we requested it

We only request the control interface error IRQ if we set ctrlif_error,
as such we should only free it in that situation. Otherwise we will
attempt to free an IRQ we never requested and get a warning from the IRQ
core.

This patch moves the ctrlif_error variable into the arizona structure
and checks it in all cases we free the control interface error IRQ.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: arizona: Add missing handling for ISRC3 under/overclocked
Charles Keepax [Tue, 15 Jul 2014 10:21:49 +0000 (11:21 +0100)]
mfd: arizona: Add missing handling for ISRC3 under/overclocked

Some parts have a third ISRC, this patch adds handling for the under and
overclocked interrupts from this ISRC.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm5110: Add new interrupt register definitions
Charles Keepax [Tue, 15 Jul 2014 10:21:48 +0000 (11:21 +0100)]
mfd: wm5110: Add new interrupt register definitions

Newer versions of the IP have a lot of new interrupts and move several
existing interrupts. This patch adds the register definitions and regmap
hookup for these interrupts.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: arizona: Rename thermal shutdown interrupt
Charles Keepax [Tue, 15 Jul 2014 10:21:47 +0000 (11:21 +0100)]
mfd: arizona: Rename thermal shutdown interrupt

Newer versions of the IP introduce short circuit protection which will
also shutdown the speaker. Rename the interrupt and associated register
bits associated with thermal events to better fit the function and avoid
conflict with future interrupt additions.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm5110: Add in the output done interrupts
Charles Keepax [Tue, 15 Jul 2014 10:21:46 +0000 (11:21 +0100)]
mfd: wm5110: Add in the output done interrupts

wm5110 has interrupts to signal that an output has fully enabled. This
patch adds in these interrupts although use is not made of them yet.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm5110: Remove non-existant interrupts
Charles Keepax [Tue, 15 Jul 2014 10:21:45 +0000 (11:21 +0100)]
mfd: wm5110: Remove non-existant interrupts

The DCS_DAC_DONE and DCS_HP_DONE interrupts do not exist on the wm5110
version of the IP. This patch removes them from the regmap IRQ
structure.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: tps65912-spi: Remove unused variable
Sachin Kamat [Fri, 18 Jul 2014 12:00:17 +0000 (17:30 +0530)]
mfd: tps65912-spi: Remove unused variable

‘rx_buf’ is not used in this function.

Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: htc-i2cpld: Remove unused code
Sachin Kamat [Fri, 18 Jul 2014 12:00:16 +0000 (17:30 +0530)]
mfd: htc-i2cpld: Remove unused code

Removed code unused in this function.

Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: da9063: Add support for AD silicon variant
Opensource [Steve Twiss] [Mon, 21 Jul 2014 10:39:33 +0000 (11:39 +0100)]
mfd: da9063: Add support for AD silicon variant

Add register definitions for DA9063 AD (0x3) silicon variant ID
the ability to choose the silicon variant at run-time using regmap
configuration. This patch also adds RTC support for the AD silicon
changes.

It adds both BB and AD support as regmap ranges and then makes the
distinction between the two tables at run-time. This allows both AD
and BB silicon variants to be supported at the same time.

Suggested-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Opensource [Steve Twiss] <stwiss.opensource@diasemi.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: arizona: Map MICVDD from extcon device to the Arizona core
Charles Keepax [Fri, 25 Jul 2014 15:24:44 +0000 (16:24 +0100)]
mfd: arizona: Map MICVDD from extcon device to the Arizona core

The extcon driver should be able to get its regulator against rather
than against the main arizona device, we must add a supply mapping
allowing the regulator to be located. This patch does so.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: arizona: Add MICVDD to mapped regulators for wm8997
Charles Keepax [Fri, 25 Jul 2014 15:24:43 +0000 (16:24 +0100)]
mfd: arizona: Add MICVDD to mapped regulators for wm8997

The previous update adding MICVDD to the regulator mappings:

mfd: arizona: Add MICVDD to mapped regulators

Only added the mapping for wm5102 and wm5110 but wm8997 also has a
MICVDD supply that needs to be mapped back to the main Arizona device.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Ensure device type IDs are architecture agnostic
Lee Jones [Thu, 24 Jul 2014 16:07:16 +0000 (17:07 +0100)]
mfd: max77686: Ensure device type IDs are architecture agnostic

Extinguishes:

../drivers/mfd/max77686.c: In function ‘max77686_i2c_probe’:
../drivers/mfd/max77686.c:254:20:
warning: cast from pointer to integer of different size

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Add Maxim 77802 PMIC support
Javier Martinez Canillas [Thu, 24 Jul 2014 12:39:24 +0000 (14:39 +0200)]
mfd: max77686: Add Maxim 77802 PMIC support

Maxim MAX77802 is a power management chip that contains 10 high
efficiency Buck regulators, 32 Low-dropout (LDO) regulators used
to power up application processors and peripherals, a 2-channel
32kHz clock outputs, a Real-Time-Clock (RTC) and a I2C interface
to program the individual regulators, clocks outputs and the RTC.

This patch adds support for MAX77802 to the MAX77686 driver and is
based on a driver added to the Chrome OS kernel 3.8 by Simon Glass.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: tps6105x: Use managed resources when allocating memory
Himangi Saraogi [Sat, 19 Jul 2014 08:30:10 +0000 (14:00 +0530)]
mfd: tps6105x: Use managed resources when allocating memory

This patch introduces the use of devm_kzalloc instead of the
corresponding unmanaged version and does away with the kfrees in the
probe and remove functions. Also, a label is done away with.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm8997-tables: Suppress 'line over 80 chars' warnings
Lee Jones [Mon, 21 Jul 2014 15:52:34 +0000 (16:52 +0100)]
mfd: wm8997-tables: Suppress 'line over 80 chars' warnings

This is part of an effort to clean-up the MFD subsystem.

WARNING: line over 80 characters
+       { 0x00000068, 0x01FF },    /* R104   - Always On Triggers Sequence Select 3 */

WARNING: line over 80 characters
+       { 0x00000069, 0x01FF },    /* R105   - Always On Triggers Sequence Select 4 */

WARNING: line over 80 characters
+       { 0x0000006A, 0x01FF },    /* R106   - Always On Triggers Sequence Select 5 */

WARNING: line over 80 characters
+       { 0x0000006B, 0x01FF },    /* R107   - Always On Triggers Sequence Select 6 */

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: kempld-core: Correct a variety of checkpatch warnings
Lee Jones [Mon, 21 Jul 2014 15:47:51 +0000 (16:47 +0100)]
mfd: kempld-core: Correct a variety of checkpatch warnings

WARNING: line over 80 characters
+module_param_string(force_device_id, force_device_id, sizeof(force_device_id), 0);

WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
+               msleep(1);

WARNING: __initdata should be placed after kempld_dmi_table[]
+static struct dmi_system_id __initdata kempld_dmi_table[] = {

WARNING: line over 80 characters
+               for (id = kempld_dmi_table; id->matches[0].slot != DMI_NONE; id++)

total: 0 errors, 4 warnings, 771 lines checked

This is part of an effort to clean-up the MFD subsystem.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: ipaq-micro: Fix coding style errors/warnings reported by checkpatch
Lee Jones [Mon, 21 Jul 2014 15:08:55 +0000 (16:08 +0100)]
mfd: ipaq-micro: Fix coding style errors/warnings reported by checkpatch

This is part of an effort to clean-up the MFD subsystem.

ERROR: space required before the open parenthesis '('
+                       if(!micro->msg)

WARNING: unnecessary whitespace before a quoted newline
+                       dev_dbg(micro->dev, "key message ignored, no handle \n");

WARNING: unnecessary whitespace before a quoted newline
+                       dev_dbg(micro->dev, "touchscreen message ignored, no handle \n");

WARNING: space prohibited before semicolon
+               rx->id = (ch & 0xf0) >> 4 ;

total: 1 errors, 3 warnings, 482 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: si476x-cmd: Remedy checkpatch style complains
Lee Jones [Mon, 21 Jul 2014 14:13:09 +0000 (15:13 +0100)]
mfd: si476x-cmd: Remedy checkpatch style complains

This is part of an effort to clean-up the MFD subsystem.

WARNING: line over 80 characters
+                        struct si476x_rsq_status_args *rsqargs,

WARNING: line over 80 characters
+                        struct si476x_rsq_status_report *report)

WARNING: Unnecessary space before function pointer arguments
+       int (*power_up) (struct si476x_core *,

WARNING: Unnecessary space before function pointer arguments
+       int (*power_down) (struct si476x_core *,

total: 0 errors, 4 warnings, 1555 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: tc6387xb: Remove unnecessary braces and correct style warnings
Lee Jones [Mon, 21 Jul 2014 14:10:35 +0000 (15:10 +0100)]
mfd: tc6387xb: Remove unnecessary braces and correct style warnings

This is part of an effort to clean-up the MFD subsystem.

WARNING: braces {} are not necessary for single statement blocks
+       if (!iomem) {
+               return -EINVAL;
+       }

WARNING: sizeof *tc6387xb should be sizeof(*tc6387xb)
+       tc6387xb = kzalloc(sizeof *tc6387xb, GFP_KERNEL);

WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(...  to printk(KERN_INFO ...
+       printk(KERN_INFO "Toshiba tc6387xb initialised\n");

total: 0 errors, 3 warnings, 242 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: twl6030-irq: Extinguish coding style warnings
Lee Jones [Mon, 21 Jul 2014 14:06:35 +0000 (15:06 +0100)]
mfd: twl6030-irq: Extinguish coding style warnings

This is part of an effort to clean-up the MFD subsystem.

WARNING: please, no space before tabs
+^IRSV_INTR_OFFSET,  ^I/* Bit 12^IReserved^I^I*/$

WARNING: Missing a blank line after declarations
+       u8 unmask_value;
+       ret = twl_i2c_read_u8(TWL_MODULE_PIH, &unmask_value,

WARNING: Missing a blank line after declarations
+       u8 mask_value;
+       ret = twl_i2c_read_u8(TWL_MODULE_PIH, &mask_value,

total: 0 errors, 3 warnings, 484 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm8350-i2c: Replace spaces with tabs
Lee Jones [Mon, 21 Jul 2014 14:04:10 +0000 (15:04 +0100)]
mfd: wm8350-i2c: Replace spaces with tabs

This is part of an effort to clean-up the MFD subsystem.

WARNING: please, no spaces at the start of a line
+       { "wm8350", 0 },$

WARNING: please, no spaces at the start of a line
+       { "wm8351", 0 },$

WARNING: please, no spaces at the start of a line
+       { "wm8352", 0 },$

WARNING: please, no spaces at the start of a line
+       { }$

total: 0 errors, 4 warnings, 93 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max8925-core: Fix 'missing blank line after declarations' warning
Lee Jones [Mon, 21 Jul 2014 13:16:23 +0000 (14:16 +0100)]
mfd: max8925-core: Fix 'missing blank line after declarations' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: Missing a blank line after declarations
+       struct max8925_chip *chip = irq_data_get_irq_chip_data(data);
+       max8925_irqs[data->irq - chip->irq_base].enable

WARNING: Missing a blank line after declarations
+       struct max8925_chip *chip = irq_data_get_irq_chip_data(data);
+       max8925_irqs[data->irq - chip->irq_base].enable = 0;

total: 0 errors, 2 warnings, 927 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: twl4030-irq: Fix style warnings relating to pr_warn() and sizeof()
Lee Jones [Mon, 21 Jul 2014 13:05:24 +0000 (14:05 +0100)]
mfd: twl4030-irq: Fix style warnings relating to pr_warn() and sizeof()

This is part of an effort to clean-up the MFD subsystem.

WARNING: Prefer pr_warn(... to pr_warning(...
+               pr_warning("twl4030: I2C error %d reading PIH ISR\n", ret);

WARNING: sizeof buf should be sizeof(buf)
+       memset(buf, 0xff, sizeof buf);

WARNING: sizeof *agent should be sizeof(*agent)
+       agent = kzalloc(sizeof *agent, GFP_KERNEL);

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: lp8788-irq: Fix 'missing blank line after declarations' warning
Lee Jones [Mon, 21 Jul 2014 12:44:01 +0000 (13:44 +0100)]
mfd: lp8788-irq: Fix 'missing blank line after declarations' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: Missing a blank line after declarations
+       struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data);
+       irqd->enabled[data->hwirq] = 1;

WARNING: Missing a blank line after declarations
+       struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data);
+       irqd->enabled[data->hwirq] = 0;

total: 0 errors, 2 warnings, 198 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: ezx-pcap: Repair coding style errors picked up with checkpatch
Lee Jones [Fri, 25 Jul 2014 14:31:02 +0000 (15:31 +0100)]
mfd: ezx-pcap: Repair coding style errors picked up with checkpatch

This is part of an effort to clean-up the MFD subsystem.

WARNING: sizeof t should be sizeof(t)
+       memset(&t, 0, sizeof t);

WARNING: void function return statements are not generally useful
+       return;
+}

total: 0 errors, 2 warnings, 542 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: twl6040: Fix 'insert space after ','', error
Lee Jones [Mon, 21 Jul 2014 12:13:48 +0000 (13:13 +0100)]
mfd: twl6040: Fix 'insert space after ','', error

This is part of an effort to clean-up the MFD subsystem.

ERROR: space required after that ',' (ctx:VxO)
+                                 0, &twl6040_irq_chip,&twl6040->irq_data);
                                                      ^

ERROR: space required before that '&' (ctx:OxV)
+                                 0, &twl6040_irq_chip,&twl6040->irq_data);
                                                       ^

total: 2 errors, 0 warnings, 816 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: sec-core: Fix 'missing blank line after declarations' warning
Lee Jones [Mon, 21 Jul 2014 12:09:25 +0000 (13:09 +0100)]
mfd: sec-core: Fix 'missing blank line after declarations' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: Missing a blank line after declarations
+               const struct of_device_id *match;
+               match = of_match_node(sec_dt_match, i2c->dev.of_node);

total: 0 errors, 1 warnings, 494 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: dm355evm_msp: Fix checkpatch error: insert space after ','
Lee Jones [Mon, 21 Jul 2014 12:06:42 +0000 (13:06 +0100)]
mfd: dm355evm_msp: Fix checkpatch error: insert space after ','

This is part of an effort to clean-up the MFD subsystem.

ERROR: space required after that ',' (ctx:VxV)
+#define MSP_GPIO(bit,reg)      ((DM355EVM_MSP_ ## reg) << 3 | (bit))
                     ^

total: 1 errors, 0 warnings, 437 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: wm8350-irq: Fix 'line over 80 chars' warning
Lee Jones [Mon, 21 Jul 2014 11:57:25 +0000 (12:57 +0100)]
mfd: wm8350-irq: Fix 'line over 80 chars' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: line over 80 characters
+       wm8350->irq_base = irq_alloc_descs(irq_base, 0, ARRAY_SIZE(wm8350_irqs), 0);

total: 0 errors, 1 warnings, 552 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: mcp-core: Fix 'blank line after declarations' warning
Lee Jones [Mon, 21 Jul 2014 11:53:56 +0000 (12:53 +0100)]
mfd: mcp-core: Fix 'blank line after declarations' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: Missing a blank line after declarations
+       unsigned long flags;
+       spin_lock_irqsave(&mcp->lock, flags);

total: 0 errors, 1 warnings, 238 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max8925-i2c: Fix 'blank line after declarations' warning
Lee Jones [Mon, 21 Jul 2014 11:18:21 +0000 (12:18 +0100)]
mfd: max8925-i2c: Fix 'blank line after declarations' warning

This is part of an effort to clean-up the MFD subsystem.

WARNING: Missing a blank line after declarations
+       int ret;
+       ret = i2c_add_driver(&max8925_driver);

total: 0 errors, 1 warnings, 275 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Fix 'line over 80 chars' warning
Lee Jones [Mon, 21 Jul 2014 11:15:55 +0000 (12:15 +0100)]
mfd: max77686: Fix 'line over 80 chars' warning

This is part of an effort to clean-up the MFD subsystem.

+WARNING: line over 80 characters
+                                      &max77686_rtc_regmap_config);

total: 0 errors, 1 warnings, 299 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Remove unneeded OOM error message
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:10 +0000 (22:24 +0200)]
mfd: max77686: Remove unneeded OOM error message

There is no need to print out-of-memory errors since this is already
done by the memory management subsystem which even calls dump_stack().

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Make error checking consistent
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:09 +0000 (22:24 +0200)]
mfd: max77686: Make error checking consistent

Error checking across the driver is mostly consistent besides
a few exceptions, so change these exceptions for consistency.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Return correct error when pdata isn't found
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:08 +0000 (22:24 +0200)]
mfd: max77686: Return correct error when pdata isn't found

When platform data is not found an -EIO (I/O error) code is returned.
This doesn't seem to be the correct error so better return -EINVAL
(Invalid argument) which is what most drivers do in this case.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Make platform data over-rule DT
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:07 +0000 (22:24 +0200)]
mfd: max77686: Make platform data over-rule DT

The function max77802_i2c_parse_dt_pdata() should only be called
if there isn't already platform data for the device.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Don't define dummy function if OF isn't enabled
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:06 +0000 (22:24 +0200)]
mfd: max77686: Don't define dummy function if OF isn't enabled

When the CONFIG_OF option was not enabled, a dummy function
max77686_i2c_parse_dt_pdata() was defined since this is called
unconditionally on probe(). Just always define the real function
and conditionally call it if CONFIG_OF is enabled instead.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Add power management support
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:05 +0000 (22:24 +0200)]
mfd: max77686: Add power management support

The driver doesn't have PM operations defined so add a suspend
and resume function handlers to allow the PMIC IRQ to wakeup
the system when it is put into a sleep state.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: max77686: Convert to use regmap_irq
Javier Martinez Canillas [Fri, 4 Jul 2014 20:24:04 +0000 (22:24 +0200)]
mfd: max77686: Convert to use regmap_irq

By using the generic IRQ support in the Register map API, it
is possible to get rid max77686-irq.c and simplify the code.

Suggested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Tested-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: sun6i-prcm: Add support for Allwinner A23 PRCM
Chen-Yu Tsai [Wed, 9 Jul 2014 07:54:36 +0000 (15:54 +0800)]
mfd: sun6i-prcm: Add support for Allwinner A23 PRCM

The Allwinner A23 SoC has a PRCM unit like the previous A31 SoC.
The differences are the AR100 clock can no longer be modified,
the APB0 clock has different divisors, and some clock gates are
gone.

This patch adds a compatible with a modified subdevice list for
the A23.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
9 years agomfd: ab8500-debugfs: BIG clean-up
Lee Jones [Mon, 14 Jul 2014 17:29:16 +0000 (18:29 +0100)]
mfd: ab8500-debugfs: BIG clean-up

When checkpatch is run on ab8500-debugfs.c it screamed blue murder!

This patch fixes up all of the errors/warnings reported:

WARNING: line over 80 characters
+ err = seq_printf(s, "  [0x%02X/0x%02X]: 0x%02X\n",

WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(...  to printk(KERN_INFO ...
+ printk(KERN_INFO" [0x%02X/0x%02X]: 0x%02X\n",

WARNING: Prefer seq_puts to seq_printf
+ seq_printf(s, AB8500_NAME_STRING " register values:\n");

WARNING: Prefer seq_puts to seq_printf
+ seq_printf(s, AB8500_NAME_STRING " register values:\n");

WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(...  to printk(KERN_INFO ...
+ printk(KERN_INFO"ab8500 register values:\n");

WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(...  to printk(KERN_INFO ...
+ printk(KERN_INFO" bank 0x%02X:\n", i);

WARNING: externs should be avoided in .c files
+extern int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);

WARNING: quoted string split across lines
+ pr_info("Saving all ABB registers at \"ab8500_complete_register_dump\" "
+ "for crash analyze.\n");

WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(...  to printk(KERN_ERR ...
+ printk(KERN_ERR "abx500_set_reg failed %d, %d", err, __LINE__);

WARNING: Prefer seq_puts to seq_printf
+ seq_printf(s, "name: number:  number of: wake:\n");

WARNING: line over 80 characters
+ return single_open(file, ab8500_print_modem_registers, inode->i_private);

WARNING: line over 80 characters
+ return single_open(file, ab8500_gpadc_btemp_ball_print, inode->i_private);

WARNING: line over 80 characters
+ return single_open(file, ab8500_gpadc_main_bat_v_print, inode->i_private);

WARNING: line over 80 characters
+ vbat_true_meas_convert = ab8500_gpadc_ad_to_voltage(gpadc, VBAT_TRUE_MEAS,

WARNING: line over 80 characters
+static int ab8540_gpadc_vbat_true_meas_and_ibat_print(struct seq_file *s, void *p)

WARNING: line over 80 characters
+static const struct file_operations ab8540_gpadc_vbat_true_meas_and_ibat_fops = {

WARNING: line over 80 characters
+ vmain_l, vmain_h, btemp_l, btemp_h, vbat_l, vbat_h, ibat_l, ibat_h);

WARNING: quoted string split across lines
+ dev_err(dev, "debugfs error input: "
+ "should be egal to 1, 4, 8 or 16\n");

WARNING: Missing a blank line after declarations
+ char *s = b;
+ if ((*s == '0') && ((*(s+1) == 'x') || (*(s+1) == 'X'))) {

WARNING: simple_strtoul is obsolete, use kstrtoul instead
+ loc.mask = simple_strtoul(b, &b, 0);

WARNING: simple_strtol is obsolete, use kstrtol instead
+ loc.shift = simple_strtol(b, &b, 0);

WARNING: simple_strtoul is obsolete, use kstrtoul instead
+ loc.bank = simple_strtoul(b, &b, 0);

WARNING: simple_strtoul is obsolete, use kstrtoul instead
+ loc.addr = simple_strtoul(b, &b, 0);

WARNING: simple_strtoul is obsolete, use kstrtoul instead
+ val = simple_strtoul(b, &b, 0);

WARNING: quoted string split across lines
+ pr_warn("HWREG request: %s, %s, addr=0x%08X, mask=0x%X, shift=%d"
+ "value=0x%X\n", (write) ? "write" : "read",

WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(...  to printk(KERN_ERR ...
+ printk(KERN_ERR "sysfs_create_file failed %d\n", err);

WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(...  to printk(KERN_ERR ...
+ printk(KERN_ERR "request_threaded_irq failed %d, %lu\n",

ERROR: code indent should use tabs where possible
+                       err, user_val);$

WARNING: please, no spaces at the start of a line
+                       err, user_val);$

WARNING: Missing a blank line after declarations
+ struct resource *res;
+ debug_bank = AB8500_MISC;

ERROR: space required after that ',' (ctx:VxV)
+ sizeof(*dev_attr)*num_irqs,GFP_KERNEL);
                            ^

WARNING: return of an errno should typically be -ve (return -ENXIO)
+ return ENXIO;

WARNING: line over 80 characters
+ file = debugfs_create_file("register-bank", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("register-address", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("register-value", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("irq-subscribe", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("irq-unsubscribe", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("all-modem-registers", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("main_charger_v", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("main_charger_c", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("usb_charger_c", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("xtal_temp", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ ab8500_gpadc_dir, &plf->dev, &ab8540_gpadc_xtal_temp_fops);

WARNING: line over 80 characters
+ file = debugfs_create_file("vbattruemeas", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ file = debugfs_create_file("otp_calib", (S_IRUGO | S_IWUSR | S_IWGRP),

WARNING: line over 80 characters
+ ab8500_gpadc_dir, &plf->dev, &ab8540_gpadc_otp_calib_fops);

total: 2 errors, 44 warnings, 3230 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Update DT binding to support MICVDD init_data
Charles Keepax [Thu, 10 Jul 2014 16:04:09 +0000 (17:04 +0100)]
mfd: arizona: Update DT binding to support MICVDD init_data

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Update DT binding to support LDO1 init_data
Charles Keepax [Thu, 10 Jul 2014 16:04:08 +0000 (17:04 +0100)]
mfd: arizona: Update DT binding to support LDO1 init_data

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoDoc: mfd: as3722: Add details of optional missing property
Laxman Dewangan [Mon, 9 Jun 2014 07:03:37 +0000 (12:33 +0530)]
Doc: mfd: as3722: Add details of optional missing property

Add details of following properties which are used on driver but
not documented on DT binding document.
- ams,enable-internal-int-pullup
- ams,enable-internal-i2c-pullup

Reported-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Use the proper size when looking at the cros_ec_i2c result
Doug Anderson [Fri, 27 Jun 2014 19:56:12 +0000 (12:56 -0700)]
mfd: cros_ec: Use the proper size when looking at the cros_ec_i2c result

We know how many bytes the EC should be sending us (which is also the
number of bytes transferred) and also how many bytes the EC actually
wanted to send to us.  When computing the checksum and copying back
data let's make sure we take the lesser of the two of those.  We'll
also complain if the EC tried to send us too many bytes.  The EC
sending us too few bytes is legit for when we send the EC an invalid
command.

This is based on similar code in cros_ec_spi.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-core: Resolve code style issues
Lee Jones [Thu, 8 May 2014 13:11:37 +0000 (14:11 +0100)]
mfd: ab8500-core: Resolve code style issues

Soothes the following checkpatch warnings:

    WARNING: line over 80 characters
    #151: FILE: drivers/mfd/ab8500-core.c:151:
    + 0, 1, 2, 3, 4, -1, -1, -1, -1, 11, 18, 19, 20, 21, 12, 13, 24, 5, 22, 23,

    ERROR: spaces required around that '=' (ctx:VxW)
    #325: FILE: drivers/mfd/ab8500-core.c:325:
    + ret= mask_and_set_register_interruptible(ab8500, bank, reg,
         ^

    WARNING: line over 80 characters
    #418: FILE: drivers/mfd/ab8500-core.c:418:
    + else if (offset >= AB9540_INT_GPIO50R && offset <= AB9540_INT_GPIO54R)

    WARNING: line over 80 characters
    #420: FILE: drivers/mfd/ab8500-core.c:420:
    + else if (offset == AB8540_INT_GPIO43R || offset == AB8540_INT_GPIO44R)

    ERROR: spaces required around that '==' (ctx:VxV)
    #454: FILE: drivers/mfd/ab8500-core.c:454:
    + if ((i==3) && (*offset >= 24))
            ^

    ERROR: code indent should use tabs where possible
    #576: FILE: drivers/mfd/ab8500-core.c:576:
    +        .map    = ab8500_irq_map,$

    WARNING: please, no spaces at the start of a line
    #576: FILE: drivers/mfd/ab8500-core.c:576:
    +        .map    = ab8500_irq_map,$

    ERROR: code indent should use tabs where possible
    #577: FILE: drivers/mfd/ab8500-core.c:577:
    +        .xlate  = irq_domain_xlate_twocell,$

    WARNING: please, no spaces at the start of a line
    #577: FILE: drivers/mfd/ab8500-core.c:577:
    +        .xlate  = irq_domain_xlate_twocell,$

    WARNING: char * array declaration might be better as static const
    #1554: FILE: drivers/mfd/ab8500-core.c:1554:
    + static char *switch_off_status[] = {

    WARNING: char * array declaration might be better as static const
    #1563: FILE: drivers/mfd/ab8500-core.c:1563:
    + static char *turn_on_status[] = {

    WARNING: sizeof *ab8500 should be sizeof(*ab8500)
    #1582: FILE: drivers/mfd/ab8500-core.c:1582:
    + ab8500 = devm_kzalloc(&pdev->dev, sizeof *ab8500, GFP_KERNEL);

    ERROR: space required after that close brace '}'
    #1639: FILE: drivers/mfd/ab8500-core.c:1639:
    + }/* Configure AB8500 or AB9540 IRQ */

    WARNING: line over 80 characters
    #1652: FILE: drivers/mfd/ab8500-core.c:1652:
    + ab8500->oldmask = devm_kzalloc(&pdev->dev, ab8500->mask_size, GFP_KERNEL);

    WARNING: Prefer [subsystem eg: netdev]_cont([subsystem]dev, ... then dev_cont(dev, ... then pr_cont(...  to printk(KERN_CONT ...
    #1677: FILE: drivers/mfd/ab8500-core.c:1677:
    + printk(KERN_CONT " \"%s\"",

    WARNING: Prefer [subsystem eg: netdev]_cont([subsystem]dev, ... then dev_cont(dev, ... then pr_cont(...  to printk(KERN_CONT ...
    #1682: FILE: drivers/mfd/ab8500-core.c:1682:
    + printk(KERN_CONT "\n");

    WARNING: Prefer [subsystem eg: netdev]_cont([subsystem]dev, ... then dev_cont(dev, ... then pr_cont(...  to printk(KERN_CONT ...
    #1684: FILE: drivers/mfd/ab8500-core.c:1684:
    + printk(KERN_CONT " None\n");

    WARNING: printk() should include KERN_ facility level
    #1695: FILE: drivers/mfd/ab8500-core.c:1695:
    + printk("\"%s\" ", turn_on_status[i]);

    WARNING: printk() should include KERN_ facility level
    #1700: FILE: drivers/mfd/ab8500-core.c:1700:
    + printk("None\n");

    total: 5 errors, 14 warnings, 1869 lines checked

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab3100-core: Correct code sytle problems
Lee Jones [Thu, 8 May 2014 12:47:15 +0000 (13:47 +0100)]
mfd: ab3100-core: Correct code sytle problems

Corrects the following checkpatch gripes:

    WARNING: quoted string split across lines
    #95: FILE: drivers/mfd/ab3100-core.c:95:
    + "write error (write register) "
    + "%d bytes transferred (expected 2)\n",

    WARNING: quoted string split across lines
    #139: FILE: drivers/mfd/ab3100-core.c:139:
    + "write error (write test register) "
    + "%d bytes transferred (expected 2)\n",

    WARNING: quoted string split across lines
    #175: FILE: drivers/mfd/ab3100-core.c:175:
    + "write error (send register address) "
    + "%d bytes transferred (expected 1)\n",

    WARNING: quoted string split across lines
    #193: FILE: drivers/mfd/ab3100-core.c:193:
    + "write error (read register) "
    + "%d bytes transferred (expected 1)\n",

    WARNING: quoted string split across lines
    #241: FILE: drivers/mfd/ab3100-core.c:241:
    + "write error (send first register address) "
    + "%d bytes transferred (expected 1)\n",

    WARNING: quoted string split across lines
    #256: FILE: drivers/mfd/ab3100-core.c:256:
    + "write error (read register page) "
    + "%d bytes transferred (expected %d)\n",

    WARNING: quoted string split across lines
    #299: FILE: drivers/mfd/ab3100-core.c:299:
    + "write error (maskset send address) "
    + "%d bytes transferred (expected 1)\n",

    WARNING: quoted string split across lines
    #314: FILE: drivers/mfd/ab3100-core.c:314:
    + "write error (maskset read register) "
    + "%d bytes transferred (expected 1)\n",

    WARNING: quoted string split across lines
    #334: FILE: drivers/mfd/ab3100-core.c:334:
    + "write error (write register) "
    + "%d bytes transferred (expected 2)\n",

    WARNING: please, no spaces at the start of a line
    #374: FILE: drivers/mfd/ab3100-core.c:374:
    +  return blocking_notifier_chain_unregister(&ab3100->event_subscribers,$

    WARNING: Prefer seq_puts to seq_printf
    #458: FILE: drivers/mfd/ab3100-core.c:458:
    + seq_printf(s, "AB3100 registers:\n");

    WARNING: quoted string split across lines
    #564: FILE: drivers/mfd/ab3100-core.c:564:
    +  "debug write reg[0x%02x] with 0x%02x, "
    +  "after readback: 0x%02x\n",

    WARNING: quoted string split across lines
    #723: FILE: drivers/mfd/ab3100-core.c:723:
    +  "AB3100 P1E variant detected, "
    +  "forcing chip to 32KHz\n");

    WARNING: quoted string split across lines
    #882: FILE: drivers/mfd/ab3100-core.c:882:
    + "could not communicate with the AB3100 analog "
    + "baseband chip\n");

    WARNING: quoted string split across lines
    #906: FILE: drivers/mfd/ab3100-core.c:906:
    + dev_err(&client->dev, "accepting it anyway. Please update "
    + "the driver.\n");

    total: 0 errors, 15 warnings, 999 lines checked

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: aat2870-core: Stop using obsolte simple_strtoul()
Lee Jones [Thu, 8 May 2014 11:58:24 +0000 (12:58 +0100)]
mfd: aat2870-core: Stop using obsolte simple_strtoul()

Soothes checkpatch warning:

    WARNING: simple_strtoul is obsolete, use kstrtoul instead
    #306: FILE: drivers/mfd/aat2870-core.c:306:
    + addr = simple_strtoul(start, &start, 16);

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: 88pm860x-i2c: Repair 'space before tab' warning
Lee Jones [Thu, 8 May 2014 11:55:35 +0000 (12:55 +0100)]
mfd: 88pm860x-i2c: Repair 'space before tab' warning

Fixes checkpatch warning:

    WARNING: please, no space before tabs
    #5: FILE: drivers/mfd/88pm860x-i2c.c:5:
    + * ^IHaojian Zhuang <haojian.zhuang@marvell.com>$

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: 88pm860x-core: Repair formatting issues
Lee Jones [Thu, 8 May 2014 11:28:37 +0000 (12:28 +0100)]
mfd: 88pm860x-core: Repair formatting issues

Fixes the following checkpatch warnings:

    WARNING: please, no space before tabs
    #5: FILE: drivers/mfd/88pm860x-core.c:5:
    + * ^IHaojian Zhuang <haojian.zhuang@marvell.com>$

    WARNING: line over 80 characters
    #143: FILE: drivers/mfd/88pm860x-core.c:143:
    + {PM8607_IRQ_AUDIO_SHORT, PM8607_IRQ_AUDIO_SHORT, "audio-short", IORESOURCE_IRQ,},

    WARNING: line over 80 characters
    #153: FILE: drivers/mfd/88pm860x-core.c:153:
    + {PM8607_IRQ_CHG_DONE,  PM8607_IRQ_CHG_DONE,  "charging done",       IORESOURCE_IRQ,},

    WARNING: line over 80 characters
    #154: FILE: drivers/mfd/88pm860x-core.c:154:
    + {PM8607_IRQ_CHG_FAIL,  PM8607_IRQ_CHG_FAIL,  "charging timeout",    IORESOURCE_IRQ,},

    WARNING: line over 80 characters
    #155: FILE: drivers/mfd/88pm860x-core.c:155:
    + {PM8607_IRQ_CHG_FAULT, PM8607_IRQ_CHG_FAULT, "charging fault",     IORESOURCE_IRQ,},

    WARNING: line over 80 characters
    #156: FILE: drivers/mfd/88pm860x-core.c:156:
    + {PM8607_IRQ_GPADC1,    PM8607_IRQ_GPADC1,    "battery temperature", IORESOURCE_IRQ,},

    WARNING: Avoid unnecessary line continuations
    #571: FILE: drivers/mfd/88pm860x-core.c:571:
    + struct i2c_client *i2c = (chip->id == CHIP_PM8607) ? chip->client \

    WARNING: line over 80 characters
    #634: FILE: drivers/mfd/88pm860x-core.c:634:
    + ret = request_threaded_irq(chip->core_irq, NULL, pm860x_irq, flags | IRQF_ONESHOT,

    WARNING: Unnecessary parentheses - maybe == should be = ?
    #874: FILE: drivers/mfd/88pm860x-core.c:874:
    + if ((pdata == NULL))

    WARNING: quoted string split across lines
    #1001: FILE: drivers/mfd/88pm860x-core.c:1001:
    + dev_err(chip->dev, "Failed to detect Marvell 88PM8607. "
    + "Chip ID: %02x\n", ret);

    WARNING: quoted string split across lines
    #1124: FILE: drivers/mfd/88pm860x-core.c:1124:
    + dev_err(dev, "Not found \"marvell,88pm860x-slave-addr\" "
    + "property\n");

total: 0 errors, 11 warnings, 1281 lines checked

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: 88pm805: msleep(1ms ~ 20ms) may not do what the caller intends
Lee Jones [Thu, 8 May 2014 11:06:19 +0000 (12:06 +0100)]
mfd: 88pm805: msleep(1ms ~ 20ms) may not do what the caller intends

This code has been working since 2012, as limiting the time between
1ms and 3ms is unlikely to do any harm.

Soothes checkpatch warning:

  WARNING: msleep < 20ms can sleep for up to 20ms;
      see Documentation/timers/timers-howto.txt
  #161: FILE: drivers/mfd/88pm805.c:161:
  + msleep(1);

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: tps65910: Rid data size incompatibility warn when building for 64bit
Lee Jones [Wed, 2 Jul 2014 13:34:13 +0000 (14:34 +0100)]
mfd: tps65910: Rid data size incompatibility warn when building for 64bit

Extinguishes:

../drivers/mfd/tps65910.c: In function ‘tps65910_parse_dt’:
../drivers/mfd/tps65910.c:404:14:
warning: cast from pointer to integer of different size

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Rid data size incompatibility warn when building for 64bit
Lee Jones [Wed, 2 Jul 2014 13:28:46 +0000 (14:28 +0100)]
mfd: arizona: Rid data size incompatibility warn when building for 64bit

Extinguishes:

../drivers/mfd/arizona-core.c: In function ‘arizona_of_get_type’:
../drivers/mfd/arizona-core.c:505:10:
warning: cast from pointer to integer of different size

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: stmpe: Rid data size incompatibility warn when building for 64bit
Lee Jones [Wed, 2 Jul 2014 10:54:32 +0000 (11:54 +0100)]
mfd: stmpe: Rid data size incompatibility warn when building for 64bit

Extinguishes:

../drivers/mfd/stmpe-i2c.c: In function ‘stmpe_i2c_probe’:
../drivers/mfd/stmpe-i2c.c:88:13:
warning: cast from pointer to integer of different size
partnum = (int)of_id->data;

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: intel_soc_pmic: Rid compiler working for unused ACPI match table
Lee Jones [Wed, 2 Jul 2014 10:30:12 +0000 (11:30 +0100)]
mfd: intel_soc_pmic: Rid compiler working for unused ACPI match table

If CONIFG_ACPI is not enabled we receive the following warning:

drivers/mfd/intel_soc_pmic_core.c:144:30:
warning: ‘intel_soc_pmic_acpi_match’ defined but not used

This patch rids it.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-debugfs: Simplify invalid debugfs data checking
Lee Jones [Wed, 2 Jul 2014 10:22:10 +0000 (11:22 +0100)]
mfd: ab8500-debugfs: Simplify invalid debugfs data checking

Noticed during a coding review, if we reorganised the checking a
little, we can rid the code of a pointless 'else'.  Whilst looking
for this particular code hunk I noticed another pointless 'else',
which I've subsequently fixed in this patch.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-core: Remove pointless else in if statement
Lee Jones [Wed, 2 Jul 2014 10:13:42 +0000 (11:13 +0100)]
mfd: ab8500-core: Remove pointless else in if statement

Save a line of code (albeit, it's replaced by a blank line, but
still), as the else is superfluous.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-debugfs: Cleaning up unnecessary to test, unsigned can't be negative.
Rickard Strandqvist [Sat, 28 Jun 2014 21:34:38 +0000 (23:34 +0200)]
mfd: ab8500-debugfs: Cleaning up unnecessary to test, unsigned can't be negative.

Unsigned variable can't be negative so it is unnecessary to test it

This was found using a static code analysis program called cppcheck

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-debugfs: Remove unnecessary null test before debugfs_remove_recursive
Fabian Frederick [Sat, 28 Jun 2014 11:58:17 +0000 (13:58 +0200)]
mfd: ab8500-debugfs: Remove unnecessary null test before debugfs_remove_recursive

Fix checkpatch warning:
WARNING: debugfs_remove_recursive(NULL) is safe this check is probably not required

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Move EC interrupt to cros_ec_keyb
Andrew Bresticker [Wed, 18 Jun 2014 18:14:07 +0000 (11:14 -0700)]
mfd: cros_ec: Move EC interrupt to cros_ec_keyb

If we receive EC interrupts after the cros_ec driver has probed, but
before the cros_ec_keyb driver has probed, the cros_ec IRQ handler
will not run the cros_ec_keyb notifier and the EC will leave the IRQ
line asserted.  The cros_ec IRQ handler then returns IRQ_HANDLED and
the resulting flood of interrupts causes the machine to hang.

Since the EC interrupt is currently only used for the keyboard, move
the setup and handling of the EC interrupt to the cros_ec_keyb driver.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: ec_dev->cmd_xfer() returns number of bytes received from EC
Bill Richardson [Wed, 18 Jun 2014 18:14:06 +0000 (11:14 -0700)]
mfd: cros_ec: ec_dev->cmd_xfer() returns number of bytes received from EC

When communicating with the EC, the cmd_xfer() function should return the
number of bytes it received from the EC, or negative on error.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Check result code from EC messages
Bill Richardson [Wed, 18 Jun 2014 18:14:05 +0000 (11:14 -0700)]
mfd: cros_ec: Check result code from EC messages

Just because the host was able to talk to the EC doesn't mean that the EC
was happy with what it was told. Errors in communincation are not the same
as error messages from the EC itself.

This change lets the EC report its errors separately.

[dianders: Added common function to cros_ec.c]

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: cleanup: Remove EC wrapper functions
Bill Richardson [Wed, 18 Jun 2014 18:14:04 +0000 (11:14 -0700)]
mfd: cros_ec: cleanup: Remove EC wrapper functions

Remove the three wrapper functions that talk to the EC without passing all
the desired arguments and just use the underlying communication function
that passes everything in a struct intead.

This is internal code refactoring only. Nothing should change.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: cleanup: remove unused fields from struct cros_ec_device
Bill Richardson [Wed, 18 Jun 2014 18:14:03 +0000 (11:14 -0700)]
mfd: cros_ec: cleanup: remove unused fields from struct cros_ec_device

struct cros_ec_device has a superfluous "name" field. We can get all the
debugging info we need from the existing ec_name and phys_name fields, so
let's take out the extra field.

The printout also has sufficient info in it without explicitly adding
the transport.  Before this change:
  cros-ec-spi spi2.0: Chrome EC (SPI)

After this change:
  cros-ec-spi spi2.0: Chrome EC device registered

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Use struct cros_ec_command to communicate with the EC
Bill Richardson [Wed, 18 Jun 2014 18:14:02 +0000 (11:14 -0700)]
mfd: cros_ec: Use struct cros_ec_command to communicate with the EC

This is some internal structure reorganization / renaming to prepare
for future patches that will add a userspace API to cros_ec.  There
should be no visible changes.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Detect in-progress commands
Simon Glass [Wed, 18 Jun 2014 18:14:01 +0000 (11:14 -0700)]
mfd: cros_ec: Detect in-progress commands

Some commands take a while to execute. Use -EAGAIN to signal this to the
caller.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Tweak struct cros_ec_device for clarity
Bill Richardson [Wed, 18 Jun 2014 18:14:00 +0000 (11:14 -0700)]
mfd: cros_ec: Tweak struct cros_ec_device for clarity

The members of struct cros_ec_device were improperly commented, and
intermixed the private and public sections. This is just cleanup to make it
more obvious what goes with what.

[dianders: left lock in the structure but gave it the name that will
eventually be used.]

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Allow static din/dout buffers with cros_ec_register()
Bill Richardson [Wed, 18 Jun 2014 18:13:59 +0000 (11:13 -0700)]
mfd: cros_ec: Allow static din/dout buffers with cros_ec_register()

The lower-level driver may want to provide its own buffers. If so,
there's no need to allocate new ones.  This already happens to work
just fine (since we check for size of 0 and use devm allocation), but
it's good to document it.

[dianders: Resolved conflicts; documented that no code changes needed
on mainline]

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: Fix the comment on cros_ec_remove()
Bill Richardson [Wed, 18 Jun 2014 18:13:58 +0000 (11:13 -0700)]
mfd: cros_ec: Fix the comment on cros_ec_remove()

This comment was incorrect, so update it.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: pcf50633: Reconnect -ENOMEM error path
Lee Jones [Tue, 1 Jul 2014 11:57:36 +0000 (12:57 +0100)]
mfd: pcf50633: Reconnect -ENOMEM error path

If platform_device_alloc() or platform_device_add_data() fail during
pcf50633_probe(), the current code ignores the return error code and
continues to attempt to allocate new platform devices for each of the
supported regulators.  Instead, if any failures occur we should fail
out gracefully by cleaning up after ourselves and return the error.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: ab8500-debugfs.c: Cleaning up values that are never used
Rickard Strandqvist [Thu, 26 Jun 2014 13:40:00 +0000 (15:40 +0200)]
mfd: ab8500-debugfs.c: Cleaning up values that are never used

Remove variable that are never used

This was found using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: sec-core: Prepare regulators for suspend state to reduce power-consumption
Chanwoo Choi [Wed, 25 Jun 2014 07:14:47 +0000 (16:14 +0900)]
mfd: sec-core: Prepare regulators for suspend state to reduce power-consumption

This patch use regulator_suspend_prepare() function to prepare the proper state
of regulators for suspend state to remove un-necessary leakage power-consumption.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agodt-bindings: mfd: s2mps11: Add support S2MPU02 PMIC
Chanwoo Choi [Wed, 25 Jun 2014 07:14:46 +0000 (16:14 +0900)]
dt-bindings: mfd: s2mps11: Add support S2MPU02 PMIC

This patch add documentation for S2MPU02 PMIC device. S2MPU02 has a little
difference from S2MPS11/S2MPS14 PMIC and has LDO[1-28]/Buck[1-7].

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoregulator: s2mps11: Add support S2MPU02 regulator device
Chanwoo Choi [Wed, 25 Jun 2014 07:14:45 +0000 (16:14 +0900)]
regulator: s2mps11: Add support S2MPU02 regulator device

This patch add S2MPU02 regulator device to existing S2MPS11 device driver
because of little difference between S2MPS1x and S2MPU02. The S2MPU02
regulator device includes LDO[1-28] and BUCK[1-7].

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
[Add missing linear_min_sel of S2MPU02 LDO regulators by Jonghwa Lee]
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Mark Brown <broonie@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: sec-core: Add support for S2MPU02 device
Chanwoo Choi [Wed, 25 Jun 2014 07:14:44 +0000 (16:14 +0900)]
mfd: sec-core: Add support for S2MPU02 device

Add support for Samsung S2MPU02 PMIC device to the MFD sec-core driver.
The S2MPU02 device includes PMIC/RTC/Clock devices.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: mc13xxx: Use regmap irq framework for interrupts
Alexander Shiyan [Wed, 18 Jun 2014 17:05:40 +0000 (21:05 +0400)]
mfd: mc13xxx: Use regmap irq framework for interrupts

This patch convert mc13xxx MFD driver to use regmap irq framework
for interrupt registration.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: pm8921-core: Remove unused variable
Sachin Kamat [Tue, 24 Jun 2014 09:09:07 +0000 (14:39 +0530)]
mfd: pm8921-core: Remove unused variable

‘irq_bit’ is unused in the function. Remove it.

Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Add comment to explain non-devm regulator_get
Charles Keepax [Thu, 19 Jun 2014 15:04:23 +0000 (16:04 +0100)]
mfd: arizona: Add comment to explain non-devm regulator_get

To avoid someone attempting to change this regulator_get back into a
devm_regulator_get put a comment in explaining that devres can't be used
here as the regulator will be destroyed before devres calls
regulator_put.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoDocumentation: devicetree: Fix s2mps11 and s5m8767 typos
Andreas Färber [Mon, 23 Jun 2014 01:21:19 +0000 (03:21 +0200)]
Documentation: devicetree: Fix s2mps11 and s5m8767 typos

It's LDO2, not LD02.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoDocumentation: devicetree: Fix s2mps11 example syntax
Andreas Färber [Mon, 23 Jun 2014 01:21:20 +0000 (03:21 +0200)]
Documentation: devicetree: Fix s2mps11 example syntax

It's <1>, not 1.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: wm8994: Add a bunch of missing defaults/readables
Charles Keepax [Mon, 16 Jun 2014 20:15:31 +0000 (21:15 +0100)]
mfd: wm8994: Add a bunch of missing defaults/readables

Ever since this commit:

commit d4807ad2c4c0e17b6f00e3be9492c81de0804f40
regmap: Check readable regs in _regmap_read

Regmap will refuse to read a register which is not marked as readable,
this has highlighted a number of controls in this driver which are not
marked as readable/missing defaults.

This patch corrects the situation, by adding the missing
readables/defaults.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec_spi: Set wakeup capability
Prathyush K [Mon, 16 Jun 2014 21:12:23 +0000 (14:12 -0700)]
mfd: cros_ec_spi: Set wakeup capability

Set the device as wakeup capable and register the wakeup source.

Note: Though it makes more sense to have the SPI framework do this,
(either via device tree or by board_info)
this change is as per an existing mail chain:
https://lkml.org/lkml/2009/8/27/291

Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agodt-binding: mfd: as3722: Correct macro name
Laxman Dewangan [Mon, 9 Jun 2014 08:31:59 +0000 (14:01 +0530)]
dt-binding: mfd: as3722: Correct macro name

The macro name for enable3 pin is named as AS3722_EXT_CONTROL_PIN_ENABLE2
which is conflict with the enable2 pin.

Correct this macro name to correctly reflect the enable pin i.e.
AS3722_EXT_CONTROL_PIN_ENABLE3.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reported-by: Dan Willemsen <dwillemsen@nvidia.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Lower ARIZONA_MAX_CORE_SUPPLIES to 2
Charles Keepax [Mon, 2 Jun 2014 08:50:43 +0000 (09:50 +0100)]
mfd: arizona: Lower ARIZONA_MAX_CORE_SUPPLIES to 2

There are no Arizona devices with 3 core supplies but we define a fix
array with space for 3 core supplies. Lower the ARIZONA_MAX_CORE_SUPPLIES
define to 2, to save a few bytes.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Use num_core_supplies in arizona_dev_exit
Charles Keepax [Mon, 2 Jun 2014 08:50:42 +0000 (09:50 +0100)]
mfd: arizona: Use num_core_supplies in arizona_dev_exit

Currently we call regulator_bulk_disable with
ARRAY_SIZE(arizona->core_supplies), however this array may be larger
than the number of supplies actually used by the chip we are dealing
with. Use the provided num_core_supplies member instead, so that we only
disable supplies which actually exist.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Don't use devres for DCVDD
Charles Keepax [Mon, 2 Jun 2014 08:50:41 +0000 (09:50 +0100)]
mfd: arizona: Don't use devres for DCVDD

Currently the Arizona core uses a devm_regulator_get against its own
device node to obtain DCVDD. The Arizona core is an MFD device and DCVDD
is usually supplied by a child node (arizona-ldo1) of the core. As
devres destruction for the MFD device will run after all its children
have been destroyed, the regulator will be destroyed before devres
calls regulator_put. This causes a warning from both the destruction of
the child node, as the regulator is still open, and from the put of the
regulator as the regulator device has already been destroyed.

This patch handles the regulator get and put without devres to avoid
this issue.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Disable DCVDD before we destroy the MFD
Charles Keepax [Mon, 2 Jun 2014 08:50:40 +0000 (09:50 +0100)]
mfd: arizona: Disable DCVDD before we destroy the MFD

As DCVDD is probably supplied by a child of the MFD device move its
disable to before we destroy the MFD children as the regulator likely
won't exist after that.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: arizona: Disable PM runtime at start of driver removal
Charles Keepax [Mon, 2 Jun 2014 08:50:39 +0000 (09:50 +0100)]
mfd: arizona: Disable PM runtime at start of driver removal

We don't want to trigger any PM runtime operations whilst we are tearing
down the driver, as things the suspend and resume callbacks rely on
might already have been destroyed. So disable PM runtime for the device
as the first step arizona_dev_exit.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: tc3589x: Translate onecell, not twocell
Linus Walleij [Tue, 10 Jun 2014 12:31:32 +0000 (14:31 +0200)]
mfd: tc3589x: Translate onecell, not twocell

Something changed in the OF parser in the v3.16 merge window
making it be strict about passing the number of IRQ cells
correctly and disturbing the irqdomain xlate function guard
to crash when subdevices try to obtain IRQs like this:

------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at
/home/linus/linux-stericsson/kernel/irq/irqdomain.c:676
irq_domain_xlate_twocell+0x40/0x48()
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted
 3.15.0-07915-gf6d059821ce9-dirty #46
[<c0014660>] (unwind_backtrace)
 from [<c0011424>] (show_stack+0x10/0x14)
[<c0011424>] (show_stack)
 from [<c0432630>] (dump_stack+0x9c/0xd4)
[<c0432630>] (dump_stack)
 from [<c001d5c0>] (warn_slowpath_common+0x6c/0x88)
[<c001d5c0>] (warn_slowpath_common)
 from [<c001d678>] (warn_slowpath_null+0x1c/0x24)
[<c001d678>] (warn_slowpath_null)
 from [<c005acd0>] (irq_domain_xlate_twocell+0x40/0x48)
[<c005acd0>] (irq_domain_xlate_twocell)
 from [<c005b658>] (irq_create_of_mapping+0x64/0x110)
[<c005b658>] (irq_create_of_mapping)
 from [<c02e147c>] (of_irq_get+0x38/0x48)
[<c02e147c>] (of_irq_get)
 from [<c01f8910>] (tc3589x_gpio_probe+0x38/0x1e4)
[<c01f8910>] (tc3589x_gpio_probe)
 from [<c022eedc>] (platform_drv_probe+0x18/0x48)
[<c022eedc>] (platform_drv_probe)
 from [<c022d80c>] (driver_probe_device+0x118/0x24c)
[<c022d80c>] (driver_probe_device)
 from [<c022bf20>] (bus_for_each_drv+0x58/0x8c)
[<c022bf20>] (bus_for_each_drv)
 from [<c022d6c4>] (device_attach+0x74/0x88)
[<c022d6c4>] (device_attach)
 from [<c022cdac>] (bus_probe_device+0x84/0xa8)
[<c022cdac>] (bus_probe_device)
 from [<c022b35c>] (device_add+0x440/0x520)
[<c022b35c>] (device_add)
 from [<c022ec50>] (platform_device_add+0xb4/0x218)
[<c022ec50>] (platform_device_add)
 from [<c0243508>] (mfd_add_device+0x220/0x31c)
[<c0243508>] (mfd_add_device)
 from [<c02436a8>] (mfd_add_devices+0xa4/0x100)
[<c02436a8>] (mfd_add_devices)
 from [<c024312c>] (tc3589x_probe+0x334/0x3c0)
[<c024312c>] (tc3589x_probe)
 from [<c022d80c>] (driver_probe_device+0x118/0x24c)

The TC3589x device trees specify the MFD core device
as having one interrupt cell (cannot specify flags) so the
twocell translation function is clearly wrong, changing it to
onecell, as it should be, fixes the regression.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: asic3: Fix potential null pointer dereference
Sachin Kamat [Tue, 10 Jun 2014 10:00:34 +0000 (15:30 +0530)]
mfd: asic3: Fix potential null pointer dereference

We previously assumed 'mem_sdio' could be null but it is
dereferenced in ioremap(). Add a check to avoid a potential
null pointer dereference error.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: cros_ec: spi: Fix end of transfer on devices with no spi-msg-delay
Doug Anderson [Fri, 13 Jun 2014 18:13:32 +0000 (11:13 -0700)]
mfd: cros_ec: spi: Fix end of transfer on devices with no spi-msg-delay

cros_ec_spi makes the assumption that a 0-length message will put the
spi chip select back to normal (non cs_toggle mode).  This used to be
the case back on kernel-3.8 on the spi-s3c64xx driver but doesn't
appear to be true anymore.  It seems like it was a pretty questionable
assumption to begin with, so let's fix the code to be more robust.  We
know that a message with a single 0-length segment _will_ put things
back in order.  Change cros_ec_spi to handle this.

This wasn't a problem on the main user of cros_ec_spi upstream (tegra)
because it specified 'google,cros-ec-spi-msg-delay'.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: Fix cs5535 dependencies
Jean Delvare [Mon, 16 Jun 2014 11:54:15 +0000 (13:54 +0200)]
mfd: Fix cs5535 dependencies

As far as I know, the CS5535 and CS5536 chipsets are companions of the
Geode series of processors, which are 32-bit only. So the CS5535
drivers are not needed on x86-64, except for build testing purpose.

This aligns the dependencies to what FB_GEODE already uses.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: timberdale: Depend on X86_32
Jean Delvare [Mon, 16 Jun 2014 11:56:01 +0000 (13:56 +0200)]
mfd: timberdale: Depend on X86_32

As far as I know the Timberdale chip was only used as a companion for
Intel Atom E600 series processors. As such, its drivers are only
useful on X86_32.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoMerge branches 'ib-mfd-extcon-regulator-3.17', 'ib-mfd-gpio-3.17' and 'ib-mfd-mmc...
Lee Jones [Wed, 9 Jul 2014 13:55:13 +0000 (14:55 +0100)]
Merge branches 'ib-mfd-extcon-regulator-3.17', 'ib-mfd-gpio-3.17' and 'ib-mfd-mmc-3.17' into ibs-for-mfd-merged

10 years agommc: rtsx: add support for async request
Micky Ching [Fri, 6 Jun 2014 07:05:45 +0000 (15:05 +0800)]
mmc: rtsx: add support for async request

Add support for non-blocking request, pre_req() runs dma_map_sg() and
post_req() runs dma_unmap_sg(). This patch can increase card read/write
speed, especially for high speed card and slow speed CPU.

Test on intel i3(800MHz - 2.3GHz) performance mode(2.3GHz), SD card
clock 208MHz

run dd if=/dev/mmcblk0 of=/dev/null bs=64k count=1024
before:
67108864 bytes (67 MB) copied, 0.85427 s, 78.6 MB/s
after:
67108864 bytes (67 MB) copied, 0.74799 s, 89.7 MB/s

Signed-off-by: Micky Ching <micky_ching@realsil.com.cn>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agomfd: rtsx: Add dma transfer function
Micky Ching [Fri, 6 Jun 2014 07:05:44 +0000 (15:05 +0800)]
mfd: rtsx: Add dma transfer function

rtsx driver using a single function for transfer data, dma map/unmap are
placed in one fix function. We need map/unmap dma in different place(for
mmc async driver), so add three function for dma map, dma transfer and
dma unmap.

Signed-off-by: Micky Ching <micky_ching@realsil.com.cn>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10 years agoLinux 3.16-rc4 v3.16-rc4
Linus Torvalds [Sun, 6 Jul 2014 19:37:51 +0000 (12:37 -0700)]
Linux 3.16-rc4

10 years agoMerge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux
Linus Torvalds [Sun, 6 Jul 2014 19:11:57 +0000 (12:11 -0700)]
Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux

Pull devicetree bugfix from Grant Likely:
 "Important bug fix for parsing 64-bit addresses on 32-bit platforms.
  Without this patch the kernel will try to use memory ranges that
  cannot be reached"

* tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
  of: Check for phys_addr_t overflows in early_init_dt_add_memory_arch

10 years agoMerge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb...
Linus Torvalds [Sun, 6 Jul 2014 19:08:30 +0000 (12:08 -0700)]
Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
 "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
  The fixes are mostly correct value initialisations, avoiding NULL
  derefs and some uninitialised pointer avoidance.

  All the patches have been incubated in -next for a few days.  The
  final patch (use the scsi data buffer length to extract transfer size)
  has been rebased to add a cc to stable, but only the commit message
  has changed"

* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  [SCSI] use the scsi data buffer length to extract transfer size
  virtio-scsi: fix various bad behavior on aborted requests
  virtio-scsi: avoid cancelling uninitialized work items
  ibmvscsi: Add memory barriers for send / receive
  ibmvscsi: Abort init sequence during error recovery
  qla2xxx: Fix sparse warning in qla_target.c.
  bnx2fc: Improve stats update mechanism
  bnx2fc: do not scan uninitialized lists in case of error.
  fc: ensure scan_work isn't active when freeing fc_rport
  pm8001: Fix potential null pointer dereference and memory leak.
  MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
  be2iscsi: remove potential junk pointer free
  be2iscsi: add an missing goto in error path
  scsi_error: set DID_TIME_OUT correctly
  scsi_error: fix invalid setting of host byte