[PATCH v4 00/16] pinctrl: mvebu: restructure resource allocation

Jason Cooper jason at lakedaemon.net
Sun Feb 23 17:06:10 EST 2014


On Sun, Feb 23, 2014 at 03:20:58PM +0100, Sebastian Hesselbarth wrote:
> This patch set restructures the common pinctrl driver part of mvebu
> to allow SoC specific controls to handle their own resources. Currently,
> the common driver maps a single resource passed by DT while the SoC
> specific controls cannot access that resource. To achieve the removal
> of knowledge of resources in the common driver, we first need to rework
> how SoC specific and common get/set callbacks are handled.
> 
> The patch set is based on three patch sets sent earlier [1][2][3] but drops
> any Dove specific removal of hardcoded addresses. This allows to have
> a clear view on the structural changes now and Dove specific changes
> later on. The Dove specific patches will be re-sent on top of this one,
> as soon as we are all happy with the resource allcation restruturing.
> 
> Also, in the meantime, pinctrl driver stubs for new Armada 375/38x have
> been posted [4]. Compared to v3, this patch set now also takes care of
> the new pinctrl stubs for Armada 375/38x. Those patches have been provided
> by Thomas Petazzoni and make this patches depend on them. We have no stable
> branch for the Armada 375/38x pinctrl patches but I guess Jason will provide
> one soon.

Ok, I've applied this to mvebu/pinctrl with a dependency on
mvebu/pinctrl-3xx.  So this'll be in -next tonight and hopefully we'll
have an ideal in a few days which tree we'll send it through.

thx,

Jason.

> In contrast to v3, we provide a generic mpp ctrl helper that is now
> reused in the SoC-specific stubs instead of replaying the same code over
> and over again. A more detailled changelog is given in the single patches.
> 
> Patches 1-3 first deal with the way we handle unnamed "generic" mpp
> controls. Patch 1 consolidates the per-control allocation of name buffers
> to counting unnamed controls first and then allocate a global name buffer
> for all those controls. Patch 2 then removes the now obsolete per-control
> allocation of name buffers. Patch 3 then makes the common driver to
> identify "generic" mpp controls by an empty name and adds some valuable
> comments about that special treatment.
> 
> Patch 4 removes passing struct mvebu_mpp_ctrl to the special callback
> as the only relevant information in that struct for the callback is the
> pin number which is passed directly instead.
> 
> Patches 5-11 then add generic mpp helpers and provide SoC specific
> callbacks even for the "generic" mpp controls. This allows Patch 12 to
> move resource allocation to SoC specific drivers and remove the common
> generic callbacks and now unused macro in Patch 13 and 14, respectively.
> 
> Patches 15-16 finally apply some consolidation and reuse patches to
> Dove SoC driver that are now possible.
> 
> The patches are based on 3.14-rc3. They are also available on an *unstable*
> branch at
> 
> https://github.com/shesselba/linux-dove.git unstable/mvebu-pinctrl-v3.14_v4
> 
> They have been tested on Dove and Kirkwood, compile-tested for the others,
> Andrew's Tested-by for the Kirkwood patches still applies, Thomas gave his
> Tested-by for Armada XP on v3.
> 
> [1] http://www.spinics.net/lists/arm-kernel/msg303496.html
> [2] http://lkml.org/lkml/2014/1/27/562
> [3] http://lkml.org/lkml/2014/2/12/427
> [4] http://www.spinics.net/lists/arm-kernel/msg306409.html
> 
> Sebastian Hesselbarth (13):
>   pinctrl: mvebu: count unnamed controls and allocate name buffer
>   pinctrl: mvebu: remove obsolete per-control name buffer allocation
>   pinctrl: mvebu: identify generic controls by name
>   pinctrl: mvebu: remove passing mvebu_mpp_ctrl to callbacks
>   pinctrl: mvebu: add common mpp reg helper to mvebu pinctrl include
>   pinctrl: mvebu: dove: provide generic mpp callbacks
>   pinctrl: mvebu: kirkwood: provide generic mpp callbacks
>   pinctrl: mvebu: armada-370: provide generic mpp callbacks
>   pinctrl: mvebu: armada-xp: provide generic mpp callbacks
>   pinctrl: mvebu: move resource allocation to SoC specific drivers
>   pinctrl: mvebu: remove common get/set functions
>   pinctrl: mvebu: dove: consolidate auto-numbered pmu mpp ranges
>   pinctrl: mvebu: dove: reuse mpp_{set,get} in pmu callbacks
> 
> Thomas Petazzoni (3):
>   pinctrl: mvebu: armada-375: provide generic mpp callbacks
>   pinctrl: mvebu: armada-38x: provide generic mpp callbacks
>   pinctrl: mvebu: remove MPP_REG_CTRL macro
> 
>  drivers/pinctrl/mvebu/pinctrl-armada-370.c |  20 ++++-
>  drivers/pinctrl/mvebu/pinctrl-armada-375.c |  20 ++++-
>  drivers/pinctrl/mvebu/pinctrl-armada-38x.c |  20 ++++-
>  drivers/pinctrl/mvebu/pinctrl-armada-xp.c  |  24 +++++-
>  drivers/pinctrl/mvebu/pinctrl-dove.c       | 133 +++++++++++++----------------
>  drivers/pinctrl/mvebu/pinctrl-kirkwood.c   |  25 +++++-
>  drivers/pinctrl/mvebu/pinctrl-mvebu.c      | 122 +++++++++-----------------
>  drivers/pinctrl/mvebu/pinctrl-mvebu.h      |  55 +++++++-----
>  8 files changed, 231 insertions(+), 188 deletions(-)
> 
> ---
> Cc: Linus Walleij <linus.walleij at linaro.org>
> Cc: Jason Cooper <jason at lakedaemon.net>
> Cc: Andrew Lunn <andrew at lunn.ch>
> Cc: Gregory Clement <gregory.clement at free-electrons.com>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Cc: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> -- 
> 1.8.5.3
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list