linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/81] SH pin control and GPIO rework
@ 2012-12-15 22:50 Laurent Pinchart
  2012-12-18  2:06 ` Simon Horman
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Laurent Pinchart @ 2012-12-15 22:50 UTC (permalink / raw)
  To: linux-sh

Hi everybody,

Here's the third version of the SH pin control and GPIO rework patches. I've
removed OF support and related DT patches, as the patch set was growing too
big for my tastes. OF support will be submitted as a separate patch set on top
of this one.

I've (hopefully) fixed all issues pointed out by the comments I've received on
v2, except for comments to which I've replied that a fix will be part of a
later patch series.

This set starts with additional platform-specific fixes (patches 4 to 7), I
would appreciate if someone could review them carefully.

The patches are based on top of the latest mainline tree master branch. You 
can get them from my git tree at
 
        git://linuxtv.org/pinchartl/fbdev.git pinmux

The code has been compile-tested on all modified platforms except SH7264 and
SH7269, and runtime tested on SH7372 (Mackerel), SH73A0 (KZM-A9-GT) and
R8A7740 (Armadillo) so far. I will runtime test it on R8A7779 (Marzen).

The SH7264 and SH7269 platforms have no gpiolib support so the PFC code can't
be compiled for them. As the currently implemented arch-level pinmux support
also depends on generic GPIO, we're moving from a situation where the code
isn't used to a different situation where the code isn't used. I don't
consider that as a regression.

Sorry for the numerous checkpatch warnings, patches that move code around or
rename files don't modify the content to make review easier, and thus carry
warnings from the existing code.

I would like to push this set to v3.9 independently of the later rework and
OF-related sets. Linus and Simon, which tree would you like me to push this
through ?

Changes since v2:

- Update to latest mainline tree master branch
- Rename marks to match GPIO names
- Fix GPIOs data for sh7757, sh7786 and shx3 platforms
- Remove __devinit/__devexit
- Use devm_* managed memory allocation and mapping functions
- Use the sh_pfc_ prefix for structures and functions
- Update module authors
- Drop OF support and related DT patches

Changes since v1:

- Split SoC changes in one patch per SoC to make backporting easier
- Dropped SH7267 and SH7277 changes as support for those SoCs will be removed
  from the kernel
- Removed the sh_pfc_register() function on ARM
- Added OF support for PFC instantiation and GPIO bindings
- Added PFC DT nodes for the Mackerel and KZM9G boards
- Added GPIO LEDs DT nodes for the KZM9G board

Laurent Pinchart (81):
  sh: sh7264: Rename CRX0CRX1 mark to match GPIO names
  sh: sh7269: Rename CRX0CRX1(CRX2) marks to match GPIO names
  sh: sh7723: Rename GPIO_FN_SIUOSPD to GPIO_FN_SIUAOSPD
  sh: sh7757: Fix GPIO_FN_ET0_MDIO and GPIO_FN_ET1_MDIO GPIO entries
  sh: sh7786: Fix port E, G and J GPIOs
  sh: sh7786: Fix last GPIO index
  sh: shx3: Fix last GPIO index
  sh-pfc: Remove all use of __devinit/__devexit
  sh-pfc: Split platform data from the sh_pfc structure
  sh-pfc: Move private definitions and declarations to private header
  sh-pfc: Merge PFC core and pinctrl
  sh-pfc: Merge PFC core and gpio
  sh-pfc: Move platform device and driver to the core
  sh-pfc: Use devm_kzalloc()
  sh-pfc: Use devm_ioremap_nocache()
  sh-pfc: Let the compiler decide whether to inline functions
  sh-pfc: Remove check for impossible error condition
  sh-pfc: Sort headers alphabetically
  sh-pfc: Use sh_pfc_ namespace prefix through the whole driver
  sh-pfc: Split platform device and platform driver registration
  sh-pfc: Support passing resources through platform device
  ARM: shmobile: Select PINCTRL
  ARM: shmobile: r8a7740: Register PFC platform device
  ARM: shmobile: r8a7779: Register PFC platform device
  ARM: shmobile: sh7372: Register PFC platform device
  ARM: shmobile: sh73a0: Register PFC platform device
  ARM: shmobile: r8a7740: Add pin control resources
  ARM: shmobile: sh7372: Add pin control resources
  ARM: shmobile: sh73a0: Add pin control resources
  sh: Add PFC platform device registration helper function
  sh: sh7203: Register PFC platform device
  sh: sh7264: Register PFC platform device
  sh: sh7269: Register PFC platform device
  sh: sh7720: Register PFC platform device
  sh: sh7722: Register PFC platform device
  sh: sh7723: Register PFC platform device
  sh: sh7724: Register PFC platform device
  sh: sh7734: Register PFC platform device
  sh: sh7757: Register PFC platform device
  sh: sh7785: Register PFC platform device
  sh: sh7786: Register PFC platform device
  sh: shx3: Register PFC platform device
  sh-pfc: Remove platform device registration
  sh-pfc: Remove unused resource and num_resources platform data fields
  sh-pfc: Move driver from drivers/sh/ to drivers/pinctrl/
  sh-pfc: Support pinmux info in driver data instead of platform data
  sh-pfc: Add r8a7740 pinmux support
  sh-pfc: Add r8a7779 pinmux support
  sh-pfc: Add sh7372 pinmux support
  sh-pfc: Add sh73a0 pinmux support
  ARM: shmobile: r8a7740: Use driver-provided pinmux info
  ARM: shmobile: r8a7779: Use driver-provided pinmux info
  ARM: shmobile: sh7372: Use driver-provided pinmux info
  ARM: shmobile: sh73a0: Use driver-provided pinmux info
  sh-pfc: Add sh7203 pinmux support
  sh-pfc: Add sh7264 pinmux support
  sh-pfc: Add sh7269 pinmux support
  sh-pfc: Add sh7720 pinmux support
  sh-pfc: Add sh7722 pinmux support
  sh-pfc: Add sh7723 pinmux support
  sh-pfc: Add sh7724 pinmux support
  sh-pfc: Add sh7734 pinmux support
  sh-pfc: Add sh7757 pinmux support
  sh-pfc: Add sh7785 pinmux support
  sh-pfc: Add sh7786 pinmux support
  sh-pfc: Add shx3 pinmux support
  sh: sh7203: pinmux: Use driver-provided pinmux info
  sh: sh7264: pinmux: Use driver-provided pinmux info
  sh: sh7269: pinmux: Use driver-provided pinmux info
  sh: sh7720: pinmux: Use driver-provided pinmux info
  sh: sh7722: pinmux: Use driver-provided pinmux info
  sh: sh7723: pinmux: Use driver-provided pinmux info
  sh: sh7724: pinmux: Use driver-provided pinmux info
  sh: sh7734: pinmux: Use driver-provided pinmux info
  sh: sh7757: pinmux: Use driver-provided pinmux info
  sh: sh7785: pinmux: Use driver-provided pinmux info
  sh: sh7786: pinmux: Use driver-provided pinmux info
  sh: shx3: pinmux: Use driver-provided pinmux info
  sh: Remove unused sh_pfc_register_info() function
  sh-pfc: Remove pinmux_info definition
  sh-pfc: Move sh_pfc.h from include/linux/ to driver directory

 arch/arm/Kconfig                                   |    1 +
 arch/arm/mach-shmobile/Makefile                    |    8 -
 arch/arm/mach-shmobile/setup-r8a7740.c             |   26 +
 arch/arm/mach-shmobile/setup-r8a7779.c             |   25 +
 arch/arm/mach-shmobile/setup-sh7372.c              |   26 +
 arch/arm/mach-shmobile/setup-sh73a0.c              |   25 +
 arch/sh/Kconfig                                    |   12 +
 arch/sh/include/asm/gpio.h                         |    2 +-
 arch/sh/include/cpu-common/cpu/pfc.h               |   26 +
 arch/sh/include/cpu-sh4/cpu/sh7723.h               |    2 +-
 arch/sh/include/cpu-sh4/cpu/sh7786.h               |    8 +-
 arch/sh/kernel/cpu/Makefile                        |    2 +-
 arch/sh/kernel/cpu/pfc.c                           |   33 +
 arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c            | 1582 +-----------
 arch/sh/kernel/cpu/sh2a/pinmux-sh7264.c            | 2121 +---------------
 arch/sh/kernel/cpu/sh2a/pinmux-sh7269.c            | 2823 +-------------------
 arch/sh/kernel/cpu/sh3/pinmux-sh7720.c             | 1226 +---------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7722.c            | 1778 +------------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7723.c            | 1893 +-------------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7724.c            | 2210 +---------------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7734.c            | 2470 +-----------------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7757.c            | 2267 +----------------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7785.c            | 1294 +---------
 arch/sh/kernel/cpu/sh4a/pinmux-sh7786.c            |  822 +------
 arch/sh/kernel/cpu/sh4a/pinmux-shx3.c              |  573 +----
 drivers/pinctrl/Kconfig                            |    2 +-
 drivers/pinctrl/Makefile                           |    2 +
 drivers/pinctrl/sh-pfc/Kconfig                     |  116 +
 drivers/pinctrl/sh-pfc/Makefile                    |   21 +
 drivers/{sh/pfc => pinctrl/sh-pfc}/core.c          |  355 ++-
 drivers/pinctrl/sh-pfc/core.h                      |   72 +
 drivers/{sh/pfc => pinctrl/sh-pfc}/gpio.c          |  114 +-
 .../pinctrl/sh-pfc}/pfc-r8a7740.c                  |   11 +-
 .../pinctrl/sh-pfc}/pfc-r8a7779.c                  |   29 +-
 drivers/pinctrl/sh-pfc/pfc-sh7203.c                | 1592 +++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7264.c                | 2131 +++++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7269.c                | 2834 ++++++++++++++++++++
 .../pinctrl/sh-pfc}/pfc-sh7372.c                   |   11 +-
 .../pinctrl/sh-pfc}/pfc-sh73a0.c                   |   11 +-
 drivers/pinctrl/sh-pfc/pfc-sh7720.c                | 1236 +++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7722.c                | 1779 ++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7723.c                | 1903 +++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7724.c                | 2225 +++++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7734.c                | 2475 +++++++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7757.c                | 2282 ++++++++++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7785.c                | 1304 +++++++++
 drivers/pinctrl/sh-pfc/pfc-sh7786.c                |  837 ++++++
 drivers/pinctrl/sh-pfc/pfc-shx3.c                  |  582 ++++
 drivers/{sh/pfc => pinctrl/sh-pfc}/pinctrl.c       |  170 +-
 {include/linux => drivers/pinctrl/sh-pfc}/sh_pfc.h |   43 +-
 drivers/sh/Kconfig                                 |    1 -
 drivers/sh/Makefile                                |    1 -
 drivers/sh/pfc/Kconfig                             |   26 -
 drivers/sh/pfc/Makefile                            |    3 -
 54 files changed, 21899 insertions(+), 21524 deletions(-)
 create mode 100644 arch/sh/include/cpu-common/cpu/pfc.h
 create mode 100644 arch/sh/kernel/cpu/pfc.c
 create mode 100644 drivers/pinctrl/sh-pfc/Kconfig
 create mode 100644 drivers/pinctrl/sh-pfc/Makefile
 rename drivers/{sh/pfc => pinctrl/sh-pfc}/core.c (50%)
 create mode 100644 drivers/pinctrl/sh-pfc/core.h
 rename drivers/{sh/pfc => pinctrl/sh-pfc}/gpio.c (57%)
 rename {arch/arm/mach-shmobile => drivers/pinctrl/sh-pfc}/pfc-r8a7740.c (99%)
 rename {arch/arm/mach-shmobile => drivers/pinctrl/sh-pfc}/pfc-r8a7779.c (99%)
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7203.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7264.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7269.c
 rename {arch/arm/mach-shmobile => drivers/pinctrl/sh-pfc}/pfc-sh7372.c (99%)
 rename {arch/arm/mach-shmobile => drivers/pinctrl/sh-pfc}/pfc-sh73a0.c (99%)
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7720.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7722.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7723.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7724.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7734.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7757.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7785.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-sh7786.c
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-shx3.c
 rename drivers/{sh/pfc => pinctrl/sh-pfc}/pinctrl.c (73%)
 rename {include/linux => drivers/pinctrl/sh-pfc}/sh_pfc.h (83%)
 delete mode 100644 drivers/sh/pfc/Kconfig
 delete mode 100644 drivers/sh/pfc/Makefile

-- 
Regards,

Laurent Pinchart


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

end of thread, other threads:[~2012-12-19 21:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-15 22:50 [PATCH v3 00/81] SH pin control and GPIO rework Laurent Pinchart
2012-12-18  2:06 ` Simon Horman
2012-12-19 15:31 ` Linus Walleij
2012-12-19 21:24 ` Laurent Pinchart

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