aboutsummaryrefslogtreecommitdiff
path: root/drivers/spi
AgeCommit message (Collapse)AuthorFilesLines
2013-04-09spi: spi-mpc512x-psc: let transmiter/receiver enabled when in xfer loopAnatolij Gustschin1-7/+3
There is no need to disable transmitter/receiver after each loop iteration and re-enable it for next loop iteration. Enable the transmitter/receiver before xfer loop starts and disable it when the whole transfer is done. Signed-off-by: Anatolij Gustschin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-09spi: spi-mpc512x-psc: add support for gpio chip selectsAnatolij Gustschin1-6/+25
Currently the driver only uses one internal chip select. Add support for gpio chip selects configured by cs-gpios DT binding. Signed-off-by: Anatolij Gustschin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-08spi/bcm63xx: remove unused speed_hz variableJonas Gorski1-2/+0
speed_hz is a write only member, so we can safely remove it and its generation. Also fixes the missing clk_put after getting the periph clock. Signed-off-by: Jonas Gorski <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-08spi: tegra: slink: make local symbols staticWei Yongjun1-2/+2
Neither tegra20_spi_cdata nor tegra30_spi_cdata are used outside this file so they can, and should, be static. Signed-off-by: Wei Yongjun <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-08spi/pxa2xx: Convert to devm_ioremap_resource()Sachin Kamat1-5/+4
Use the newly introduced devm_ioremap_resource() instead of devm_request_and_ioremap() which provides more consistent error handling. devm_ioremap_resource() provides its own error messages; so all explicit error messages can be removed from the failure code paths. Signed-off-by: Sachin Kamat <[email protected]> Acked-by: Eric Miao <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-07spi/davinci: fix module build errorManjunathappa, Prakash1-1/+1
Fix below module build error: CC [M] drivers/spi/spi-davinci.o drivers/spi/spi-davinci.c:774:1: error: '__mod_of_device_table' aliased to undefined symbol 'davini_spi_of_match' drivers/spi/spi-davinci.c:774:1: error: '__mod_of_device_table' aliased to undefined symbol 'davini_spi_of_match' make[2]: *** [drivers/spi/spi-davinci.o] Error 1 make[1]: *** [drivers/spi] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [drivers] Error 2 Signed-off-by: Manjunathappa, Prakash <[email protected]> Acked-by: Sekhar Nori <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi: Return error from of_spi_register_master on bad "cs-gpios" propertyAndreas Larsson1-1/+4
This makes sure that an error is returned on an incorrectly formed "cs-gpios" property, but reports success when the "cs-gpios" property is well formed or missing. When holes in the cs-gpios property phandle list is used to indicate that some other form of chipselect is to be used it is important that failure to read a broken "cs-gpios" property does not silently fail leading to the spi controller to use an unintended chipselect. Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi: Initialize cs_gpio and cs_gpios with -ENOENTAndreas Larsson1-2/+2
The return value from of_get_named_gpio is -ENOENT when the given index matches a hole in the "cs-gpios" property phandle list. However, the default value of cs_gpio in struct spi_device and entries of cs_gpios in struct spi_master is -EINVAL, which is documented to indicate that a GPIO line should not be used for the given spi_device. This sets the default value of cs_gpio in struct spi_device and entries of cs_gpios in struct spi_master to -ENOENT. Thus, -ENOENT is the only value used to indicate that no GPIO line should be used. Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/atmel: fix speed_hz check in atmel_spi_transfer()Joachim Eastwood1-2/+2
atmel_spi_transfer() would check speed_hz and fail if the speed was changed in the transfer. After commit "spi: make sure all transfer has proper speed set" this would happen on all transfers. Change speed_hz check to only fail if a lower speed than max is requested. Signed-off-by: Joachim Eastwood <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/tegra114: add spi driverLaxman Dewangan3-0/+1255
Add SPI driver for NVIDIA's Tegra114 SPI controller. This controller is different than the older SoCs SPI controller in internal design as well as register interface. This driver supports the: - non DMA based transfer for smaller transfer i.e. less than FIFO depth. - APB DMA based transfer for larger transfer i.e. more than FIFO depth. - Clock gating through runtime PM callbacks. - registration through DT only. Signed-off-by: Laxman Dewangan <[email protected]> Reviewed-by: Stephen Warren <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/tegra-slink: assume CONFIG_OF, remove platform dataStephen Warren1-34/+11
Tegra only supports, and always enables, device tree. Remove all ifdefs and runtime checks for DT support from the driver. Platform data is therefore no longer required. Rework the driver to parse the device tree directly into struct tegra_slink_data. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/tegra-sflash: assume CONFIG_OF, remove platform dataStephen Warren1-32/+9
Tegra only supports, and always enables, device tree. Remove all ifdefs and runtime checks for DT support from the driver. Platform data is therefore no longer required. Rework the driver to parse the device tree directly into struct tegra_sflash_data. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/tegra-slink: remove redundant codeStephen Warren1-31/+1
There is no code to set spi->controller_data, and hence the HW CS logic can never trigger. Remove the unused code. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Add support for gpio chipselects for GRLIB type coresAndreas Larsson2-5/+46
This relies upon of_spi_register_master to find out which gpios to use. Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Add support for Aeroflex Gaisler GRLIB cores normally ↵Andreas Larsson3-14/+101
running on SPARC This adds support for the mostly register-compatible SPICTRL cores from the GRLIB VHDL IP core library from Aeroflex Gaisler. They are normally running on SPARC. A different entry in of_fsl_spi_match matches this core and indicates a different hardware type that is used to set up different function pointers and special cases. The GRLIB core operates in cpu mode. The number of bits per word might be limited. There might be native chipselects selected via a slave select register. These differences to the FSL type cores, if present, are indicated by a capabilities register. Other register and function differences exists but are not relevant to the driver. Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Add support for setting a maximum number of bits per wordAndreas Larsson2-1/+8
Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Introduce a type for the driverAndreas Larsson2-7/+34
For being able to distinguishing between the regular type of cores and others with different entries in of_fsl_spi_match. Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Move setting non-zero tx and rx shifts to a function ↵Andreas Larsson2-20/+36
accessed by a function pointer Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Make sure in spi_fsl_setup that chipselect becomes inactiveAndreas Larsson1-0/+4
This is needed for a device in SPI_CS_HIGH mode that otherwise could start out active for the first transaction. Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-07spi/spi-fsl-spi: Make driver usable in CPU mode outside of an FSL_SOC ↵Andreas Larsson8-405/+519
environment This makes the spi-fsl-spi driver usable in CPU mode outside of an FSL_SOC and even an powerpc environment by moving CPM mode functionality to a separate file that is only compiled and linked in an FSL_SOC environment and adding some ifdefs to hide types and functions or provide alternatives. For devicetree probing a "clock-frequency" property is used for clock frequency instead of calls to FSL_SOC-specific functions. Acked-by: Anton Vorontsov <[email protected]> Signed-off-by: Andreas Larsson <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2013-04-05Merge tag 'spi-fix-v3.9-rc5' of ↵Linus Torvalds5-44/+42
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc Pull spi fixes from Mark Brown: "A bunch of small driver fixes plus a fix for error handling in the core - nothing too exciting overall." * tag 'spi-fix-v3.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc: spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts spi: Unlock a spinlock before calling into the controller driver. spi/s3c64xx: modified error interrupt handling and init spi/bcm63xx: don't disable non enabled clocks in probe error path spi/bcm63xx: Remove unused variable spi: slink-tegra20: move runtime pm calls to transfer_one_message
2013-04-04Merge tag 'pm+acpi-3.9-rc6' of ↵Linus Torvalds2-2/+1
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPI and power management fixes from Rafael Wysocki: - Revert of a recent cpuidle change that caused Nehalem machines to hang on boot from Alex Shi. - USB power management fix addressing a crash in the port device object's release routine from Rafael J Wysocki. - Device PM QoS fix for a potential deadlock related to sysfs interface from Rafael J Wysocki. - Fix for a cpufreq crash when the /cpus Device Tree node is missing from Paolo Pisati. - Fix for a build issue on ia64 related to the Boot Graphics Resource Table (BGRT) from Tony Luck. - Two fixes for ACPI handles being set incorrectly for device objects that don't correspond to any ACPI namespace nodes in the I2C and SPI subsystems from Rafael J Wysocki. - Fix for compiler warnings related to CONFIG_PM_DEVFREQ being unset from Rajagopal Venkat. - Fix for a symbol definition typo in cpufreq_governor.h from Borislav Petkov. * tag 'pm+acpi-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI / BGRT: Don't let users configure BGRT on non X86 systems cpuidle / ACPI: recover percpu ACPI processor cstate ACPI / I2C: Use parent's ACPI_HANDLE() in acpi_i2c_register_devices() cpufreq: Correct header guards typo ACPI / SPI: Use parent's ACPI_HANDLE() in acpi_register_spi_devices() cpufreq: check OF node /cpus presence before dereferencing it PM / devfreq: Fix compiler warnings for CONFIG_PM_DEVFREQ unset PM / QoS: Avoid possible deadlock related to sysfs access USB / PM: Don't try to hide PM QoS flags from usb_port_device_release()
2013-04-04spi: mxs-spi: move to use generic DMA helperShawn Guo1-51/+9
With the generic DMA device tree helper supported by mxs-dma driver, client devices only need to call dma_request_slave_channel() for requesting a DMA channel from dmaengine. Since mxs is a DT only platform now, along with the changes, the non-DT case handling in probe function also gets removed. Signed-off-by: Shawn Guo <[email protected]> Acked-by: Grant Likely <[email protected]> Reviewed-by: Arnd Bergmann <[email protected]>
2013-04-03mxs/spi: fix error return code in mxs_spi_probe()Wei Yongjun1-0/+1
Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-03spi: tegra: slink: do prepare dma transfer with DMA_CTRL_ACK flagMark Brown1-2/+2
This reverts commit faa98f7ea6c720beec8a800c9ac6975f760467e2 which was applied in error due to discussion ending up in the wrong thread.
2013-04-02ACPI / SPI: Use parent's ACPI_HANDLE() in acpi_register_spi_devices()Rafael J. Wysocki2-2/+1
The ACPI handle of struct spi_master's dev member should not be set, because this causes that struct spi_master to be associated with the ACPI device node corresponding to its parent as the second "physical_device", which is incorrect (this happens during the registration of struct spi_master). Consequently, acpi_register_spi_devices() should use the ACPI handle of the parent of the struct spi_master it is called for rather than that struct spi_master's ACPI handle (which should be NULL). Make that happen and modify the spi-pxa2xx driver, which currently is the only driver for ACPI-enumerated SPI controller chips, not to set the ACPI handle for the struct spi_master it creates. Signed-off-by: Rafael J. Wysocki <[email protected]> Acked-by: Mika Westerberg <[email protected]> Acked-by: Mark Brown <[email protected]>
2013-04-01spi/s3c64xx: add CONFIG_PM_SLEEP to suspend/resume functionsJingoo Han1-2/+2
Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following build warning when CONFIG_PM_SLEEP is not selected. This is because sleep PM callbacks defined by SET_SYSTEM_SLEEP_PM_OPS are only used when the CONFIG_PM_SLEEP is enabled. drivers/spi/spi-s3c64xx.c:1362:12: warning: 's3c64xx_spi_suspend' defined but not used [-Wunused-function] drivers/spi/spi-s3c64xx.c:1381:12: warning: 's3c64xx_spi_resume' defined but not used [-Wunused-function] Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01Merge branch 'spi-fix' into spi-nextMark Brown3-25/+33
2013-04-01spi/spi-atmel: status information passed through controller dataNicolas Ferre1-5/+8
The status of transfer is stored in controller data structure so that it can be used not only by atmel_spi_msg_done() function. This will be useful for upcoming dmaengine enabled driver. Signed-off-by: Nicolas Ferre <[email protected]> Signed-off-by: Wenyou Yang <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/spi-atmel: call unmapping on transfers buffersNicolas Ferre1-3/+5
Signed-off-by: Nicolas Ferre <[email protected]> Signed-off-by: Wenyou Yang <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/spi-atmel: add support transfer on CS1,2,3, not only on CS0Wenyou Yang1-13/+12
Signed-off-by: Wenyou Yang <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/spi-atmel: detect the capabilities of SPI core by reading the VERSION ↵Wenyou Yang1-16/+50
register. The "has_dma_support" needed for future use with dmaengine driver. [Fixed some unneded ternery operators -- broonie] Signed-off-by: Wenyou Yang <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: tegra: slink: do not prepare dma transfer with DMA_CTRL_ACK flagLaxman Dewangan1-2/+2
Spi starts transfer using dma with DMA_CTRL_ACK which is not require becasue spi driver does not use completed dma_desc after transfer done and so it does not ack the dma descriptor. Removing the DMA_CTRL_ACK flag to avoid memory leak in dma driver. Signed-off-by: Laxman Dewangan <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/spidev: Use PTR_RET functionAlexandru Gheorghiu1-1/+1
Replaced calls to IS_ERR and PTR_ERR with PTR_RET function. Patch found using coccinelle. Signed-off-by: Alexandru Gheorghiu <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/fsl: Use PTR_RET functionAlexandru Gheorghiu1-3/+1
Replaced calls to IS_ERR and PTR_ERR with PTR_RET function. Patch found using coccinelle. Signed-off-by: Alexandru Gheorghiu <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmenstsAnatolij Gustschin1-1/+1
Some SPI slave devices require asserted chip select signal across multiple transfer segments of an SPI message. Currently the driver always de-asserts the internal SS signal for every single transfer segment of the message and ignores the 'cs_change' flag of the transfer description. Disable the internal chip select (SS) only if this is needed and indicated by the 'cs_change' flag. Without this change, each partial transfer of a surrounding multi-part SPI transaction might erroneously change the SS signal, which might prevent slaves from answering the request that was sent in a previous transfer segment because the transaction could be considered aborted (SS was de-asserted before reading the response). Reported-by: Gerhard Sittig <[email protected]> Signed-off-by: Anatolij Gustschin <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2013-04-01spi: remove unused variable in tegra_slink_read_rx_fifo_to_client_rxbuf()Wei Yongjun1-3/+0
The variable bits_per_word is initialized but never used otherwise, so remove the unused variable. Signed-off-by: Wei Yongjun <[email protected]> Acked-By: Laxman Dewangan <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: spi-sh-msiof: Use of_match_ptr() macroSachin Kamat1-3/+1
This eliminates having an #ifdef returning NULL for the case when OF is disabled. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: spi-oc-tiny: Use of_match_ptr() macroSachin Kamat1-3/+1
This eliminates having an #ifdef returning NULL for the case when OF is disabled. Signed-off-by: Sachin Kamat <[email protected]> Acked-by: Thomas Chou <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: Unlock a spinlock before calling into the controller driver.Bryan Freed1-8/+7
spi_pump_messages() calls into a controller driver with unprepare_transfer_hardware() which is documented as "This may sleep". As in the prepare_transfer_hardware() call below, we should release the queue_lock spinlock before making the call. Rework the logic a bit to hold queue_lock to protect the 'busy' flag, then release it to call unprepare_transfer_hardware(). Signed-off-by: Bryan Freed <[email protected]> Reviewed-by: Doug Anderson <[email protected]> Signed-off-by: Doug Anderson <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/omap-mcspi: check condition also after timeoutSebastian Andrzej Siewior1-2/+6
It is possible that the handler gets interrupted after checking the status. After it resumes the time out is due but the condition it was waiting for might be true as well. Therefore it is necessary to check the condition in case of an time out to be sure that the condition is not true after the time passed by. Signed-off-by: Sebastian Andrzej Siewior <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/s3c64xx: Convert to bits_per_word_maskMark Brown1-9/+1
The core can do the validation for us. Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: bcm2835: make use of new bits_per_word_mask core featureStephen Warren1-35/+1
This driver only supports bits_per_word==8, so inform the SPI core of this. Remove all the open-coded validation that's no longer needed. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi: add ability to validate xfer->bits_per_word in SPI coreStephen Warren1-0/+8
Allow SPI masters to define the set of bits_per_word values they support. If they do this, then the SPI core will reject transfers that attempt to use an unsupported bits_per_word value. This eliminates the need for each SPI driver to implement this checking in most cases. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-01spi/s3c64xx: modified error interrupt handling and initGirish K S1-16/+25
The status of the interrupt is available in the status register, so reading the clear pending register and writing back the same value will not actually clear the pending interrupts. This patch modifies the interrupt handler to read the status register and clear the corresponding pending bit in the clear pending register. Modified the hwInit function to clear all the pending interrupts. Signed-off-by: Girish K S <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2013-03-26spi: spi-s3c64xx.c Remove unused argument.Matthias Brugger1-2/+1
The pointer to the driver data is never used to get the slave controller data. We can delete the unused argument from the function. Signed-off-by: Matthias Brugger <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-03-21drivers/Kconfig: add several missing GENERIC_HARDIRQS dependenciesHeiko Carstens1-1/+2
With this patch an allmodconfig finally builds on s390 again. Fixes these build errors: ERROR: "devm_request_threaded_irq" [drivers/spi/spi-altera.ko] undefined! ERROR: "devm_request_threaded_irq" [drivers/media/platform/sh_veu.ko] undefined! ERROR: "devm_request_threaded_irq" [drivers/dma/dw_dmac.ko] undefined! Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
2013-03-12spi/bcm63xx: use devm_ioremap_resource()Jonas Gorski1-12/+3
Use devm_ioremap_resource() which provides its own error messages. Signed-off-by: Jonas Gorski <[email protected]> Acked-by: Florian Fainelli <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-03-12spi/bcm63xx: inline hz usage in bcm63xx_spi_setup_transferJonas Gorski1-5/+2
bcm63xx_spi_setup_transfer is called from only one place, and that has t always set, to hz will always be t->speed_hz - just use it directly in the two places instead of moving it in a local variable. Signed-off-by: Jonas Gorski <[email protected]> Acked-by: Florian Fainelli <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-03-12spi/bcm63xx: inline bcm63xx_spi_check_transferJonas Gorski1-14/+5
It only does one check, so just do the check directly in the caller. Signed-off-by: Jonas Gorski <[email protected]> Acked-by: Florian Fainelli <[email protected]> Signed-off-by: Mark Brown <[email protected]>