From: Ben Dooks <ben-linux@fluff.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.arm.linux.org.uk"
<linux-arm-kernel@lists.arm.linux.org.uk>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>
Subject: Re: [PATCH] [drivers] [SPI] SPI_GPIO: add support for controllers with missing MISO pin
Date: Thu, 7 May 2009 13:31:57 +0100 [thread overview]
Message-ID: <20090507123157.GU32548@trinity.fluff.org> (raw)
In-Reply-To: <E4D3F24EA6C9E54F817833EAE0D912AC02243DBF8C@bssrvexch01.BS.local>
On Thu, May 07, 2009 at 02:24:11PM +0200, Marek Szyprowski wrote:
> There are some boards that do not strictly follow SPI standard and use only 3 wires (SCLK, MOSI, SS) for connecting some simple auxiliary chips and controls them with GPIO based 'spi controller'. In this configuration the MISO line is missing (it is not required if the chip does not transfer any data back to host). The example of such board is a NCP ARM S3C64XX based machine. This patch adds support for such non-standard configuration in GPIO-based SPI controller.
Please wrap your descriptions to 77 or less characters per line.
> Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>
> ---
>
> diff --git a/drivers/spi/spi_gpio.c b/drivers/spi/spi_gpio.c
> index 26bd03e..5b75601 100644
> --- a/drivers/spi/spi_gpio.c
> +++ b/drivers/spi/spi_gpio.c
> @@ -114,7 +114,10 @@ static inline void setmosi(const struct spi_device *spi, int is_on)
>
> static inline int getmiso(const struct spi_device *spi)
> {
> - return !!gpio_get_value(SPI_MISO_GPIO);
> + if (SPI_MISO_GPIO)
> + return !!gpio_get_value(SPI_MISO_GPIO);
> + else
> + return 0;
> }
Is zero a good approximation for 'no gpio' ?
> #undef pdata
> @@ -243,9 +246,11 @@ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label)
> if (value)
> goto done;
>
> - value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
> - if (value)
> - goto free_mosi;
> + if (SPI_MISO_GPIO) {
> + value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
> + if (value)
> + goto free_mosi;
> + }
>
> value = spi_gpio_alloc(SPI_SCK_GPIO, label, false);
> if (value)
> @@ -254,7 +259,8 @@ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label)
> goto done;
>
> free_miso:
> - gpio_free(SPI_MISO_GPIO);
> + if (SPI_MISO_GPIO)
> + gpio_free(SPI_MISO_GPIO);
> free_mosi:
> gpio_free(SPI_MOSI_GPIO);
> done:
> @@ -308,7 +314,8 @@ static int __init spi_gpio_probe(struct platform_device *pdev)
> if (status < 0) {
> spi_master_put(spi_gpio->bitbang.master);
> gpio_free:
> - gpio_free(SPI_MISO_GPIO);
> + if (SPI_MISO_GPIO)
> + gpio_free(SPI_MISO_GPIO);
> gpio_free(SPI_MOSI_GPIO);
> gpio_free(SPI_SCK_GPIO);
> spi_master_put(master);
> @@ -332,7 +339,8 @@ static int __exit spi_gpio_remove(struct platform_device *pdev)
>
> platform_set_drvdata(pdev, NULL);
>
> - gpio_free(SPI_MISO_GPIO);
> + if (SPI_MISO_GPIO)
> + gpio_free(SPI_MISO_GPIO);
> gpio_free(SPI_MOSI_GPIO);
> gpio_free(SPI_SCK_GPIO);
>
>
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
> FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
--
--
Ben
Q: What's a light-year?
A: One-third less calories than a regular year.
next prev parent reply other threads:[~2009-05-07 12:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-07 12:24 [PATCH] [drivers] [SPI] SPI_GPIO: add support for controllers with missing MISO pin Marek Szyprowski
2009-05-07 12:31 ` Ben Dooks [this message]
2009-05-18 8:30 ` Marek Szyprowski
2009-05-18 8:34 ` Ben Dooks
2009-05-18 8:57 ` Daniel Mack
2009-05-18 9:27 ` Marek Szyprowski
-- strict thread matches above, loose matches on Subject: below --
2009-05-25 13:02 Marek Szyprowski
2009-06-23 8:55 Marek Szyprowski
2009-06-23 18:55 ` David Brownell
2009-06-25 12:16 ` Marek Szyprowski
2009-06-25 15:36 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090507123157.GU32548@trinity.fluff.org \
--to=ben-linux@fluff.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox