diff mbox series

spi: bcm2835aux: Convert to use GPIO descriptors

Message ID 20220121224126.312227-1-linus.walleij@linaro.org (mailing list archive)
State Superseded
Headers show
Series spi: bcm2835aux: Convert to use GPIO descriptors | expand

Commit Message

Linus Walleij Jan. 21, 2022, 10:41 p.m. UTC
This one is pretty straight forward to switch over, the driver
already relies on inspecting cs_gpio just check cs_gpiod instead
and stop the special handling of requesting the GPIO and stuff
the core will take care of.

Cc: Lukas Wunner <lukas@wunner.de>
Cc: Martin Sperl <kernel@martin.sperl.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/spi/spi-bcm2835aux.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

Comments

Mark Brown Jan. 31, 2022, 2:09 p.m. UTC | #1
On Fri, Jan 21, 2022 at 11:41:26PM +0100, Linus Walleij wrote:
> This one is pretty straight forward to switch over, the driver
> already relies on inspecting cs_gpio just check cs_gpiod instead
> and stop the special handling of requesting the GPIO and stuff
> the core will take care of.

This breaks an x86 allmodconfig build:

/mnt/kernel/drivers/spi/spi-bcm2835aux.c: In function 'bcm2835aux_spi_setup':
/mnt/kernel/drivers/spi/spi-bcm2835aux.c:447:6: error: unused variable 'ret' [-Werror=unused-variable]
Mark Brown Feb. 1, 2022, 5:18 p.m. UTC | #2
On Fri, 21 Jan 2022 23:41:26 +0100, Linus Walleij wrote:
> This one is pretty straight forward to switch over, the driver
> already relies on inspecting cs_gpio just check cs_gpiod instead
> and stop the special handling of requesting the GPIO and stuff
> the core will take care of.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: bcm2835aux: Convert to use GPIO descriptors
      commit: b651d1da86aa525c5a5b2bd61f528353c28d589d

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
diff mbox series

Patch

diff --git a/drivers/spi/spi-bcm2835aux.c b/drivers/spi/spi-bcm2835aux.c
index 7d709a8c833b..af795700e31a 100644
--- a/drivers/spi/spi-bcm2835aux.c
+++ b/drivers/spi/spi-bcm2835aux.c
@@ -22,7 +22,6 @@ 
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_device.h>
-#include <linux/of_gpio.h>
 #include <linux/of_irq.h>
 #include <linux/regmap.h>
 #include <linux/spi/spi.h>
@@ -450,20 +449,9 @@  static int bcm2835aux_spi_setup(struct spi_device *spi)
 	/* sanity check for native cs */
 	if (spi->mode & SPI_NO_CS)
 		return 0;
-	if (gpio_is_valid(spi->cs_gpio)) {
-		/* with gpio-cs set the GPIO to the correct level
-		 * and as output (in case the dt has the gpio not configured
-		 * as output but native cs)
-		 */
-		ret = gpio_direction_output(spi->cs_gpio,
-					    (spi->mode & SPI_CS_HIGH) ? 0 : 1);
-		if (ret)
-			dev_err(&spi->dev,
-				"could not set gpio %i as output: %i\n",
-				spi->cs_gpio, ret);
-
-		return ret;
-	}
+
+	if (spi->cs_gpiod)
+		return 0;
 
 	/* for dt-backwards compatibility: only support native on CS0
 	 * known things not supported with broken native CS:
@@ -519,6 +507,7 @@  static int bcm2835aux_spi_probe(struct platform_device *pdev)
 	master->prepare_message = bcm2835aux_spi_prepare_message;
 	master->unprepare_message = bcm2835aux_spi_unprepare_message;
 	master->dev.of_node = pdev->dev.of_node;
+	master->use_gpio_descriptors = true;
 
 	bs = spi_master_get_devdata(master);