15 Oct, 2012

1 commit


02 Oct, 2012

1 commit

  • Pull ARM soc multiplatform enablement from Olof Johansson:
    "This is a pretty significant branch. It's the introduction of the
    first multiplatform support on ARM, and with this (and the later
    branch) merged, it is now possible to build one kernel that contains
    support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
    platforms will be convered over in the next few releases.

    Two critical last things had to be done for this to be practical and
    possible:
    * Today each platform has its own include directory under
    mach-/include/mach/*, and traditionally that is where a lot
    of driver/platform shared definitions have gone, such as platform
    data structures. They now need to move out to a common location
    instead, and this branch moves a large number of those out to
    include/linux/platform_data.
    * Each platform used to list the device trees to compile for its
    boards in mach-/Makefile.boot.

    Both of the above changes will mean that there are some merge
    conflicts to come (and some to resolve here). It's a one-time move
    and once it settles in, we should be good for quite a while. Sorry
    for the overhead."

    Fix conflicts as per Olof.

    * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits)
    ARM: add v7 multi-platform defconfig
    ARM: msm: Move core.h contents into common.h
    ARM: highbank: call highbank_pm_init from .init_machine
    ARM: dtb: move all dtb targets to common Makefile
    ARM: spear: move platform_data definitions
    ARM: samsung: move platform_data definitions
    ARM: orion: move platform_data definitions
    ARM: vexpress: convert to multi-platform
    ARM: initial multiplatform support
    ARM: mvebu: move armada-370-xp.h in mach dir
    ARM: vexpress: remove dependency on mach/* headers
    ARM: picoxcell: remove dependency on mach/* headers
    ARM: move all dtb targets out of Makefile.boot
    ARM: picoxcell: move debug macros to include/debug
    ARM: socfpga: move debug macros to include/debug
    ARM: mvebu: move debug macros to include/debug
    ARM: vexpress: move debug macros to include/debug
    ARM: highbank: move debug macros to include/debug
    ARM: move debug macros to common location
    ARM: make mach/gpio.h headers optional
    ...

    Linus Torvalds
     

25 Sep, 2012

1 commit

  • Some drivers need to switch pin states between GPIO and pin function at
    runtime, which was inadvertently broken in the pinctrl driver for GPIOs
    being bound to a specific direction.

    This fixes up the request path to ensure that previously configured GPIOs
    don't cause us to inadvertently error out with an unsupported mux on
    reconfig, which in practice is primarily aimed at trapping pull-up/down
    users that have yet to be implemented under the new API.

    Fixes up regressions in the TPU PWM driver, amongst others.

    Reported-by: Laurent Pinchart
    Tested-by: Laurent Pinchart
    Signed-off-by: Paul Mundt

    Paul Mundt
     

18 Sep, 2012

1 commit


14 Sep, 2012

1 commit


20 Aug, 2012

1 commit


09 Aug, 2012

1 commit

  • Presently it's assumed that the irqdomain code handles the irq_desc
    allocation for us, but this isn't necessarily the case when we've
    pre-allocated IRQs via sparseirq. Previously we had a -EEXIST check in
    the code that attempted to trap these cases and simply update them
    in-place, but this behaviour was inadvertently lost in the transition to
    irqdomains.

    This simply restores the previous behaviour, first attempting to let the
    irqdomain core fetch the allocation for us, and falling back to an
    in-place domain association in the extant IRQ case. Fixes up regressions
    on platforms that pre-allocate legacy IRQs (specifically ARM-based
    SH-Mobile platforms, as SH stopped pre-allocating vectors some time ago).

    Reported-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt
     

01 Aug, 2012

3 commits

  • Paul Mundt
     
  • Trivial support for irq domains, using either a linear map or radix tree
    depending on the vector layout.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Commit ca5481c68e9fbcea62bb3c78ae6cccf99ca8fb73 ("sh: pfc: Rudimentary
    pinctrl-backed GPIO support.") introduced a regression for platforms that
    were doing early GPIO API calls (from arch_initcall() or earlier),
    leading to a situation where our two-stage registration logic would trip
    itself up and we'd -ENODEV out of the pinctrl registration path,
    resulting in endless -EPROBE_DEFER errors. Further lack of checking any
    sort of errors from gpio_request() resulted in boot time warnings,
    tripping on the FLAG_REQUESTED test-and-set in gpio_ensure_requested().

    As it turns out there's no particular need to bother with the two-stage
    registration, as the platform bus is already available at the point that
    we have to start caring. As such, it's easiest to simply fold these
    together in to a single init path, the ordering of which is ensured
    through the platform's mux registration, as usual.

    Reported-by: Rafael J. Wysocki
    Reported-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt
     

25 Jul, 2012

1 commit


20 Jul, 2012

3 commits


17 Jul, 2012

4 commits


11 Jul, 2012

2 commits


10 Jul, 2012

2 commits

  • This begins the migration of the PFC core to the pinctrl subsystem.
    Initial support is very basic, with the bulk of the implementation simply
    being nopped out in such a way to allow registration with the pinctrl
    core to succeed.

    The gpio chip driver is stripped down considerably now relying purely on
    pinctrl API calls to manage the bulk of its operations.

    This provides a basis for further PFC refactoring, including decoupling
    pin functions from the GPIO API, establishing pin groups, and so forth.
    These will all be dealt with incrementally so as to introduce as few
    growing and migratory pains to tree-wide PFC pinmux users today.

    When the interfaces have been well established and in-tree users have
    been migrated off of the legacy interfaces it will be possible to strip
    down the core considerably, leading to eventual drivers/pinctrl rehoming.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This follows the intc/clk changes and shuffles the PFC support code under
    its own directory. This will facilitate better code sharing, and allow us
    to trim down the exported interface by quite a margin.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

21 Jun, 2012

1 commit


20 Jun, 2012

4 commits

  • The encoding is tightly packed, and future changes (such as
    pinconf-generic support) can easily lead to a situation where we violate
    the encoding constraints and trample data bit/reg bits. This plugs in
    some sanity checks by way of a BUILD_BUG_ON() to blow up if we fail to
    fit.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements some Kconfig knobs for ensuring that the PFC gpio chip
    can be disabled or built as a module in the cases where it's optional, or
    forcibly enabled in cases where it's not.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements a bit of rework for the PFC code, making the core itself
    slightly more pluggable and moving out the gpio chip handling completely.

    The API is preserved in such a way that platforms that depend on it for
    early configuration are still able to do so, while making it possible to
    migrate to alternate interfaces going forward.

    This is the first step of chainsawing necessary to support the pinctrl
    API, with the eventual goal being able to decouple pin function state
    from the gpio API while retaining gpio chip tie-in for gpio pin functions
    only, relying on the pinctrl/pinmux API for non-gpio function demux.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Paul Mundt
     

13 Jun, 2012

2 commits


25 May, 2012

7 commits


24 May, 2012

1 commit


22 May, 2012

1 commit

  • At present reserving the IRLs in the IRQ bitmap in addition to the
    dropping of the legacy IRQ pre-allocation prevent IRL IRQs from being
    allocated for the x3proto board.

    The only reason to permit reservations was to lock down possible hardware
    vectors prior to dynamic IRQ scanning, but this doesn't matter much given
    that the hardware controller configuration is sorted before we get around
    to doing any dynamic IRQ allocation anyways. Beyond that, all of the
    tables are __init annotated, so quite a bit more work would need to be
    done to support reconfiguring things like IRL controllers on the fly,
    much more than would ever make it worth the hassle.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

12 Apr, 2012

1 commit


11 Apr, 2012

1 commit