linux/drivers/spi
Patrice Chotard 4f5e1b3708 spi/pl022: adopt pinctrl support
Amend the PL022 pin controller to optionally take a pin control
handle and set the state of the pins to "default" on boot and
runtime resume, and to "sleep" at runtime suspend. This way we
will dynamically save power on the SPI busses, for example some
electronic designs may be able to ground the pins when unused
instead of pull-up. Some pin controllers may want to set the
pins as wake-up sources when sleeping.

Effect on platforms using the PL022 driver:

- If the platform does not use pin control - no semantic effect,
  the pinctrl stubs will kick in and resolve the situation.

- Platforms using this driver and have pin control but no
  function defined for the PL022 need to either supply a
  "default" function in their map or enable pinctrl dummies
  so the driver is satisfied.

- Platforms using this driver with hogs for setting up the PL022
  pin control - stop using hogs to take the pl022 pin control
  handle, let the driver handle this.

I'be looked at some platforms that may be affected:

- SPEAr: appears to define the proper functions in their device
  trees and not hogging them, so things should be smooth, the
  driver will simply start to take its pins.

- Ux500: the proper function is defined and will be taken properly
  by the driver. New sleep states introduced by a separate patch to
  ux500 but no regression, since the default state is sufficient.

- U300: old hog deleted as part of this patch.

- LPC32xx: does not appear to be using pinctrl.

- ARM Integrator IMPD1, RealView & Versatile: does not use pinctrl.

Tested-by: Roland Stigge <stigge@antcom.de>
Signed-off-by: Patrice Chotard <patrice.chotard@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-20 09:02:53 -04:00
..
Kconfig spi: Master driver for NXP SC18IS602/603 2012-08-22 19:34:51 +01:00
Makefile spi: Master driver for NXP SC18IS602/603 2012-08-22 19:34:51 +01:00
spi-altera.c spi: spi-altera: Use of_match_ptr 2012-08-17 22:56:18 +01:00
spi-ath79.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-atmel.c atmel/spi: fix missing probe 2011-11-09 23:02:12 +08:00
spi-au1550.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-bcm63xx.c spi/bcm63xx: fix clock configuration selection 2012-07-23 14:14:11 +01:00
spi-bfin-sport.c spi/spi_bfin_sport: drop bits_per_word from client data 2012-04-27 12:17:25 -06:00
spi-bfin5xx.c spi/spi-bfin5xx: Fix flush of last bit after each spi transfer 2012-04-27 12:20:39 -06:00
spi-bitbang-txrx.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-bitbang.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-butterfly.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-coldfire-qspi.c spi: refactor spi-coldfire-qspi to use SPI queue framework. 2012-05-19 22:57:27 -06:00
spi-davinci.c spi/davinci: Fix DMA API usage in davinci 2012-03-30 16:46:22 -06:00
spi-dw-mid.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
spi-dw-mmio.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-dw-pci.c spi: use module_pci_driver 2012-04-10 14:11:34 -06:00
spi-dw.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
spi-dw.h spi: spi-dw: fix all sparse warnings 2011-09-21 09:41:48 -06:00
spi-ep93xx.c spi/ep93xx: clean probe/remove routines 2012-05-09 18:37:42 -06:00
spi-falcon.c SPI: MIPS: lantiq: add FALCON spi driver 2012-07-23 13:56:30 +01:00
spi-fsl-espi.c spi/devicetree: Move devicetree support code into spi directory 2012-04-13 10:21:39 -06:00
spi-fsl-lib.c spi/devicetree: Move devicetree support code into spi directory 2012-04-13 10:21:39 -06:00
spi-fsl-lib.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-fsl-spi.c spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control 2012-05-19 23:12:06 -06:00
spi-gpio.c spi/gpio: Fix stub for spi_gpio_probe_dt() 2012-09-07 08:23:06 +08:00
spi-imx.c spi/imx: use gpio_is_valid to determine if a gpio is valid 2012-07-13 11:01:46 +01:00
spi-lm70llp.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-mpc52xx-psc.c spi/mpc52xx-psc: Avoid access to freed memory in device remove function 2012-08-22 19:26:36 +01:00
spi-mpc52xx.c spi/mpc52xx: Fix device remove function 2012-08-22 19:26:36 +01:00
spi-mpc512x-psc.c spi/mpc512x-psc: Avoid access to freed memory in device remove function 2012-08-22 19:26:36 +01:00
spi-nuc900.c spi/nuc900: Remove unnecessary memset of struct nuc900_spi 2012-02-01 17:10:52 -07:00
spi-oc-tiny.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-omap-100k.c spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-omap-uwire.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: Cleanup the omap2_mcspi_txrx_dma function 2012-09-12 21:52:30 +08:00
spi-orion.c spi: Refactor spi-orion to use SPI framework queue. 2012-08-17 22:56:18 +01:00
spi-pl022.c spi/pl022: adopt pinctrl support 2012-09-20 09:02:53 -04:00
spi-ppc4xx.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-pxa2xx-pci.c spi: use module_pci_driver 2012-04-10 14:11:34 -06:00
spi-pxa2xx.c spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-rspi.c spi/rspi: add dmaengine support 2012-05-19 22:37:16 -06:00
spi-s3c24xx-fiq.S spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-s3c24xx-fiq.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-s3c24xx.c drivers/spi/spi-s3c24xx.c: fix error return code 2012-08-22 17:58:01 +01:00
spi-s3c64xx.c spi/s3c64xx: Drop extra calls to spi_master_get in suspend/remove functions 2012-08-27 10:19:19 -07:00
spi-sc18is602.c spi/sc18is602: Return -EINVAL for probe failures due to I2C function mismatch 2012-08-23 12:13:54 +01:00
spi-sh-hspi.c spi: spi-sh-hspi: drop frees of devm_ alloc'd data 2012-09-06 07:44:19 +08:00
spi-sh-msiof.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-sh-sci.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-sh.c spi/spi-sh: add IORESOURCE_MEM_TYPE_MASK decoding for access size 2012-03-07 19:18:45 -07:00
spi-sirf.c SPI: PRIMA2: use the newest APIs of PINCTRL to fix compiling errors 2012-05-19 23:17:31 -06:00
spi-stmp.c spi/stmp: Fix device remove function 2012-08-27 09:37:52 -07:00
spi-tegra.c spi/tegra: Fix device remove function 2012-08-27 09:37:52 -07:00
spi-ti-ssp.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-tle62x0.c spi: spi-tle62x0: Use module_spi_driver macro 2012-09-06 07:43:15 +08:00
spi-topcliff-pch.c spi/topcliff-pch: Fix device remove function 2012-08-27 09:37:52 -07:00
spi-txx9.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-xcomm.c spi: Add AD-FMCOMMS1-EBZ I2C-SPI bridge driver 2012-07-20 11:08:44 +01:00
spi-xilinx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi.c spi: Add "spi:" prefix to modalias attribute of spi devices 2012-05-20 20:14:48 -06:00
spidev.c spi: reorganize drivers 2011-06-06 01:16:30 -06:00