From 7a37b799da64880d3d7a2997e116efca85e9c1ee Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Sat, 20 Dec 2008 08:28:39 +0000
Subject: [ar71xx] fix GPIO function select bit definitions (based on a patch
 by Jonas <jmajau at ubnt.com>)

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13699 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/ar71xx.h   | 5 ++---
 target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c             | 3 +++
 target/linux/ar71xx/files/arch/mips/ar71xx/platform.c                | 2 --
 target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h      | 5 ++---
 4 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/ar71xx.h b/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/ar71xx.h
index 8379aedab1..f5de7c0330 100644
--- a/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/ar71xx.h
+++ b/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/ar71xx.h
@@ -201,9 +201,8 @@ extern void ar71xx_add_device_usb(void) __init;
 
 #define GPIO_FUNC_STEREO_EN	BIT(17)
 #define GPIO_FUNC_SLIC_EN	BIT(16)
-#define GPIO_FUNC_SPI_CS1_EN	BIT(15)
-#define GPIO_FUNC_SPI_CS0_EN	BIT(14)
-#define GPIO_FUNC_SPI_EN	BIT(13)
+#define GPIO_FUNC_SPI_CS2_EN	BIT(13)
+#define GPIO_FUNC_SPI_CS1_EN	BIT(12)
 #define GPIO_FUNC_UART_EN	BIT(8)
 #define GPIO_FUNC_USB_OC_EN	BIT(4)
 #define GPIO_FUNC_USB_CLK_EN	BIT(0)
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c
index f8e76c40c6..ec3ac0497d 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c
@@ -152,6 +152,9 @@ static inline void rb433_add_device_spi(void) {}
 
 static void __init rb4xx_generic_setup(void)
 {
+	ar71xx_gpio_function_enable(GPIO_FUNC_SPI_CS1_EN |
+				    GPIO_FUNC_SPI_CS2_EN);
+
 	ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(rb4xx_leds_gpio),
 					rb4xx_leds_gpio);
 
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
index ab9cabb1b7..705f24315a 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
@@ -481,8 +481,6 @@ void __init ar71xx_add_device_spi(struct ar71xx_spi_platform_data *pdata,
 				struct spi_board_info const *info,
 				unsigned n)
 {
-	ar71xx_gpio_function_enable(GPIO_FUNC_SPI_EN);
-
 	spi_register_board_info(info, n);
 	ar71xx_spi_device.dev.platform_data = pdata;
 	platform_device_register(&ar71xx_spi_device);
diff --git a/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h b/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h
index 8379aedab1..f5de7c0330 100644
--- a/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h
+++ b/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h
@@ -201,9 +201,8 @@ extern void ar71xx_add_device_usb(void) __init;
 
 #define GPIO_FUNC_STEREO_EN	BIT(17)
 #define GPIO_FUNC_SLIC_EN	BIT(16)
-#define GPIO_FUNC_SPI_CS1_EN	BIT(15)
-#define GPIO_FUNC_SPI_CS0_EN	BIT(14)
-#define GPIO_FUNC_SPI_EN	BIT(13)
+#define GPIO_FUNC_SPI_CS2_EN	BIT(13)
+#define GPIO_FUNC_SPI_CS1_EN	BIT(12)
 #define GPIO_FUNC_UART_EN	BIT(8)
 #define GPIO_FUNC_USB_OC_EN	BIT(4)
 #define GPIO_FUNC_USB_CLK_EN	BIT(0)
-- 
cgit v1.2.3