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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>