- 28 Aug, 2019 1 commit
-
-
Linus Walleij authored
This converts the Freescale SPI master driver to use GPIO descriptors for chip select handling. The Freescale (fsl) driver has a lot of quirks to look up "gpios" rather than "cs-gpios" from the device tree. After the prior patch that will make gpiolib return the GPIO descriptor for "gpios" in response to a request for "cs-gpios", this code can be cut down quite a bit. The driver has custom handling of chip select rather than using the core (which may be possible but not done in this patch) so it still needs to refer directly to spi->cs_gpiod to set the chip select. Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: NXP Linux Team <linux-imx@nxp.com> Signed-off-by:
Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20190804003539.985-1-linus.walleij@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 23 Aug, 2019 6 commits
-
-
Vladimir Oltean authored
On platforms like LS1021A which use TCFQ mode, an interrupt needs to be processed after each byte is TXed/RXed. I tried to make the DSPI implementation on this SoC operate in other, more efficient modes (EOQ, DMA) but it looks like it simply isn't possible. Therefore allow the driver to operate in poll mode, to ease a bit of this absurd amount of IRQ load generated in TCFQ mode. Doing so reduces both the net time it takes to transmit a SPI message, as well as the inter-frame jitter that occurs while doing so. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822211514.19288-5-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
dspi->devtype_data is under the total control of the driver. Therefore, a bad value is a driver bug and checking it at runtime (and during an ISR, at that!) is pointless. The second "else if" check is only for clarity (instead of a broader "else") in case other transfer modes are added in the future. But the printing is dead code and can be removed. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822211514.19288-4-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
The DSPI interrupt can be shared between two controllers at least on the LX2160A. In that case, the driver for one controller might misbehave and consume the other's interrupt. Fix this by actually checking if any of the bits in the status register have been asserted. Fixes: 13aed239 ("spi: spi-fsl-dspi: use IRQF_SHARED mode to request IRQ") Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822211514.19288-3-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
If the entire function depends on the SPI status register having the interrupt bits asserted, then just check it and exit early if those bits aren't set (such as in the case of the shared IRQ being triggered for the other peripheral). Cosmetic patch. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822211514.19288-2-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Mark Brown authored
-
Vladimir Oltean authored
The DSPI interrupt can be shared between two controllers at least on the LX2160A. In that case, the driver for one controller might misbehave and consume the other's interrupt. Fix this by actually checking if any of the bits in the status register have been asserted. Fixes: 13aed239 ("spi: spi-fsl-dspi: use IRQF_SHARED mode to request IRQ") Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822212450.21420-2-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
-
- 22 Aug, 2019 2 commits
-
-
Ashish Kumar authored
There are 2 version of QSPI-IP, according to which controller registers sets can be big endian or little endian.There are some other minor changes like RX fifo depth etc. The big endian version uses driver compatible "fsl,ls1021a-qspi" and little endian version uses driver compatible "fsl,ls2080a-qspi" Signed-off-by:
Kuldeep Singh <kuldeep.singh@nxp.com> Signed-off-by:
Ashish Kumar <ashish.kumar@nxp.com> Reviewed-by:
Rob Herring <robh@kernel.org> Acked-by:
Han Xu <han.xu@nxp.com> Link: https://lore.kernel.org/r/1565691791-26167-1-git-send-email-Ashish.Kumar@nxp.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Ashish Kumar authored
Add example for adding flash entry on various boards' dts using flash manufacture spansion/cypress. Signed-off-by:
Ashish Kumar <Ashish.Kumar@nxp.com> Link: https://lore.kernel.org/r/1565691791-26167-3-git-send-email-Ashish.Kumar@nxp.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 20 Aug, 2019 14 commits
-
-
Vladimir Oltean authored
The two functions are loosely coupled through dspi->waitq, but logically, dspi_transfer_one_message depends on dspi_interrupt in order to complete. Move its definition above it so the I/O functions are grouped closer together. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-13-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
mask of -> mask off at and -> and Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-12-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
This patch puts variable declaration in the reverse order of their length for cosmetic purposes. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-11-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
This adapts the spi-fsl-dspi driver to the API changes introduced in commit 8caab75f ("spi: Generalize SPI "master" to "controller""). Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-10-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
Introduced in commit 9298bc72 ("spi: spi-fsl-dspi: Remove spi-bitbang") for less than obvious reasons, this assignment is confusing and serves no purpose. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-9-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
There is no code path for reaching 'return ret;' without it first being assigned to an error code. Therefore the initialization with 0 is pointless. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-8-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
There is no point in surrounding an entire function block in an if condition. Rather, exit early if the condition is false. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-7-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
These are macros that accept 0 or 1 as argument (a boolean value). Their use encourages the abuse of complex ternary operations inside their argument list, which detracts from the code readability. Replace these with simple if-else statements. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-6-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
This patch adds the field definitions for the SPI_SR register. The SPI status register is write-1-to-clear and this value is written at init time. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-5-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
Switch to using more idiomatic register field definitions, which makes it easier to look them up in the datasheet. Cosmetic patch. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-4-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
This is a cosmetic patch. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-3-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Vladimir Oltean authored
This is a cosmetic patch that changes nothing except makes sure the code is aligned to the same column, which makes it easier to the eye. Signed-off-by:
Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190818180115.31114-2-olteanv@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Manivannan Sadhasivam authored
The number of CS lines is mentioned as 2 in the spi-controller binding but however in the example, 4 cs-gpios are used. Hence fix that to mention 4. Signed-off-by:
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Link: https://lore.kernel.org/r/20190820115000.32041-1-manivannan.sadhasivam@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use devm_spi_register_controller to fix missing spi_unregister_controller when unload module. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Michal Simek <michal.simek@xilinx.com> Link: https://lore.kernel.org/r/20190818095113.2397-1-axel.lin@ingics.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 12 Aug, 2019 1 commit
-
-
Jarkko Nikula authored
Add support for Intel(R) Programmable Services Engine (Intel(R) PSE) SPI controller in Intel Elkhart Lake when interface is assigned to the host processor. Signed-off-by:
Jarkko Nikula <jarkko.nikula@linux.intel.com> Link: https://lore.kernel.org/r/20190812101344.3975-1-jarkko.nikula@linux.intel.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 08 Aug, 2019 1 commit
-
-
Linus Walleij authored
Rename this function to of_spi_get_gpio_numbers() as this is what the function does, it does not register a master, it is called in the path of registering a master so the name is logical in a convoluted way, but it is better to follow Rusty Russell's ABI level no 7: "The obvious use is (probably) the correct one" Signed-off-by:
Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20190808150321.23319-1-linus.walleij@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 07 Aug, 2019 2 commits
-
-
Geert Uytterhoeven authored
Use the devm_platform_ioremap_resource() helper instead of open-coding the same operation. Signed-off-by:
Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20190807085213.24666-1-geert+renesas@glider.beSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Rayagonda Kokatanur authored
Fix data transfer width settings based on DT field 'spi-rx-bus-width' to configure BSPI in single, dual or quad mode by using data width and not the command width. Fixes: 5f195ee7 ("spi: bcm-qspi: Implement the spi_mem interface") Signed-off-by:
Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> Link: https://lore.kernel.org/r/1565086070-28451-1-git-send-email-rayagonda.kokatanur@broadcom.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 02 Aug, 2019 4 commits
-
-
Uwe Kleine-König authored
Driver specific implementations for .transfer_one_message need to call the tracing stuff themself. This is necessary to make spi tracing actually useful. Signed-off-by:
Uwe Kleine-König <uwe@kleine-koenig.org> Link: https://lore.kernel.org/r/20190801204710.27309-1-uwe@kleine-koenig.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Stephen Boyd authored
We don't need dev_err() messages when platform_get_irq() fails now that platform_get_irq() prints an error message itself when something goes wrong. Let's remove these prints with a simple semantic patch. // <smpl> @@ expression ret; struct platform_device *E; @@ ret = ( platform_get_irq(E, ...) | platform_get_irq_byname(E, ...) ); if ( \( ret < 0 \| ret <= 0 \) ) { ( -if (ret != -EPROBE_DEFER) -{ ... -dev_err(...); -... } | ... -dev_err(...); ) ... } // </smpl> While we're here, remove braces on if statements that only have one statement (manually). Cc: Mark Brown <broonie@kernel.org> Cc: linux-spi@vger.kernel.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Stephen Boyd <swboyd@chromium.org> Link: https://lore.kernel.org/r/20190730181557.90391-42-swboyd@chromium.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Peter Zijlstra authored
The SPI thingies request FIFO-99 by default, reduce this to FIFO-50. FIFO-99 is the very highest priority available to SCHED_FIFO and it not a suitable default; it would indicate the SPI work is the most important work on the machine. Cc: Benson Leung <bleung@chromium.org> Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com> Cc: Guenter Roeck <groeck@chromium.org> Cc: Mark Brown <broonie@kernel.org> Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by:
Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by:
Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20190801111541.917256884@infradead.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Jarkko Nikula authored
Intel Tiger Lake -LP LPSS SPI controller is otherwise similar than Cannon Lake but has more controllers and up to two chip selects per controller. Signed-off-by:
Jarkko Nikula <jarkko.nikula@linux.intel.com> Link: https://lore.kernel.org/r/20190801134901.12635-1-jarkko.nikula@linux.intel.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 01 Aug, 2019 1 commit
-
-
Geert Uytterhoeven authored
Convert the SPI slave control sysfs attribute from DEVICE_ATTR() to DEVICE_ATTR_RW(), to reduce boilerplate. Signed-off-by:
Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20190731124738.14519-1-geert+renesas@glider.beSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 26 Jul, 2019 6 commits
-
-
Baolin Wang authored
No need to add hardware spinlock proctection due to add multiple msater channel, so change it to be optional in documentation. Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/23d51f5d9c9cc647ad0c5a1fb950d3d9fb9c1303.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Baolin Wang authored
Now Spreadtrum ADI controller supplies multiple master accessing channel to support multiple subsystems accessing, instead of using a hardware spinlock to synchronize between the multiple subsystems. To keep backward compatibility, we should change the hardware spinlock to be optional. Moreover change to use of_hwspin_lock_get_id() function which return -ENOENT error number to indicate no hwlock support. Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/2abe7dcf210e4197f8c5ece7fc6d6cc1eda8c655.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Sherry Zong authored
When the system was rebooted by watchdog, now we did not save the watchdog reset mode which will make system enter a incorrect mode after rebooting. Thus we should set the watchdog reset mode as default when opening the watchdog configuration, that means if the system was rebooted by other reason through the restart_handler(), then we will clear the default watchdog reset mode to save the correct reset mode. Signed-off-by:
Sherry Zong <sherry.zong@unisoc.com> Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/1563f3de43c6c2262d597a25d6138b5de61ea23d.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Sherry Zong authored
Add a new reset flag to indicate that the system need enter factory test mode after restarting system. Signed-off-by:
Sherry Zong <sherry.zong@unisoc.com> Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/8ae5651e876b527920ff878721a8a8ef47b099ac.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Chenxu Wei authored
Add a new reset flag to indicate the reset reason is caused by TOS. Signed-off-by:
Chenxu Wei <weicx@spreadst.com> Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/97583aad1f2b849d69b4e76e8d29113da72a9fff.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Baolin Wang authored
The ADI default transfer address bits is 12bit on Spreadtrum SC9860 platform, thus there is no need to set again, remove it. Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/3cb57b8aadb7747a9f833e9b4fe8596ba738d9f6.1564125131.git.baolin.wang@linaro.orgSigned-off-by:
Mark Brown <broonie@kernel.org>
-
- 24 Jul, 2019 2 commits
-
-
Lukas Wunner authored
Commit 6935224d ("spi: bcm2835: enable support of 3-wire mode") added 3-wire support to the BCM2835 SPI driver by setting the REN bit (Read Enable) in the CS register when receiving data. The REN bit puts the transmitter in high-impedance state. The driver recognizes that data is to be received by checking whether the rx_buf of a transfer is non-NULL. Commit 3ecd37ed ("spi: bcm2835: enable dma modes for transfers meeting certain conditions") subsequently broke 3-wire support because it set the SPI_MASTER_MUST_RX flag which causes spi_map_msg() to replace rx_buf with a dummy buffer if it is NULL. As a result, rx_buf is *always* non-NULL if DMA is enabled. Reinstate 3-wire support by not only checking whether rx_buf is non-NULL, but also checking that it is not the dummy buffer. Fixes: 3ecd37ed ("spi: bcm2835: enable dma modes for transfers meeting certain conditions") Reported-by:
Nuno Sá <nuno.sa@analog.com> Signed-off-by:
Lukas Wunner <lukas@wunner.de> Cc: stable@vger.kernel.org # v4.2+ Cc: Martin Sperl <kernel@martin.sperl.org> Acked-by:
Stefan Wahren <wahrenst@gmx.net> Link: https://lore.kernel.org/r/328318841455e505370ef8ecad97b646c033dc8a.1562148527.git.lukas@wunner.deSigned-off-by:
Mark Brown <broonie@kernel.org>
-
Chuhong Yuan authored
Instead of using to_pci_dev + pci_get_drvdata, use dev_get_drvdata to make code simpler. Signed-off-by:
Chuhong Yuan <hslester96@gmail.com> Link: https://lore.kernel.org/r/20190724122331.21856-1-hslester96@gmail.comSigned-off-by:
Mark Brown <broonie@kernel.org>
-