04 Jan, 2009

27 commits

  • The subdevice removal functions are marked __devexit but are referenced
    from the error handling path when probing so are needed even when
    __devexit functions are removed.

    Signed-off-by: Mark Brown
    Acked-by: Eric Miao
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • ove the menelaus driver from drivers/i2c/chips to drivers/mfd
    since it's more of a multi-function device than anything else,
    and since Jean is trying to vanish drivers/i2c/chips ASAP.

    One way to think of these chips are as the PMIC family most
    used with OMAP2 generation chips.

    Signed-off-by: David Brownell
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Move the tps65010 driver from drivers/i2c/chips to drivers/mfd
    since it's more of a multi-function device than anything else,
    and since Jean is trying to vanish drivers/i2c/chips ASAP.

    One way to think of these chips are as the PMIC family most
    used with OMAP1 generation chips.

    Signed-off-by: David Brownell
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Basic MFD framework for the MSP430 microcontroller firmware used
    on the dm355evm board:

    - Provides an interface for other drivers: register read/write
    utilities, and register declarations.

    - Directly exports:
    * Many signals through the GPIO framework
    + LEDs
    + SW6 through gpio sysfs
    + NTSC/nPAL jumper through gpio sysfs
    + ... more could be added later, e.g. MMC signals
    * Child devices:
    + LEDs, via leds-gpio child (and default triggers)
    + RTC, via rtc-dm355evm child device
    + Buttons and IR control, via dm355evm_keys

    - Supports power-off system call. Use the reset button to power
    the board back up; the power supply LED will be on, but the
    MSP430 waits to re-activate the regulators.

    - On probe() this:
    * Announces firmware revision
    * Turns off the banked LEDs
    * Exports the resources noted above
    * Hooks the power-off support
    * Muxes tvp5146 -or- imager for video input

    Unless the new tvp514x driver (tracked for mainline) is configured,
    this assumes that some custom imager driver handles video-in.

    This completely ignores the registers reporting the output voltages
    on the various power supplies. Someone could add a hwmon interface
    if that seems useful.

    Signed-off-by: David Brownell
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • The WM8351 is a WM8350 variant. As well as register default changes the
    WM8351 has fewer voltage and current regulators than the WM8350.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Some WM8350 variants have fewer DCDCs and ISINKs. Identify these at
    probe and refuse to use the absent DCDCs when running on these chips.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • The WM8352 is a variant of the WM8350. Aside from the register defaults
    there are no software visible differences to the WM8350.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • The global irq_desc array is soon going to be accessible only with
    !CONFIG_SPARSE_IRQ. We should start using the generic irq_to_desc()
    routines instead.

    Signed-off-by: Samuel Ortiz

    Samuel Ortiz
     
  • This patch amends DA903x MFD driver with definitions and methods
    needed for battery charger driver.

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

    Mike Rapoport
     
  • Register a child device for the codec in the WM8400.

    Also switch the unregistration of the MFD devices to use the MFD core
    since the current code is hand rolling the same thing.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • The MFD cell structure provides a driver_data field but doesn't pass it
    on to the child devices when instantiating them - do that.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • This is a fix for:

    twl4030-core.c:(.text+0x16a797): undefined reference to `clk_get_rate'
    twl4030-core.c:(.text+0x16a797): undefined reference to `clk_put'

    on x86 and x86_64, as the clock API is not defined on those platforms.

    Signed-off-by: Samuel Ortiz

    Samuel Ortiz
     
  • This contains two bugfixes to the initial twl4030 regulator
    support patch related to USB:

    (a) always overwrite the old list of consumers ... else
    the regulator handles all use the same "usb1v5" name;
    (b) don't set up the "usbcp" regulator, which turns out
    to be managed through separate controls, usually ULPI
    directly from the OTG controller.

    Signed-off-by: David Brownell
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Initial code to create twl4030 voltage regulator devices, using
    the new regulator framework. Note that this now starts to care
    what name is used to declare the TWL chip:

    - TWL4030 is the "old" chip; newer ones have a bigger variety
    of VAUX2 voltages.

    - TWL5030 is the core "new" chip; TPS65950 is its catalog version.

    - The TPS65930 and TPS65920 are cost-reduced catalog versions of
    TWL5030 parts ... fewer regulators, no battery charger, etc.

    Board-specific regulator configuration should be provided, listing
    which regulators are used and their constraints (e.g. 1.8V only).

    Code that could ("should"?) leverage the regulator stuff includes
    TWL4030 USB transceiver support and MMC glue, LCD support for the
    3430SDP and Labrador boards, and S-Video output.

    Signed-off-by: David Brownell
    Signed-off-by: Tony Lindgren
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Finish removing dependency of TWL driver stack on platform-specific
    IRQ definitions ... and remove the build dependency on OMAP.

    This lets the TWL4030 code be included in test builds for most
    platforms, and will make it easier for non-OMAP folk to update
    most of this code for new APIs etc.

    Signed-off-by: David Brownell
    Signed-off-by: Tony Lindgren
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Minor cleanup to twl4030-core: define a helper function to populate
    a single child node, and use it to replace six inconsistent versions
    of the same logic. Both object and source code shrink.

    As part of this, some devices now have more IRQ resources: battery
    charger, keypad, ADC, and USB transceiver. That helps to remove some
    irq #defines that block the children's drivers code from compiling on
    non-OMAP platforms.

    Signed-off-by: David Brownell
    Signed-off-by: Tony Lindgren
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • Implement support for reporting battery health in the WM8350 battery
    interface. Since we are now able to report this via the classs remove
    the diagnostics from the interrupt handler.

    Signed-off-by: Mark Brown
    Acked-by: Anton Vorontsov
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Since the WM8350 driver was originally written the semantics for the
    identification registers of the chip have been clarified, allowing
    us to do an exact match on all the fields. This avoids mistakenly
    running on unsupported hardware.

    Also change to using the datasheet names more consistently for
    legibility and fix a printk() that should be dev_err().

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Rather than check for chip revisions in the WM8350 drivers have the core
    code set flags for relevant differences.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Minor change to the TWL4030 utility interface: support reads
    of all 256 bytes in each register bank (vs just 255). This
    can help when debugging, but is otherwise a NOP.

    Signed-off-by: David Brownell
    Signed-off-by: Samuel Ortiz

    David Brownell
     
  • The auxiliary ADC in the WM8350 is shared between several subdevices
    so access to it needs to be arbitrated by the core driver.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • No other software changes are required.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Hopefully this will make the purpose of these functions a bit clearer,
    it's not immediately obvious that the lock is a hardware feature.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • There's no need to read this back from the chip each time.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     

30 Nov, 2008

1 commit

  • When ISA_DMA_API is unset, we're not implementing the ISA DMA API,
    so there's no point in publishing the prototypes via asm/dma.h, nor
    including the machine dependent parts of that API.

    This allows us to remove a lot of mach/dma.h files which don't contain
    any useful code. Unfortunately though, some platforms put their own
    private non-ISA definitions into mach/dma.h, so we leave these behind
    and fix the appropriate #include statments.

    Signed-off-by: Russell King

    Russell King
     

27 Nov, 2008

1 commit

  • As suggested by Andrew Morton, remove memzero() - it's not supported
    on other architectures so use of it is a potential build breaking bug.
    Since the compiler optimizes memset(x,0,n) to __memzero() perfectly
    well, we don't miss out on the underlying benefits of memzero().

    Signed-off-by: Russell King

    Russell King
     

17 Nov, 2008

2 commits


02 Nov, 2008

1 commit


25 Oct, 2008

2 commits


22 Oct, 2008

5 commits

  • sm501_devdata->irq is unsigned, while platform_get_irq() returns a
    signed int.

    Signed-off-by: Roel Kluin
    Signed-off-by: Samuel Ortiz

    Roel Kluin
     
  • Use the newly introduced pci_ioremap_bar() function in drivers/mfd.
    pci_ioremap_bar() just takes a pci device and a bar number, with the goal
    of making it really hard to get wrong, while also having a central place
    to stick sanity checks.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Samuel Ortiz

    Arjan van de Ven
     
  • This makes the contents of the cache clearer and fixes incorrect
    initialisation of the cache for partially volatile registers.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • October 10th linux-next build (powerpc allyesconfig) failed like this:

    drivers/mfd/wm8350-core.c:1131: error: __ksymtab_wm8350_create_cache causes a section type conflict

    Caused by commit 89b4012befb1abca5e86d232bc0e2a797b0d9825 ("mfd: Core
    support for the WM8350 AudioPlus PMIC"). wm8350_create_cache is not used
    elsewhere, so remove the EXPORT_SYMBOL.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Stephen Rothwell
     
  • - Move it into a separate file; clean and streamline it
    - Restructure the init code for reuse during secondary dispatch
    - Support both levels (primary, secondary) of IRQ dispatch
    - Use a workqueue for irq mask/unmask and trigger configuration

    Code for two subchips currently share that secondary handler code.
    One is the power subchip; its IRQs are now handled by this core,
    courtesy of this patch. The other is the GPIO module, which will
    be supported through a later patch.

    There are also minor changes to the header file, mostly related
    to GPIO support; nothing yet in mainline cares about those. A
    few references to OMAP-specific symbols are disabled; when they
    can all be removed, the TWL4030 support ceases being OMAP-specific.

    Signed-off-by: David Brownell
    Signed-off-by: Tony Lindgren
    Signed-off-by: Samuel Ortiz

    David Brownell
     

21 Oct, 2008

1 commit

  • …/git/tip/linux-2.6-tip

    This merges branches irq/genirq, irq/sparseirq-v4, timers/hpet-percpu
    and x86/uv.

    The sparseirq branch is just preliminary groundwork: no sparse IRQs are
    actually implemented by this tree anymore - just the new APIs are added
    while keeping the old way intact as well (the new APIs map 1:1 to
    irq_desc[]). The 'real' sparse IRQ support will then be a relatively
    small patch ontop of this - with a v2.6.29 merge target.

    * 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (178 commits)
    genirq: improve include files
    intr_remapping: fix typo
    io_apic: make irq_mis_count available on 64-bit too
    genirq: fix name space collisions of nr_irqs in arch/*
    genirq: fix name space collision of nr_irqs in autoprobe.c
    genirq: use iterators for irq_desc loops
    proc: fixup irq iterator
    genirq: add reverse iterator for irq_desc
    x86: move ack_bad_irq() to irq.c
    x86: unify show_interrupts() and proc helpers
    x86: cleanup show_interrupts
    genirq: cleanup the sparseirq modifications
    genirq: remove artifacts from sparseirq removal
    genirq: revert dynarray
    genirq: remove irq_to_desc_alloc
    genirq: remove sparse irq code
    genirq: use inline function for irq_to_desc
    genirq: consolidate nr_irqs and for_each_irq_desc()
    x86: remove sparse irq from Kconfig
    genirq: define nr_irqs for architectures with GENERIC_HARDIRQS=n
    ...

    Linus Torvalds