Skip to contentSkip to conversation

spi: use gpio_request_one() instead of spi_gpio_alloc() helper function

PATCH In review Axel Lin 3 participants 5 messages Dec 5, 2011 – Dec 8, 2011 SPI

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/1 spi: use gpio_request_one() instead of spi_gpio_alloc() helper function

---
 drivers/spi/spi-gpio.c |   21 ++++-----------------
 1 files changed, 4 insertions(+), 17 deletions(-)
drivers/spi/spi-gpio.c +4 -17
index e093d3e..85c2eca 100644
@@ -256,20 +256,6 @@ static void spi_gpio_cleanup(struct spi_device *spi)
 	spi_bitbang_cleanup(spi);
 }
 
-static int __init spi_gpio_alloc(unsigned pin, const char *label, bool is_in)
-{
-	int value;
-
-	value = gpio_request(pin, label);
-	if (value == 0) {
-		if (is_in)
-			value = gpio_direction_input(pin);
-		else
-			value = gpio_direction_output(pin, 0);
-	}
-	return value;
-}
-
 static int __init
 spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label,
 	u16 *res_flags)
@@ -279,7 +265,8 @@ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label,
 	/* NOTE:  SPI_*_GPIO symbols may reference "pdata" */
 
 	if (SPI_MOSI_GPIO != SPI_GPIO_NO_MOSI) {
-		value = spi_gpio_alloc(SPI_MOSI_GPIO, label, false);
+		value = gpio_request_one(SPI_MOSI_GPIO, GPIOF_OUT_INIT_LOW,
+					 label);
 		if (value)
 			goto done;
 	} else {
@@ -288,7 +275,7 @@ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label,
 	}
 
 	if (SPI_MISO_GPIO != SPI_GPIO_NO_MISO) {
-		value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
+		value = gpio_request_one(SPI_MISO_GPIO, GPIOF_IN, label);
 		if (value)
 			goto free_mosi;
 	} else {
@@ -296,7 +283,7 @@ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label,
 		*res_flags |= SPI_MASTER_NO_RX;
 	}
 
-	value = spi_gpio_alloc(SPI_SCK_GPIO, label, false);
+	value = gpio_request_one(SPI_SCK_GPIO, GPIOF_OUT_INIT_LOW, label);
 	if (value)
 		goto free_miso;
 
Signature · 11 lines
1.7.5.4




------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
#2 lore raw
In reply to Axel Lin
Quoted 1 line · Axel Lin

This will make the driver depend on GPIOLIB, currently it depends only on GENERIC_GPIO. That needs to be addressed and made sure it won't cause a regression for the in-kernel users.

Signature · 2 lines
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
author
#3 lore raw

2011/12/8 Wolfram Sang <[email protected]>:

Quoted 7 lines · Axel Lin
Quoted 1 line

This will make the driver depend on GPIOLIB, currently it depends only on GENERIC_GPIO. That needs to be addressed and made sure it won't cause a regression for the in-kernel users.

Ah. You are right.
GPIOLIB can be optional or not available at all in some architecture/configurations.
Thanks for your review.

Axel

#4 lore raw
Quoted 4 lines · Axel Lin

2011/12/8 Wolfram Sang <[email protected]>:

Quoted 3 lines · Axel Lin
Quoted 1 line
Quoted 8 lines
Quoted 4 lines

This will make the driver depend on GPIOLIB, currently it depends only on GENERIC_GPIO. That needs to be addressed and made sure it won't cause a regression for the in-kernel users.

Ah. You are right.
GPIOLIB can be optional or not available at all in some architecture/configurations.
Thanks for your review.

Note that there are plans to make GPIOLIB mandatory, but we are not there yet.

Signature · 2 lines
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |