From dfcccc252d88a6a96f51dcc10ed9114a340c2507 Mon Sep 17 00:00:00 2001 From: juhosg Date: Sun, 15 Jul 2012 17:52:48 +0000 Subject: ar71xx: use gpio_set_value_cansleep on sleeping GPIOs in ath79_spi git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32736 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...-spi-ath79-make-chipselect-logic-more-flexible.patch | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch') diff --git a/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch b/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch index 91713e677..5a4c0df5d 100644 --- a/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch +++ b/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch @@ -178,7 +178,7 @@ Signed-off-by: Gabor Juhos if (is_active) { /* set initial clock polarity */ -@@ -80,20 +83,21 @@ static void ath79_spi_chipselect(struct +@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base); } @@ -203,13 +203,16 @@ Signed-off-by: Gabor Juhos + case ATH79_SPI_CS_TYPE_GPIO: + /* SPI is normally active-low */ -+ gpio_set_value(cdata->cs_line, cs_high); ++ if (gpio_cansleep(cdata->cs_line)) ++ gpio_set_value_cansleep(cdata->cs_line, cs_high); ++ else ++ gpio_set_value(cdata->cs_line, cs_high); + break; + } } static void ath79_spi_enable(struct ath79_spi *sp) -@@ -120,24 +124,30 @@ static void ath79_spi_disable(struct ath +@@ -120,24 +127,30 @@ static void ath79_spi_disable(struct ath static int ath79_spi_setup_cs(struct spi_device *spi) { struct ath79_spi_controller_data *cdata; @@ -244,7 +247,7 @@ Signed-off-by: Gabor Juhos } return status; -@@ -145,9 +155,19 @@ static int ath79_spi_setup_cs(struct spi +@@ -145,9 +158,19 @@ static int ath79_spi_setup_cs(struct spi static void ath79_spi_cleanup_cs(struct spi_device *spi) { @@ -267,7 +270,7 @@ Signed-off-by: Gabor Juhos } } -@@ -155,6 +175,9 @@ static int ath79_spi_setup(struct spi_de +@@ -155,6 +178,9 @@ static int ath79_spi_setup(struct spi_de { int status = 0; @@ -277,7 +280,7 @@ Signed-off-by: Gabor Juhos if (spi->bits_per_word > 32) return -EINVAL; -@@ -215,6 +238,10 @@ static __devinit int ath79_spi_probe(str +@@ -215,6 +241,10 @@ static __devinit int ath79_spi_probe(str unsigned long rate; int ret; @@ -288,7 +291,7 @@ Signed-off-by: Gabor Juhos master = spi_alloc_master(&pdev->dev, sizeof(*sp)); if (master == NULL) { dev_err(&pdev->dev, "failed to allocate spi master\n"); -@@ -224,17 +251,10 @@ static __devinit int ath79_spi_probe(str +@@ -224,17 +254,10 @@ static __devinit int ath79_spi_probe(str sp = spi_master_get_devdata(master); platform_set_drvdata(pdev, sp); -- cgit v1.2.3