linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sebastian.hesselbarth@gmail.com (Sebastian Hesselbarth)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 00/16] pinctrl: mvebu: restructure resource allocation
Date: Sun, 23 Feb 2014 15:20:58 +0100	[thread overview]
Message-ID: <1393165274-32492-1-git-send-email-sebastian.hesselbarth@gmail.com> (raw)
In-Reply-To: <1392220776-30851-1-git-send-email-sebastian.hesselbarth@gmail.com>

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.

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@linaro.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
-- 
1.8.5.3

  parent reply	other threads:[~2014-02-23 14:20 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-25 18:34 [PATCH 00/11] pinctrl: mvebu: remove hardcoded addresses from Dove pinctrl Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 01/11] devicetree: binding: add missing Marvell Dove SoC documentation Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 02/11] devicetree: bindings: update MVEBU pinctrl binding documentation Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 03/11] ARM: dove: add additional pinctrl registers Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 04/11] ARM: dove: add global-config register node Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 05/11] pinctrl: mvebu: fix misdesigned resource allocation Sebastian Hesselbarth
2014-01-27 14:45   ` Thomas Petazzoni
2014-01-27 18:26     ` Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 06/11] pinctrl: mvebu: dove: request additional resources Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 07/11] pinctrl: mvebu: dove: request syscon regmap for global registers Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 08/11] pinctrl: mvebu: dove: use remapped mpp base registers Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 09/11] pinctrl: mvebu: dove: use remapped mpp4 register Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 10/11] pinctrl: mvebu: dove: use remapped pmu_mpp registers Sebastian Hesselbarth
2014-01-25 18:34 ` [PATCH 11/11] pinctrl: mvebu: dove: use global register regmap Sebastian Hesselbarth
2014-01-28  0:39 ` [PATCH v2 00/21] pinctrl: mvebu: restructure and remove hardcoded addresses from Dove pinctrl Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 01/21] devicetree: bindings: add missing Marvell Dove SoC documentation Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 02/21] devicetree: bindings: update MVEBU pinctrl binding documentation Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 03/21] ARM: dove: add additional pinctrl registers Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 04/21] ARM: dove: add global-config register node Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 05/21] pinctrl: mvebu: prepare to fix misdesigned resource allocation Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 06/21] pinctrl: mvebu: add common mpp reg defines to mvebu pinctrl include Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 07/21] pinctrl: mvebu: move generic group name generation Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 08/21] pinctrl: mvebu: remove checks for mpp_get/set Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 09/21] pinctrl: mvebu: dove: provide generic mpp callbacks Sebastian Hesselbarth
2014-01-31 10:13     ` Linus Walleij
2014-01-31 10:19       ` Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 10/21] pinctrl: mvebu: kirkwood: " Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 11/21] pinctrl: mvebu: armada-370: " Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 12/21] pinctrl: mvebu: armada-xp: " Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 13/21] pinctrl: mvebu: remove unused macros and functions Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 14/21] pinctrl: mvebu: remove base address from common driver Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 15/21] pinctrl: mvebu: dove: request additional resources Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 16/21] pinctrl: mvebu: dove: request syscon regmap for global registers Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 17/21] pinctrl: mvebu: dove: use remapped mpp base registers Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 18/21] pinctrl: mvebu: dove: use remapped mpp4 register Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 19/21] pinctrl: mvebu: dove: use remapped pmu_mpp registers Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 20/21] pinctrl: mvebu: dove: use global register regmap Sebastian Hesselbarth
2014-01-28  0:39   ` [PATCH v2 21/21] pinctrl: mvebu: dove: consolidate auto-numbered pmu mpp ranges Sebastian Hesselbarth
2014-01-30 18:29   ` [PATCH v2 00/21] pinctrl: mvebu: restructure and remove hardcoded addresses from Dove pinctrl Andrew Lunn
2014-01-30 18:50     ` Sebastian Hesselbarth
2014-01-30 20:25       ` Andrew Lunn
2014-01-31  2:18         ` Sebastian Hesselbarth
2014-02-01 11:13           ` Andrew Lunn
2014-01-31 10:17   ` Linus Walleij
2014-01-31 10:22     ` Sebastian Hesselbarth
2014-02-12 15:59   ` [PATCH v3 00/13] pinctrl: mvebu: restructure resource allocation Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 01/13] pinctrl: mvebu: count unnamed controls and allocate name buffer Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 02/13] pinctrl: mvebu: remove obsolete per-control name buffer allocation Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 03/13] pinctrl: mvebu: identify generic controls by name Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 04/13] pinctrl: mvebu: remove passing mvebu_mpp_ctrl to callbacks Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 05/13] pinctrl: mvebu: add common mpp reg defines to mvebu pinctrl include Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 06/13] pinctrl: mvebu: dove: provide generic mpp callbacks Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 07/13] pinctrl: mvebu: kirkwood: " Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 08/13] pinctrl: mvebu: armada-370: " Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 09/13] pinctrl: mvebu: armada-xp: " Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 10/13] pinctrl: mvebu: move resource allocation to SoC specific drivers Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 11/13] pinctrl: mvebu: remove common get/set functions Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 12/13] pinctrl: mvebu: dove: consolidate auto-numbered pmu mpp ranges Sebastian Hesselbarth
2014-02-12 15:59     ` [PATCH v3 13/13] pinctrl: mvebu: dove: reuse mpp_{set, get} in pmu callbacks Sebastian Hesselbarth
2014-02-13 16:26     ` [PATCH v3 00/13] pinctrl: mvebu: restructure resource allocation Thomas Petazzoni
2014-02-13 16:41       ` Sebastian Hesselbarth
2014-02-13 16:59         ` Thomas Petazzoni
2014-02-13 17:10           ` Sebastian Hesselbarth
2014-02-13 18:38             ` Thomas Petazzoni
2014-02-23 14:20     ` Sebastian Hesselbarth [this message]
2014-02-23 14:20       ` [PATCH v4 01/16] pinctrl: mvebu: count unnamed controls and allocate name buffer Sebastian Hesselbarth
2014-02-24 10:04         ` Linus Walleij
2014-02-23 14:21       ` [PATCH v4 02/16] pinctrl: mvebu: remove obsolete per-control name buffer allocation Sebastian Hesselbarth
2014-02-24 10:05         ` Linus Walleij
2014-02-23 14:21       ` [PATCH v4 03/16] pinctrl: mvebu: identify generic controls by name Sebastian Hesselbarth
2014-02-24 10:06         ` Linus Walleij
2014-02-23 14:21       ` [PATCH v4 04/16] pinctrl: mvebu: remove passing mvebu_mpp_ctrl to callbacks Sebastian Hesselbarth
2014-02-24 10:07         ` Linus Walleij
2014-02-23 14:21       ` [PATCH v4 05/16] pinctrl: mvebu: add common mpp reg helper to mvebu pinctrl include Sebastian Hesselbarth
2014-02-24 10:08         ` Linus Walleij
2014-02-23 14:21       ` [PATCH v4 06/16] pinctrl: mvebu: dove: provide generic mpp callbacks Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 07/16] pinctrl: mvebu: kirkwood: " Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 08/16] pinctrl: mvebu: armada-370: " Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 09/16] pinctrl: mvebu: armada-xp: " Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 10/16] pinctrl: mvebu: armada-375: " Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 11/16] pinctrl: mvebu: armada-38x: " Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 12/16] pinctrl: mvebu: move resource allocation to SoC specific drivers Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 13/16] pinctrl: mvebu: remove common get/set functions Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 14/16] pinctrl: mvebu: remove MPP_REG_CTRL macro Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 15/16] pinctrl: mvebu: dove: consolidate auto-numbered pmu mpp ranges Sebastian Hesselbarth
2014-02-23 14:21       ` [PATCH v4 16/16] pinctrl: mvebu: dove: reuse mpp_{set, get} in pmu callbacks Sebastian Hesselbarth
2014-02-23 15:40       ` [PATCH v4 00/16] pinctrl: mvebu: restructure resource allocation Jason Cooper
2014-02-23 16:03         ` Sebastian Hesselbarth
2014-02-24 10:22         ` Linus Walleij
2014-02-24 15:05           ` Jason Cooper
2014-02-23 22:06       ` Jason Cooper
2014-02-23 22:12         ` Sebastian Hesselbarth
2014-02-23 22:25           ` Jason Cooper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1393165274-32492-1-git-send-email-sebastian.hesselbarth@gmail.com \
    --to=sebastian.hesselbarth@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).