Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: t.figa@samsung.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements
Date: Fri, 28 Sep 2012 16:28:31 +0200	[thread overview]
Message-ID: <1348842527-22460-1-git-send-email-t.figa@samsung.com> (raw)

This RFC 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.

Any comments are welcome.

Tomasz Figa (16):
  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 platform-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
  ARM: dts: exynos4210: Remove legacy gpio nodes
  ARM: dts: exynos4210: Add platform-specific descriptions for pin
    controllers
  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                   | 401 ++++++++----------
 drivers/pinctrl/pinctrl-exynos.h                   | 184 +--------
 drivers/pinctrl/pinctrl-samsung.c                  | 372 +++++++++++++----
 drivers/pinctrl/pinctrl-samsung.h                  |  87 ++--
 8 files changed, 1186 insertions(+), 785 deletions(-)
 create mode 100644 arch/arm/boot/dts/exynos4210-pinctrl-banks.dtsi

-- 
1.7.12

             reply	other threads:[~2012-09-28 14:28 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-28 14:28 Tomasz Figa [this message]
2012-09-28 14:28 ` [RFC PATCH 01/16] pinctrl: exynos: Parse wakeup-eint parameters from DT Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 02/16] pinctrl: samsung: Detect and handle unsupported configuration types Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 03/16] pinctrl: samsung: Parse pin banks from DT Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 04/16] pinctrl: exynos: Remove static platform-specific data Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 05/16] pinctrl: samsung: Parse bank-specific eint offset from DT Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 06/16] pinctrl: samsung: Hold OF node of pin bank in bank struct Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 07/16] pinctrl: samsung: Hold pointer to driver data " Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 08/16] pinctrl: exynos: Use one IRQ domain per pin bank Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 09/16] pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 10/16] pinctrl: samsung: Use one GPIO chip per pin bank Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 11/16] pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 12/16] pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 13/16] pinctrl: samsung: Parse offsets of particular registers from DT Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 14/16] ARM: dts: exynos4210: Remove legacy gpio nodes Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 15/16] ARM: dts: exynos4210: Add platform-specific descriptions for pin controllers Tomasz Figa
2012-09-28 14:28 ` [RFC PATCH 16/16] Documentation: Update samsung-pinctrl device tree bindings documentation Tomasz Figa
2012-10-04 19:23   ` Stephen Warren
2012-10-01  6:58 ` [RFC PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements Linus Walleij

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=1348842527-22460-1-git-send-email-t.figa@samsung.com \
    --to=t.figa@samsung.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