devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements
@ 2012-10-08  8:39 Tomasz Figa
  2012-10-08  8:39 ` [PATCH 01/16] ARM: dts: exynos4210: Replace legacy GPIO bank nodes with pinctrl bank nodes Tomasz Figa
                   ` (16 more replies)
  0 siblings, 17 replies; 40+ messages in thread
From: Tomasz Figa @ 2012-10-08  8:39 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, thomas.abraham,
	linus.walleij, swarren, kyungmin.park, m.szyprowski, t.figa,
	tomasz.figa

This patch series is a work on improving usability and extensibiltiy of the
pinctrl-samsung driver. It consists of three main parts:
 - moving SoC-specific data to device tree
 - converting the driver to use one GPIO chip and one IRQ domain per pin bank
 - introducing generic wake-up interrupt capability description

What the first part does is replacing static platform-specific data in
pinctrl-samsung driver with data dynamically parsed from device tree.

It aims at reducing the SoC-specific part of the driver and thus the
amount of modifications to driver sources when adding support for next
SoCs (like Exynos4x12).

In addition, it extends the description of SoC-specific attributes to cover all
mainlined Samsung SoCs, starting from s3c24xx and ending on latest Exynos5
series, with the exception of 4-bit banks with more than 8 pins on S3C64xx,
which will be covered by futher patch(es).

The second part attempts to simplify usage of the driver and fix several
problems of current implementation, in particular:

  - Simplifies GPIO pin specification in device tree by using pin
    namespace local to pin bank instead of local to pin controller, e.g.

        gpios = <&gpj0 3 0>;

    instead of

        gpios = <&pinctrl0 115 0>;

  - Simplifies GPIO interrupt specification in device tree by using
    namespace local to pin bank (and equal to GPIO namespace), e.g.

        interrupt-parent = <&gpj0>;
        interrupts = <3 0>;

    instead of

        interrupt-parent = <&pinctrl0>;
        interrupts = <115 0>;

  - Simplifies internal GPIO pin to bank translation thanks to
    correspondence of particular GPIO chips to pin banks. This allows
    to remove the (costly in case of GPIO bit-banging drivers) lookup
    over all banks to find the one that the pin is from.

Third part is focused on removing the static, hard-coded description of wake-up
interrupt controller and wake-up interrupt layout.

It defines a (mostly) generic (in scope of targetted SoCs) wake-up interrupt
layout specification format that allows to specify which pin banks support
wake-up interrupts and how they are handled (direct or multiplexed/chained).

See particular patches for more detailed descriptions and the last patch for
updated device tree bindings.

Tomasz Figa (16):
  ARM: dts: exynos4210: Replace legacy GPIO bank nodes with pinctrl
    bank nodes
  pinctrl: exynos: Parse wakeup-eint parameters from DT
  pinctrl: samsung: Detect and handle unsupported configuration types
  pinctrl: samsung: Parse pin banks from DT
  pinctrl: exynos: Remove static SoC-specific data
  pinctrl: samsung: Parse bank-specific eint offset from DT
  pinctrl: samsung: Hold OF node of pin bank in bank struct
  pinctrl: samsung: Hold pointer to driver data in bank struct
  pinctrl: exynos: Use one IRQ domain per pin bank
  pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank
  pinctrl: samsung: Use one GPIO chip per pin bank
  pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts
  pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up
    EINT
  pinctrl: samsung: Parse offsets of particular registers from DT
  pinctrl: samsung: Add GPIO to IRQ translation
  Documentation: Update samsung-pinctrl device tree bindings
    documentation

 .../bindings/pinctrl/samsung-pinctrl.txt           | 212 ++++++++--
 arch/arm/boot/dts/exynos4210-pinctrl-banks.dtsi    | 459 +++++++++++++++++++++
 arch/arm/boot/dts/exynos4210-pinctrl.dtsi          |   2 +
 arch/arm/boot/dts/exynos4210.dtsi                  | 254 +-----------
 drivers/pinctrl/pinctrl-exynos.c                   | 399 ++++++++----------
 drivers/pinctrl/pinctrl-exynos.h                   | 184 +--------
 drivers/pinctrl/pinctrl-samsung.c                  | 392 ++++++++++++++----
 drivers/pinctrl/pinctrl-samsung.h                  |  87 ++--
 8 files changed, 1205 insertions(+), 784 deletions(-)
 create mode 100644 arch/arm/boot/dts/exynos4210-pinctrl-banks.dtsi

-- 
1.7.12

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2012-10-11 13:52 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-08  8:39 [PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements Tomasz Figa
2012-10-08  8:39 ` [PATCH 01/16] ARM: dts: exynos4210: Replace legacy GPIO bank nodes with pinctrl bank nodes Tomasz Figa
2012-10-10  7:26   ` Linus Walleij
2012-10-10  8:20     ` Tomasz Figa
2012-10-10 16:27     ` Stephen Warren
2012-10-10 18:12       ` Tony Lindgren
2012-10-10 18:22         ` Tomasz Figa
2012-10-10 18:26         ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 02/16] pinctrl: exynos: Parse wakeup-eint parameters from DT Tomasz Figa
2012-10-10  7:18   ` Linus Walleij
2012-10-10  8:23     ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 03/16] pinctrl: samsung: Detect and handle unsupported configuration types Tomasz Figa
2012-10-10  7:37   ` Linus Walleij
2012-10-10  8:25     ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 04/16] pinctrl: samsung: Parse pin banks from DT Tomasz Figa
2012-10-10  7:34   ` Linus Walleij
2012-10-10  8:39     ` Tomasz Figa
2012-10-11 13:52       ` Linus Walleij
2012-10-08  8:39 ` [PATCH 05/16] pinctrl: exynos: Remove static SoC-specific data Tomasz Figa
2012-10-08  8:39 ` [PATCH 06/16] pinctrl: samsung: Parse bank-specific eint offset from DT Tomasz Figa
2012-10-08  8:39 ` [PATCH 07/16] pinctrl: samsung: Hold OF node of pin bank in bank struct Tomasz Figa
2012-10-08  8:39 ` [PATCH 08/16] pinctrl: samsung: Hold pointer to driver data " Tomasz Figa
2012-10-08  8:39 ` [PATCH 09/16] pinctrl: exynos: Use one IRQ domain per pin bank Tomasz Figa
2012-10-10  7:40   ` Linus Walleij
2012-10-10  8:45     ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 10/16] pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank Tomasz Figa
2012-10-10  7:42   ` Linus Walleij
2012-10-10  8:51     ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 11/16] pinctrl: samsung: Use one GPIO chip per pin bank Tomasz Figa
2012-10-10  7:43   ` Linus Walleij
2012-10-10  8:49     ` Tomasz Figa
2012-10-08  8:39 ` [PATCH 12/16] pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts Tomasz Figa
2012-10-08  8:39 ` [PATCH 13/16] pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT Tomasz Figa
2012-10-08  8:39 ` [PATCH 14/16] pinctrl: samsung: Parse offsets of particular registers from DT Tomasz Figa
2012-10-08  8:39 ` [PATCH 15/16] pinctrl: samsung: Add GPIO to IRQ translation Tomasz Figa
2012-10-08  8:39 ` [PATCH 16/16] Documentation: Update samsung-pinctrl device tree bindings documentation Tomasz Figa
2012-10-10  7:46 ` [PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements Linus Walleij
     [not found]   ` <CACRpkdbUmM2=vhjhCq_qN2v=8RUDeWV4b8A8oXXPE4e8Z9C7zg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-10  9:04     ` Tomasz Figa
2012-10-10 15:22   ` Tomasz Figa
2012-10-11 13:48     ` Linus Walleij

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).