Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements
@ 2012-09-28 14:28 Tomasz Figa
  2012-09-28 14:28 ` [RFC PATCH 01/16] pinctrl: exynos: Parse wakeup-eint parameters from DT Tomasz Figa
                   ` (16 more replies)
  0 siblings, 17 replies; 19+ messages in thread
From: Tomasz Figa @ 2012-09-28 14:28 UTC (permalink / raw)
  To: linux-arm-kernel

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

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

end of thread, other threads:[~2012-10-04 19:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-28 14:28 [RFC PATCH 00/16] pinctrl: samsung: Usability and extensibiltiy improvements Tomasz Figa
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox