All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv4 RESEND 0/6] arm: vt8500: Add support for pinctrl/gpio module
@ 2013-04-02  4:40 ` Tony Prisk
  0 siblings, 0 replies; 20+ messages in thread
From: Tony Prisk @ 2013-04-02  4:40 UTC (permalink / raw)
  To: linus.walleij
  Cc: swarren, linux-arm-kernel, vt8500-wm8505-linux-kernel,
	linux-kernel, Tony Prisk

Sorry - got Linus W's email address wrong in first send.

v4 changes:
Changed as requested by Stephen Warren:
Corrected the range checking in of_property_read_u32_index().
Fix configs[0] assignment in wmt_pctl_dt_node_to_map_pull().
Remove the kfree(maps) call, and use devm_kzalloc to simplify the fail path.
Drop the custom .of_xlate function and use the default of_gpio_simple_xlate.
Move the platform memory mapping from per-soc to common init.

v3 changes:
Rebased onto v3.9-rc4
Added the missing interrupt-controller info to the relevant dtsi files.
Removed the gpio-vt8500.txt binding along with the gpio driver.

Changes made as requested by Linux Walleij:
Removed the wm,pinmux property which has caused too much confusion, and left the
	open-coded version in arm/arch-vt8500/vt8500.c until a proper solution
	is sorted out.

Changes made as requested by Stephen Warren:
Defined an active-low flag for gpio since its useful and we will have a use-case
	for it with our LCD power-on/off.

v2 changes:
Rebased onto v3.9-rc2

Changes made as requested by Linus Walleij:
Moved the files into drivers/pinctrl/vt8500/ to keep them tidy.
Changed readl/writel to *_relaxed variants.
Comment indentation corrected and remove additional whitespace.
Changed wmt_pctl_find_group_by_pin() error code from -1 to -EINVAL.
Removed OF read indexed-u32 function to OF subsystem.
General code tidy up as requested.

Changes made as requested by Stephen Warren:
Add binding information for interrupt generation.
Move optional properties to correct location in document.


This patch series removes the existing GPIO driver and replaces it with
a combined pinctrl+gpio driver.

Patch 1 - Add an OF function to read the nth u32 value from a property
  listing multiple values.

Patch 2 - Increase the available GPIO space for the newly added gpios.
  Because there is no hardware documentation from Wondermedia we don't know
  how many GPIO's there actually are. New gpio pins have been located since
  the original GPIO driver was written, hence the increase.

Patch 3 - The main pinctrl/gpio driver and the data for the 5 supported SoCs.
  Each SoC is different, and therefore has its own data. This design was
  borrowed from the Tegra pinctrl driver. The pin numbering is based on a
  bank+pin encoding so that when other pin functions are found later on we can
  add them without having to renumber existing pins.

Patch 4 - Update the SoC dts(i) files to support the new pinctrl driver.

Patch 5 - Remove the existing GPIO driver nodes from the dtsi's.

Patch 6 - Remove the existing GPIO driver.

I suspect this series may need to be broken up since there are two arm-soc
patches, and 4 pinctrl/gpio patches.

Patch 1 is required for the new driver to function properly.
Patch 2 is independant, but required for the driver to function properly.
Patches 3-4 are pinctrl/gpio patches.
Patch 5-6 remove the old gpio code which is no longer required.


Patch 2 could go via arm-soc if necessary.

Regards
Tony Prisk

Tony Prisk (6):
  of: Add support for reading a u32 from a multi-value property.
  arm: vt8500: Increase available GPIOs on arch-vt8500
  pinctrl: gpio: vt8500: Add pincontrol driver for arch-vt8500
  arm: dts: vt8500: Update Wondermedia SoC dtsi files for pinctrl
    driver
  arm: vt8500: Remove gpio devicetree nodes
  gpio: vt8500: Remove arch-vt8500 gpio driver

 .../devicetree/bindings/gpio/gpio-vt8500.txt       |   24 -
 .../devicetree/bindings/pinctrl/pinctrl-vt8500.txt |   57 ++
 arch/arm/Kconfig                                   |    3 +-
 arch/arm/boot/dts/vt8500.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8505.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8650.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8850.dtsi                      |   10 +-
 arch/arm/mach-vt8500/Kconfig                       |    1 +
 drivers/gpio/Kconfig                               |    6 -
 drivers/gpio/Makefile                              |    1 -
 drivers/gpio/gpio-vt8500.c                         |  355 -----------
 drivers/of/base.c                                  |   33 ++
 drivers/pinctrl/Kconfig                            |    1 +
 drivers/pinctrl/Makefile                           |    1 +
 drivers/pinctrl/vt8500/Kconfig                     |   52 ++
 drivers/pinctrl/vt8500/Makefile                    |    8 +
 drivers/pinctrl/vt8500/pinctrl-vt8500.c            |  501 ++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8505.c            |  532 +++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8650.c            |  370 ++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8750.c            |  409 +++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8850.c            |  388 ++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wmt.c               |  620 ++++++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wmt.h               |   79 +++
 include/linux/of.h                                 |    9 +
 24 files changed, 3087 insertions(+), 403 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-vt8500.txt
 delete mode 100644 drivers/gpio/gpio-vt8500.c
 create mode 100644 drivers/pinctrl/vt8500/Kconfig
 create mode 100644 drivers/pinctrl/vt8500/Makefile
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-vt8500.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8505.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8650.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8750.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8850.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wmt.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wmt.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCHv4 0/6] arm: vt8500: Add support for pinctrl/gpio module
@ 2013-04-02  4:39 Tony Prisk
  2013-04-02  4:39   ` Tony Prisk
  0 siblings, 1 reply; 20+ messages in thread
From: Tony Prisk @ 2013-04-02  4:39 UTC (permalink / raw)
  To: linux.walleij
  Cc: swarren, linux-arm-kernel, vt8500-wm8505-linux-kernel,
	linux-kernel, Tony Prisk

v4 changes:
Changed as requested by Stephen Warren:
Corrected the range checking in of_property_read_u32_index().
Fix configs[0] assignment in wmt_pctl_dt_node_to_map_pull().
Remove the kfree(maps) call, and use devm_kzalloc to simplify the fail path.
Drop the custom .of_xlate function and use the default of_gpio_simple_xlate.
Move the platform memory mapping from per-soc to common init.

v3 changes:
Rebased onto v3.9-rc4
Added the missing interrupt-controller info to the relevant dtsi files.
Removed the gpio-vt8500.txt binding along with the gpio driver.

Changes made as requested by Linux Walleij:
Removed the wm,pinmux property which has caused too much confusion, and left the
	open-coded version in arm/arch-vt8500/vt8500.c until a proper solution
	is sorted out.

Changes made as requested by Stephen Warren:
Defined an active-low flag for gpio since its useful and we will have a use-case
	for it with our LCD power-on/off.

v2 changes:
Rebased onto v3.9-rc2

Changes made as requested by Linus Walleij:
Moved the files into drivers/pinctrl/vt8500/ to keep them tidy.
Changed readl/writel to *_relaxed variants.
Comment indentation corrected and remove additional whitespace.
Changed wmt_pctl_find_group_by_pin() error code from -1 to -EINVAL.
Removed OF read indexed-u32 function to OF subsystem.
General code tidy up as requested.

Changes made as requested by Stephen Warren:
Add binding information for interrupt generation.
Move optional properties to correct location in document.


This patch series removes the existing GPIO driver and replaces it with
a combined pinctrl+gpio driver.

Patch 1 - Add an OF function to read the nth u32 value from a property
  listing multiple values.

Patch 2 - Increase the available GPIO space for the newly added gpios.
  Because there is no hardware documentation from Wondermedia we don't know
  how many GPIO's there actually are. New gpio pins have been located since
  the original GPIO driver was written, hence the increase.

Patch 3 - The main pinctrl/gpio driver and the data for the 5 supported SoCs.
  Each SoC is different, and therefore has its own data. This design was
  borrowed from the Tegra pinctrl driver. The pin numbering is based on a
  bank+pin encoding so that when other pin functions are found later on we can
  add them without having to renumber existing pins.

Patch 4 - Update the SoC dts(i) files to support the new pinctrl driver.

Patch 5 - Remove the existing GPIO driver nodes from the dtsi's.

Patch 6 - Remove the existing GPIO driver.

I suspect this series may need to be broken up since there are two arm-soc
patches, and 4 pinctrl/gpio patches.

Patch 1 is required for the new driver to function properly.
Patch 2 is independant, but required for the driver to function properly.
Patches 3-4 are pinctrl/gpio patches.
Patch 5-6 remove the old gpio code which is no longer required.


Patch 2 could go via arm-soc if necessary.

Regards
Tony Prisk

Tony Prisk (6):
  of: Add support for reading a u32 from a multi-value property.
  arm: vt8500: Increase available GPIOs on arch-vt8500
  pinctrl: gpio: vt8500: Add pincontrol driver for arch-vt8500
  arm: dts: vt8500: Update Wondermedia SoC dtsi files for pinctrl
    driver
  arm: vt8500: Remove gpio devicetree nodes
  gpio: vt8500: Remove arch-vt8500 gpio driver

 .../devicetree/bindings/gpio/gpio-vt8500.txt       |   24 -
 .../devicetree/bindings/pinctrl/pinctrl-vt8500.txt |   57 ++
 arch/arm/Kconfig                                   |    3 +-
 arch/arm/boot/dts/vt8500.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8505.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8650.dtsi                      |   10 +-
 arch/arm/boot/dts/wm8850.dtsi                      |   10 +-
 arch/arm/mach-vt8500/Kconfig                       |    1 +
 drivers/gpio/Kconfig                               |    6 -
 drivers/gpio/Makefile                              |    1 -
 drivers/gpio/gpio-vt8500.c                         |  355 -----------
 drivers/of/base.c                                  |   33 ++
 drivers/pinctrl/Kconfig                            |    1 +
 drivers/pinctrl/Makefile                           |    1 +
 drivers/pinctrl/vt8500/Kconfig                     |   52 ++
 drivers/pinctrl/vt8500/Makefile                    |    8 +
 drivers/pinctrl/vt8500/pinctrl-vt8500.c            |  501 ++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8505.c            |  532 +++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8650.c            |  370 ++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8750.c            |  409 +++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wm8850.c            |  388 ++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wmt.c               |  620 ++++++++++++++++++++
 drivers/pinctrl/vt8500/pinctrl-wmt.h               |   79 +++
 include/linux/of.h                                 |    9 +
 24 files changed, 3087 insertions(+), 403 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-vt8500.txt
 delete mode 100644 drivers/gpio/gpio-vt8500.c
 create mode 100644 drivers/pinctrl/vt8500/Kconfig
 create mode 100644 drivers/pinctrl/vt8500/Makefile
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-vt8500.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8505.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8650.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8750.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wm8850.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wmt.c
 create mode 100644 drivers/pinctrl/vt8500/pinctrl-wmt.h

-- 
1.7.9.5


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

end of thread, other threads:[~2013-04-02 23:42 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-02  4:40 [PATCHv4 RESEND 0/6] arm: vt8500: Add support for pinctrl/gpio module Tony Prisk
2013-04-02  4:40 ` Tony Prisk
2013-04-02  4:40 ` [PATCHv4 1/6] of: Add support for reading a u32 from a multi-value property Tony Prisk
2013-04-02  4:40   ` Tony Prisk
2013-04-02 23:42   ` Rob Herring
2013-04-02 23:42     ` Rob Herring
2013-04-02  4:40 ` [PATCHv4 2/6] arm: vt8500: Increase available GPIOs on arch-vt8500 Tony Prisk
2013-04-02  4:40   ` Tony Prisk
2013-04-02  4:40 ` [PATCHv4 3/6] pinctrl: gpio: vt8500: Add pincontrol driver for arch-vt8500 Tony Prisk
2013-04-02  4:40   ` Tony Prisk
2013-04-02  4:40 ` [PATCHv4 4/6] arm: dts: vt8500: Update Wondermedia SoC dtsi files for pinctrl driver Tony Prisk
2013-04-02  4:40   ` Tony Prisk
2013-04-02  4:41 ` [PATCHv4 5/6] arm: vt8500: Remove gpio devicetree nodes Tony Prisk
2013-04-02  4:41   ` Tony Prisk
2013-04-02  4:41 ` [PATCHv4 6/6] gpio: vt8500: Remove arch-vt8500 gpio driver Tony Prisk
2013-04-02  4:41   ` Tony Prisk
2013-04-02 23:17 ` [PATCHv4 RESEND 0/6] arm: vt8500: Add support for pinctrl/gpio module Stephen Warren
2013-04-02 23:17   ` Stephen Warren
  -- strict thread matches above, loose matches on Subject: below --
2013-04-02  4:39 [PATCHv4 " Tony Prisk
2013-04-02  4:39 ` [PATCHv4 5/6] arm: vt8500: Remove gpio devicetree nodes Tony Prisk
2013-04-02  4:39   ` Tony Prisk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.