[PATCH 0/4] Pinmux subsystem

Linus Walleij linus.walleij at stericsson.com
Mon May 2 15:16:08 EDT 2011


From: Linus Walleij <linus.walleij at linaro.org>

This patchset creates a pinmux subsystem and switches U300 to use that new
subsystem as an example. The problem is not that fantastically hard to
solve in a general way, nobody got around to it because it requires some
upfront code I believe, and this is my stab at it.

For details about what pinmuxing is see the Documentation/pinmux.txt file
in the patchset.

The problem is not ARM specific at all, I haven't looked around deeply but I
expect the same type of hacks to exist in most embedded hardware.

This patchset goes on top of my previous gpio consolidation patches that
bring the U300 GPIO driver into drivers/gpio.

If there is nothing fundamentally insane about the design I will likely
attempt to optimistically push it for 2.6.40 as part of the ARM depopulation
work.

Linus Walleij (4):
  drivers: create a pinmux subsystem
  pinmux: add a driver for the U300 pinmux
  amba: request muxing for PrimeCell devices
  pinmux: activate pinmux driver, delete old padmux driver

 Documentation/ABI/testing/sysfs-class-pinmux |   11 +
 Documentation/pinmux.txt                     |  306 +++++++++++
 MAINTAINERS                                  |    5 +
 arch/arm/mach-u300/Kconfig                   |    2 +
 arch/arm/mach-u300/Makefile                  |    2 +-
 arch/arm/mach-u300/core.c                    |   30 +-
 arch/arm/mach-u300/include/mach/pinmux.h     |    2 +
 arch/arm/mach-u300/include/mach/syscon.h     |  136 -----
 arch/arm/mach-u300/mmc.c                     |   16 -
 arch/arm/mach-u300/padmux.c                  |  367 -------------
 arch/arm/mach-u300/padmux.h                  |   39 --
 arch/arm/mach-u300/spi.c                     |   20 -
 drivers/Kconfig                              |    4 +
 drivers/Makefile                             |    2 +
 drivers/amba/bus.c                           |   49 ++-
 drivers/pinmux/Kconfig                       |   32 ++
 drivers/pinmux/Makefile                      |    6 +
 drivers/pinmux/core.c                        |  732 ++++++++++++++++++++++++++
 drivers/pinmux/pinmux-u300.c                 |  361 +++++++++++++
 drivers/pinmux/pinmux-u300.h                 |  141 +++++
 include/linux/amba/bus.h                     |    2 +
 include/linux/pinmux.h                       |  217 ++++++++
 22 files changed, 1899 insertions(+), 583 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-class-pinmux
 create mode 100644 Documentation/pinmux.txt
 create mode 100644 arch/arm/mach-u300/include/mach/pinmux.h
 delete mode 100644 arch/arm/mach-u300/padmux.c
 delete mode 100644 arch/arm/mach-u300/padmux.h
 create mode 100644 drivers/pinmux/Kconfig
 create mode 100644 drivers/pinmux/Makefile
 create mode 100644 drivers/pinmux/core.c
 create mode 100644 drivers/pinmux/pinmux-u300.c
 create mode 100644 drivers/pinmux/pinmux-u300.h
 create mode 100644 include/linux/pinmux.h

-- 
1.7.3.2




More information about the linux-arm-kernel mailing list