22 Jun, 2015

1 commit

  • I noticed the PMIC configuration on 37xx-evm won't actually shut down
    the voltages during off-idle. Turns out 37xx-evm needs the AC charger
    state transitions disabled like we are doing for SDP and LDP in the
    legacy booting case.

    Let's fix this for device tree based booting by setting up the quirk
    flag based on the compatible flag. And let's also use the existing
    define for STARTON_CHG.

    Note that SDP and EVM do not have the PMIC clken wired to gate the
    the oscillator while LDP has.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     

26 Mar, 2015

1 commit


15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

09 Dec, 2014

1 commit

  • Pull MFD updates from Lee Jones:
    "Changes to the core:
    - Honour PLATFORM_DEVID_NONE and PLATFORM_DEVID_AUTO dev IDs

    Changes to existing drivers:
    - IRQ additions/fixes; axp20x, da9063-core
    - Code simplification; i2c-dln2
    - Regmap additions/fixes; max77693
    - Error checking/handling improvements; dln2, db8500-prcmu
    - Bug fixes; dln2, wm8350-core
    - DT support/documentation; max77693, max77686, tps65217, twl4030-power,
    gpio-tc3589x
    - Decouple syscon interface from platform devices
    - Use MFD hotplug registration; rtsx_usb, viperboard, hid-sensor-hub
    - Regulator fixups; sec-core
    - Power Management additions/fixes; rts5227, tc6393xb
    - Remove relic/redundant code; ab8500-sysctrl, lpc_sch, max77693-private
    - Clean-up/coding style changes; tps65090
    - Clk additions/fixes; tc6393xb, tc6387xb, t7l66xb
    - Add USB-SPI support; dln2
    - Trivial changes; max14577, arizona-spi, lpc_sch, wm8997-tables, wm5102-tables
    wm5110-tables, axp20x, atmel-hlcdc, rtsx_pci

    New drivers/supported devices:
    - axp288 PMIC support added to axp20x
    - s2mps13 support added to sec-core
    - New support for Diolan DLN-2
    - New support for atmel-hlcdc"

    * tag 'mfd-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (55 commits)
    mfd: rtsx: Add func to split u32 into register
    mfd: atmel-hlcdc: Add Kconfig option description and name
    mfd: da9063: Get irq base dynamically before registering device
    mfd: max14577: Fix obvious typo in company name in copyright
    mfd: axp20x: Constify axp20x_acpi_match and rid unused warning
    mfd: t7l66xb: prepare/unprepare clocks
    mfd: tc6387xb: prepare/unprepare clocks
    mfd: dln2: add support for USB-SPI module
    mfd: wm5110: Add missing registers for AIF2 channels 3-6
    mfd: tc3589x: get rid of static base
    mfd: arizona: Document HP_CTRL_1L and HP_CTRL_1R registers
    mfd: wm8997: Mark INTERRUPT_STATUS_2_MASK as readable
    mfd: tc6393xb: Prepare/unprepare clocks
    mfd: tps65090: Fix bonkers indenting strategy
    mfd: tc6393xb: Fail ohci suspend if full state restore is required
    mfd: lpc_sch: Don't call mfd_remove_devices()
    mfd: wm8350-core: Fix probable mask then right shift defect
    mfd: ab8500-sysctrl: Drop ab8500_restart
    mfd: db8500-prcmu: Provide sane error path values
    mfd: db8500-prcmu: Check return of devm_ioremap for error
    ...

    Linus Torvalds
     

26 Nov, 2014

1 commit

  • Commit e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset
    configuration") accidentally removed the compatible flag for
    "ti,twl4030-power" that should be there as documented in the
    binding.

    If "ti,twl4030-power" only the poweroff configuration is done
    by the driver.

    Fixes: e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset configuration")
    Cc: stable@vger.kernel.org # v3.16+
    Reported-by: "Dr. H. Nikolaus Schaller"
    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     

10 Nov, 2014

1 commit

  • Commit e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset
    configuration") enabled configuring the PM features for twl4030.

    This caused poweroff command to fail on devices that have the
    BCI charger on twl4030 wired, or have power wired for VBUS.
    Instead of powering off, the device reboots. This is because
    voltage is detected on charger or VBUS with the default bits
    enabled for the power transition registers.

    To fix the issue, let's just clear VBUS and CHG bits as we want
    poweroff command to keep the system powered off.

    Fixes: e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset configuration")
    Cc: stable@vger.kernel.org # v3.16+
    Reported-by: Russell King
    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     

20 Oct, 2014

1 commit


15 Oct, 2014

1 commit

  • Pull MFD updates from Lee Jones:
    "Changes to existing drivers:
    - DT clean-ups in da9055-core, max14577, rn5t618, arizona, hi6421, stmpe, twl4030
    - Export symbols for use in modules in max14577
    - Plenty of static code analysis/Coccinelle fixes throughout the SS
    - Regmap clean-ups in arizona, wm5102, wm5110, da9052, tps65217, rk808
    - Remove unused/duplicate code in da9052, 88pm860x, ti_ssp, lpc_sch, arizona
    - Bug fixes in ti_am335x_tscadc, da9052, ti_am335x_tscadc, rtsx_pcr
    - IRQ fixups in arizona, stmpe, max14577
    - Regulator related changes in axp20x
    - Pass DMA coherency information from parent => child in MFD core
    - Rename DT document files for consistency
    - Add ACPI support to the MFD core
    - Add Andreas Werner to MAINTAINERS for MEN F21BMC

    New drivers/supported devices:
    - New driver for MEN 14F021P00 Board Management Controller
    - New driver for Ricoh RN5T618 PMIC
    - New driver for Rockchip RK808
    - New driver for HiSilicon Hi6421 PMIC
    - New driver for Qualcomm SPMI PMICs
    - Add support for Intel Braswell in lpc_ich
    - Add support for Intel 9 Series PCH in lpc_ich
    - Add support for Intel Quark ILB in lpc_sch"

    [ Delayed to after the poweer/reset pull due to Kconfig problems with
    recursive Kconfig select/depends-on chains. - Linus ]

    * tag 'mfd-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (79 commits)
    mfd: cros_ec: wait for completion of commands that return IN_PROGRESS
    i2c: i2c-cros-ec-tunnel: Set retries to 3
    mfd: cros_ec: move locking into cros_ec_cmd_xfer
    mfd: cros_ec: stop calling ->cmd_xfer() directly
    mfd: cros_ec: Delay for 50ms when we see EC_CMD_REBOOT_EC
    MAINTAINERS: Adds Andreas Werner to maintainers list for MEN F21BMC
    mfd: arizona: Correct mask to allow setting micbias external cap
    mfd: Add ACPI support
    Revert "mfd: wm5102: Manually apply register patch"
    mfd: ti_am335x_tscadc: Update logic in CTRL register for 5-wire TS
    mfd: dt-bindings: atmel-gpbr: Rename doc file to conform to naming convention
    mfd: dt-bindings: qcom-pm8xxx: Rename doc file to conform to naming convention
    mfd: Inherit coherent_dma_mask from parent device
    mfd: Document DT bindings for Qualcomm SPMI PMICs
    mfd: Add support for Qualcomm SPMI PMICs
    mfd: dt-bindings: pm8xxx: Add new compatible string
    mfd: axp209x: Drop the parent supplies field
    mfd: twl4030-power: Use 'ti,system-power-controller' as alternative way to support system power off
    mfd: dt-bindings: twl4030-power: Use the standard property to mark power control
    mfd: syscon: Add Atmel GPBR DT bindings documention
    ...

    Linus Torvalds
     

26 Sep, 2014

1 commit

  • ti,system-power-controller is more or less the standard way of
    indicating that the PMIC is the system wide power controller and hence
    may be used to switch off the system. Almost ALL TI PMIC drivers and
    many Maxim PMIC drivers follow the same style.

    So support 'ti,system-power-controller' in addition to the usual
    'ti,use_poweroff' to indicate that the PMIC instance has control for
    switching off the system.

    Signed-off-by: Nishanth Menon
    Acked-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Nishanth Menon
     

28 Aug, 2014

1 commit

  • Commit 43fef47f94a1 (mfd: twl4030-power: Add a configuration to turn
    off oscillator during off-idle) added support for configuring the PMIC
    to cut off resources during deeper idle states to save power.

    This however caused regression for n900 display power that needed the
    PMIC configuration to be disabled with commit d937678ab625 (ARM: dts:
    Revert enabling of twl configuration for n900).

    Turns out the root cause of the problem is that we must use
    TWL4030_RESCONFIG_UNDEF instead of DEV_GRP_NULL to avoid disabling
    regulators that may have been enabled before the init function
    for twl4030-power.c runs. With TWL4030_RESCONFIG_UNDEF we let the
    regulator framework control the regulators like it should. Here we
    need to only configure the sys_clken and sys_off_mode triggers for
    the regulators that cannot be done by the regulator framework as
    it's not running at that point.

    This allows us to enable the PMIC configuration for n900.

    Fixes: 43fef47f94a1 (mfd: twl4030-power: Add a configuration to turn off oscillator during off-idle)

    Cc: stable@vger.kernel.org # v3.16
    Signed-off-by: Tony Lindgren
    Tested-by: Aaro Koskinen
    Signed-off-by: Lee Jones

    Tony Lindgren
     

28 May, 2014

6 commits

  • Some oscillators can be turned off during off-idle saving few
    a little bit power at the cost of the oscillator start up
    latency.

    If you board can do this, you can now enable it by using the
    ti,twl4030-power-idle-osc-off compatible flag.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     
  • With the recommended twl4030 configuration added, we can now add
    board specific changes as modifications to the recommended
    configuration.

    Note that the data is private to this driver, and the data must
    always have a NULL resource in the sentinel.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     
  • These settings are based on the "Recommended Sleep Sequences for
    the Zoom Platform".

    The settings assume most of the regulators are under control of
    Linux, and twl4030 only cuts off VDD1 and VDD2 during off-idle as
    Linux cannot do it.

    For any board specific changes to these, let's patch them in as
    changes to the generic data in the follow-up patches. This keeps
    the board specific changes small.

    Note that this does not consider the twl5030 errata 27 and 28.
    That can be added later on after it has been tested. For more
    information about errata 27 and 28.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     
  • The twl4030 PMIC needs to be configured properly for things like
    warm reset and deeper idle states so the PMIC manages the regulators
    properly based on the hardware triggers from the SoC. Earlier
    we have configured twl4030 using platform data, but we want to
    do it for device tree based booting also.

    In some cases configuring twl4030 is needed for things to work.
    For example, when rebooting an OMAP3530 at 125 MHz, it hangs.
    With this patch, TWL4030 will be reset when a warm reset occures,
    and OMAP3530 does not hang on reboot.

    Let's add device tree support and configure things for warm reset
    as the default when compatible = "ti,twl4030-power". More
    complicated configurations can be added to the driver based on
    other compatible flags.

    Note we now also make the pdata const like it should be.
    This allows use it for match->data with the device tree
    related functions.

    Based on earlier patch by Matthias Brugger
    and Lesly A M .

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     
  • We have these bits partially defined in two different
    places, so let's fix them up and add defines for the
    missing bits. These bits are the same for P1_SW_EVENTS,
    P2_SW_EVENTS and P3_SW_EVENTS.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     
  • Looks like we can still hit the issue of wrong load order of
    twl4030 configuration. If we have a sleep configuration loaded,
    and do a warm reset, the device can hang while initializing the
    wakeup12 sequence. We do have a warning message about wrong order
    of twl4030 configuration, but in this case it does not help as
    the sleep configuration was loaded during the previous boot and
    the state of twl4030 is maintained throughout the warm reset.

    Fix the issue by clearing any existing sleep configuration
    before we load the warm reset configuration.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Lee Jones

    Tony Lindgren
     

01 Aug, 2013

1 commit

  • twl4030_power_configure_scripts(), twl4030_power_configure_resources(),
    twl4030_power_probe() are used only in this file.

    Fix the following sparse warnings:

    drivers/mfd/twl4030-power.c:496:5: warning: symbol 'twl4030_power_configure_scripts' was not declared. Should it be static?
    drivers/mfd/twl4030-power.c:512:5: warning: symbol 'twl4030_power_configure_resources' was not declared. Should it be static?
    drivers/mfd/twl4030-power.c:556:5: warning: symbol 'twl4030_power_probe' was not declared. Should it be static?

    Signed-off-by: Jingoo Han
    Signed-off-by: Lee Jones

    Jingoo Han
     

31 Jul, 2013

1 commit


19 Jun, 2013

5 commits


27 Jan, 2013

1 commit

  • If the twl4030_write_script function gets called with
    a zero length argument, its return value does not
    get set. We know that all scripts have a nonzero
    length, but returning an error in case they ever
    do is probably appropriate.

    Without this patch, building omap2plus_defconfig results in:

    drivers/mfd/twl4030-power.c: In function 'load_twl4030_script':
    drivers/mfd/twl4030-power.c:414:5: error: 'err' may be used uninitialized in this function

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Peter Ujfalusi
    Reviewed-by: Amit Kucheria
    Cc: Kevin Hilman
    Cc: "Kristo, Tero"
    Signed-off-by: Samuel Ortiz

    Arnd Bergmann
     

17 Dec, 2012

1 commit

  • Pull MFS update from Samuel Ortiz:
    "This is the MFD patch set for the 3.8 merge window.

    We have several new drivers, most of the time coming with their sub
    devices drivers:

    - Austria Microsystem's AS3711
    - Nano River's viperboard
    - TI's TPS80031, AM335x TS/ADC,
    - Realtek's MMC/memstick card reader
    - Nokia's retu

    We also got some notable cleanups and improvements:

    - tps6586x got converted to IRQ domains.
    - tps65910 and tps65090 moved to the regmap IRQ API.
    - STMPE is now Device Tree aware.
    - A general twl6040 and twl-core cleanup, with moves to the regmap
    I/O and IRQ APIs and a conversion to the recently added PWM
    framework.
    - sta2x11 gained regmap support.

    Then the rest is mostly tiny cleanups and fixes, among which we have
    Mark's wm5xxx and wm8xxx patchset."

    Far amount of annoying but largely trivial conflicts. Many due to
    __devinit/exit removal, others due to one or two of the new drivers also
    having come in through another tree.

    * tag 'mfd-3.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (119 commits)
    mfd: tps6507x: Convert to devm_kzalloc
    mfd: stmpe: Update DT support for stmpe driver
    mfd: wm5102: Add readback of DSP status 3 register
    mfd: arizona: Log if we fail to create the primary IRQ domain
    mfd: tps80031: MFD_TPS80031 needs to select REGMAP_IRQ
    mfd: tps80031: Add terminating entry for tps80031_id_table
    mfd: sta2x11: Fix potential NULL pointer dereference in __sta2x11_mfd_mask()
    mfd: wm5102: Add tuning for revision B
    mfd: arizona: Defer patch initialistation until after first device boot
    mfd: tps65910: Fix wrong ack_base register
    mfd: tps65910: Remove unused data
    mfd: stmpe: Get rid of irq_invert_polarity
    mfd: ab8500-core: Fix invalid free of devm_ allocated data
    mfd: wm5102: Mark DSP memory regions as volatile
    mfd: wm5102: Correct default for LDO1_CONTROL_2
    mfd: arizona: Register haptics devices
    mfd: wm8994: Make current device behaviour the default
    mfd: tps65090: MFD_TPS65090 needs to select REGMAP_IRQ
    mfd: Fix stmpe.c build when OF is not enabled
    mfd: jz4740-adc: Use devm_kzalloc
    ...

    Linus Torvalds
     

29 Nov, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option so __devinit is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Srinidhi Kasagar
    Cc: Peter Tyser
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Acked-by: David Brown
    Acked-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     

21 Nov, 2012

1 commit


13 Feb, 2012

1 commit

  • WARNING: drivers/mfd/built-in.o(.devinit.text+0x258): Section mismatch in reference from the function twl_probe() to the function .init.text:twl4030_power_init()
    The function __devinit twl_probe() references
    a function __init twl4030_power_init().
    If twl4030_power_init is only used by twl_probe then
    annotate twl4030_power_init with a matching annotation.

    twl4030_power_init() references other __init marked functions, so
    these too must become __devinit.

    Acked-by: Tony Lindgren
    Signed-off-by: Russell King

    Russell King
     

09 Jan, 2012

1 commit

  • TWL family of PMICs, used in master mode, have a power off
    functionality. The resulting power off sequence shuts down all the SoC
    supplies, LDOs, etc. The sequence is described in the datasheets
    chapter "Power-Off Sequence".
    Note, that board must be wired correctly for the power off to work as
    expected.

    Signed-off-by: Igor Grinberg
    Signed-off-by: Samuel Ortiz

    Igor Grinberg
     

27 May, 2011

3 commits


11 May, 2011

1 commit


29 Oct, 2010

1 commit


08 Mar, 2010

2 commits

  • New function twl4030_remove_script(u8 flags) takes a script type as
    defined in twl.h and prevents any script already loaded in that position
    from running. This is accomplished by programming SEQ_ADD_* to 0x3f,
    the END_OF_SCRIPT value, where SEQ_ADD_* is determined by flags.

    (Future) users of this function include OMAP board files for machines
    facing a race condition between sleep and warm reset.

    Signed-off-by: Mike Turquette
    Signed-off-by: Samuel Ortiz

    Mike Turquette
     
  • Variable remap was incorrectly referencing remap_off for the remap_sleep
    case when configuring TWL4030 power scripts.

    Signed-off-by: Mike Turquette
    Signed-off-by: Samuel Ortiz

    Mike Turquette
     

14 Dec, 2009

4 commits

  • This patch renames function names like twl4030_i2c_write_u8,
    twl4030_i2c_read_u8 to twl_i2c_write_u8, twl_i2c_read_u8
    and also common variable in twl-core.c

    Signed-off-by: Rajendra Nayak
    Signed-off-by: Balaji T K
    Signed-off-by: Santosh Shilimkar
    Acked-by: Kevin Hilman
    Signed-off-by: Samuel Ortiz

    Balaji T K
     
  • The upcoming TWL6030 is companion chip for OMAP4 like the current TWL4030
    for OMAP3. The common modules like RTC, Regulator creates opportunity
    to re-use the most of the code from twl4030.

    This patch renames few common drivers twl4030* files to twl* to enable
    the code re-use.

    Signed-off-by: Rajendra Nayak
    Signed-off-by: Balaji T K
    Signed-off-by: Santosh Shilimkar
    Acked-by: Kevin Hilman
    Signed-off-by: Samuel Ortiz

    Santosh Shilimkar
     
  • Based on Aaro's previous fix, this needs to be fixed for the newly added
    remap_off and remap_sleep resources as well.

    The code tries to skip values initialized with -1, but since the values
    are unsigned the comparison is always true.

    The patch eliminates the following compiler warnings:

    drivers/mfd/twl4030-power.c: In function 'twl4030_configure_resource':
    drivers/mfd/twl4030-power.c:338: warning: comparison is always true due to
    limited range of data type

    Signed-off-by: Amit Kucheria
    Signed-off-by: Samuel Ortiz

    Amit Kucheria
     
  • The code tries to skip values initialized with -1, but since the values
    are unsigned the comparison is always true.

    The patch eliminates the following compiler warnings:

    drivers/mfd/twl4030-power.c: In function 'twl4030_configure_resource':
    drivers/mfd/twl4030-power.c:338: warning: comparison is always true due to
    limited range of data type
    drivers/mfd/twl4030-power.c:358: warning: comparison is always true due to
    limited range of data type
    drivers/mfd/twl4030-power.c:363: warning: comparison is always true due to
    limited range of data type

    Signed-off-by: Aaro Koskinen
    Signed-off-by: Samuel Ortiz

    Aaro Koskinen