diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2008-06-25 22:39:39 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2008-06-25 22:39:39 +0000 |
commit | 16967b41f18cef2529eaae67e04cdedd8cf0ebbb (patch) | |
tree | 3da18fa9d9dc8fa3c854ac0ecb844bab16f27ae4 /target/linux/orion/patches/012-rework_mpp_handling.patch | |
parent | 4add77fb4b448e556f10f593c3e773e545b3dc26 (diff) | |
download | master-31e0f0ae-16967b41f18cef2529eaae67e04cdedd8cf0ebbb.tar.gz master-31e0f0ae-16967b41f18cef2529eaae67e04cdedd8cf0ebbb.tar.bz2 master-31e0f0ae-16967b41f18cef2529eaae67e04cdedd8cf0ebbb.zip |
sync with the orion git tree
SVN-Revision: 11575
Diffstat (limited to 'target/linux/orion/patches/012-rework_mpp_handling.patch')
-rw-r--r-- | target/linux/orion/patches/012-rework_mpp_handling.patch | 583 |
1 files changed, 0 insertions, 583 deletions
diff --git a/target/linux/orion/patches/012-rework_mpp_handling.patch b/target/linux/orion/patches/012-rework_mpp_handling.patch deleted file mode 100644 index 05e1881259..0000000000 --- a/target/linux/orion/patches/012-rework_mpp_handling.patch +++ /dev/null @@ -1,583 +0,0 @@ -Instead of having board code poke directly into the MPP configuration -registers, and separately calling orion5x_gpio_set_valid_pins() to -indicate which MPP pins can be used as GPIO pins, introduce a helper -function for configuring the roles of each of the MPP pins, and have -that helper function handle gpio validity internally. - -Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> -Acked-by: Sylver Bruneau <sylver.bruneau@googlemail.com> ---- - arch/arm/mach-orion5x/Makefile | 2 +- - arch/arm/mach-orion5x/common.h | 2 +- - arch/arm/mach-orion5x/db88f5281-setup.c | 42 +++++---- - arch/arm/mach-orion5x/dns323-setup.c | 50 +++++------ - arch/arm/mach-orion5x/gpio.c | 7 +- - arch/arm/mach-orion5x/kurobox_pro-setup.c | 41 ++++---- - arch/arm/mach-orion5x/mpp.c | 142 +++++++++++++++++++++++++++++ - arch/arm/mach-orion5x/mpp.h | 63 +++++++++++++ - arch/arm/mach-orion5x/rd88f5182-setup.c | 43 +++++---- - arch/arm/mach-orion5x/ts209-setup.c | 43 +++++---- - 10 files changed, 321 insertions(+), 114 deletions(-) - create mode 100644 arch/arm/mach-orion5x/mpp.c - create mode 100644 arch/arm/mach-orion5x/mpp.h - ---- a/arch/arm/mach-orion5x/Makefile -+++ b/arch/arm/mach-orion5x/Makefile -@@ -1,4 +1,4 @@ --obj-y += common.o addr-map.o pci.o gpio.o irq.o -+obj-y += common.o addr-map.o pci.o gpio.o irq.o mpp.o - obj-$(CONFIG_MACH_DB88F5281) += db88f5281-setup.o - obj-$(CONFIG_MACH_RD88F5182) += rd88f5182-setup.o - obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o ---- a/arch/arm/mach-orion5x/common.h -+++ b/arch/arm/mach-orion5x/common.h -@@ -48,7 +48,7 @@ - * Valid GPIO pins according to MPP setup, used by machine-setup. - * (/mach-orion/gpio.c). - */ --void orion5x_gpio_set_valid_pins(u32 pins); -+void orion5x_gpio_set_valid(unsigned pin, int valid); - void gpio_display(void); /* debug */ - - struct machine_desc; ---- a/arch/arm/mach-orion5x/db88f5281-setup.c -+++ b/arch/arm/mach-orion5x/db88f5281-setup.c -@@ -27,6 +27,7 @@ - #include <asm/arch/orion5x.h> - #include <asm/plat-orion/orion_nand.h> - #include "common.h" -+#include "mpp.h" - - /***************************************************************************** - * DB-88F5281 on board devices -@@ -305,26 +306,27 @@ - */ - orion5x_init(); - -- /* -- * Setup Multiplexing Pins: -- * MPP0: GPIO (USB Over Current) MPP1: GPIO (USB Vbat input) -- * MPP2: PCI_REQn[2] MPP3: PCI_GNTn[2] -- * MPP4: PCI_REQn[3] MPP5: PCI_GNTn[3] -- * MPP6: GPIO (JP0, CON17.2) MPP7: GPIO (JP1, CON17.1) -- * MPP8: GPIO (JP2, CON11.2) MPP9: GPIO (JP3, CON11.3) -- * MPP10: GPIO (RTC int) MPP11: GPIO (Baud Rate Generator) -- * MPP12: GPIO (PCI int 1) MPP13: GPIO (PCI int 2) -- * MPP14: NAND_REn[2] MPP15: NAND_WEn[2] -- * MPP16: UART1_RX MPP17: UART1_TX -- * MPP18: UART1_CTS MPP19: UART1_RTS -- * MPP-DEV: DEV_D[16:31] -- */ -- orion5x_write(MPP_0_7_CTRL, 0x00222203); -- orion5x_write(MPP_8_15_CTRL, 0x44000000); -- orion5x_write(MPP_16_19_CTRL, 0); -- orion5x_write(MPP_DEV_CTRL, 0); -- -- orion5x_gpio_set_valid_pins(0x00003fc3); -+ orion5x_mpp_conf(0, MPP_GPIO); /* USB Over Current */ -+ orion5x_mpp_conf(1, MPP_GPIO); /* USB Vbat input */ -+ orion5x_mpp_conf(2, MPP_PCI_ARB); /* PCI_REQn[2] */ -+ orion5x_mpp_conf(3, MPP_PCI_ARB); /* PCI_GNTn[2] */ -+ orion5x_mpp_conf(4, MPP_PCI_ARB); /* PCI_REQn[3] */ -+ orion5x_mpp_conf(5, MPP_PCI_ARB); /* PCI_GNTn[3] */ -+ orion5x_mpp_conf(6, MPP_GPIO); /* JP0, CON17.2 */ -+ orion5x_mpp_conf(7, MPP_GPIO); /* JP1, CON17.1 */ -+ orion5x_mpp_conf(8, MPP_GPIO); /* JP2, CON11.2 */ -+ orion5x_mpp_conf(9, MPP_GPIO); /* JP3, CON11.3 */ -+ orion5x_mpp_conf(10, MPP_GPIO); /* RTC int */ -+ orion5x_mpp_conf(11, MPP_GPIO); /* Baud Rate Generator */ -+ orion5x_mpp_conf(12, MPP_GPIO); /* PCI int 1 */ -+ orion5x_mpp_conf(13, MPP_GPIO); /* PCI int 2 */ -+ orion5x_mpp_conf(14, MPP_NAND); /* NAND_REn[2] */ -+ orion5x_mpp_conf(15, MPP_NAND); /* NAND_WEn[2] */ -+ orion5x_mpp_conf(16, MPP_UART); /* UART1_RX */ -+ orion5x_mpp_conf(17, MPP_UART); /* UART1_TX */ -+ orion5x_mpp_conf(18, MPP_UART); /* UART1_CTSn */ -+ orion5x_mpp_conf(19, MPP_UART); /* UART1_RTSn */ -+ orion5x_write(MPP_DEV_CTRL, 0); /* DEV_D[31:16] */ - - /* - * Configure peripherals. ---- a/arch/arm/mach-orion5x/dns323-setup.c -+++ b/arch/arm/mach-orion5x/dns323-setup.c -@@ -27,6 +27,7 @@ - #include <asm/mach/pci.h> - #include <asm/arch/orion5x.h> - #include "common.h" -+#include "mpp.h" - - #define DNS323_GPIO_LED_RIGHT_AMBER 1 - #define DNS323_GPIO_LED_LEFT_AMBER 2 -@@ -247,34 +248,27 @@ - /* Setup basic Orion functions. Need to be called early. */ - orion5x_init(); - -- /* set MPP to 0 as D-Link's 2.6.12.6 kernel did */ -- orion5x_write(MPP_0_7_CTRL, 0); -- orion5x_write(MPP_8_15_CTRL, 0); -- orion5x_write(MPP_16_19_CTRL, 0); -- orion5x_write(MPP_DEV_CTRL, 0); -- -- /* Define used GPIO pins -- -- GPIO Map: -- -- | 0 | | PEX_RST_OUT (not controlled by GPIO) -- | 1 | Out | right amber LED (= sata ch0 LED) (low-active) -- | 2 | Out | left amber LED (= sata ch1 LED) (low-active) -- | 3 | Out | //unknown// -- | 4 | Out | power button LED (low-active, together with pin #5) -- | 5 | Out | power button LED (low-active, together with pin #4) -- | 6 | In | GMT G751-2f overtemp. shutdown signal (low-active) -- | 7 | In | M41T80 nIRQ/OUT/SQW signal -- | 8 | Out | triggers power off (high-active) -- | 9 | In | power button switch (low-active) -- | 10 | In | reset button switch (low-active) -- | 11 | Out | //unknown// -- | 12 | Out | //unknown// -- | 13 | Out | //unknown// -- | 14 | Out | //unknown// -- | 15 | Out | //unknown// -- */ -- orion5x_gpio_set_valid_pins(0x07f6); -+ orion5x_mpp_conf(0, MPP_PCIE_RST_OUTn); -+ orion5x_mpp_conf(1, MPP_GPIO); /* right amber LED (sata ch0) */ -+ orion5x_mpp_conf(2, MPP_GPIO); /* left amber LED (sata ch1) */ -+ orion5x_mpp_conf(3, MPP_UNUSED); -+ orion5x_mpp_conf(4, MPP_GPIO); /* power button LED */ -+ orion5x_mpp_conf(5, MPP_GPIO); /* power button LED */ -+ orion5x_mpp_conf(6, MPP_GPIO); /* GMT G751-2f overtemp */ -+ orion5x_mpp_conf(7, MPP_GPIO); /* M41T80 nIRQ/OUT/SQW */ -+ orion5x_mpp_conf(8, MPP_GPIO); /* triggers power off */ -+ orion5x_mpp_conf(9, MPP_GPIO); /* power button switch */ -+ orion5x_mpp_conf(10, MPP_GPIO); /* reset button switch */ -+ orion5x_mpp_conf(11, MPP_UNUSED); -+ orion5x_mpp_conf(12, MPP_UNUSED); -+ orion5x_mpp_conf(13, MPP_UNUSED); -+ orion5x_mpp_conf(14, MPP_UNUSED); -+ orion5x_mpp_conf(15, MPP_UNUSED); -+ orion5x_mpp_conf(16, MPP_UNUSED); -+ orion5x_mpp_conf(17, MPP_UNUSED); -+ orion5x_mpp_conf(18, MPP_UNUSED); -+ orion5x_mpp_conf(19, MPP_UNUSED); -+ orion5x_write(MPP_DEV_CTRL, 0); /* DEV_D[31:16] */ - - /* - * Configure peripherals. ---- a/arch/arm/mach-orion5x/gpio.c -+++ b/arch/arm/mach-orion5x/gpio.c -@@ -24,9 +24,12 @@ - static unsigned long gpio_valid[BITS_TO_LONGS(GPIO_MAX)]; - static const char *gpio_label[GPIO_MAX]; /* non null for allocated GPIOs */ - --void __init orion5x_gpio_set_valid_pins(u32 pins) -+void __init orion5x_gpio_set_valid(unsigned pin, int valid) - { -- gpio_valid[0] = pins; -+ if (valid) -+ __set_bit(pin, gpio_valid); -+ else -+ __clear_bit(pin, gpio_valid); - } - - /* ---- a/arch/arm/mach-orion5x/kurobox_pro-setup.c -+++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c -@@ -25,6 +25,7 @@ - #include <asm/arch/orion5x.h> - #include <asm/plat-orion/orion_nand.h> - #include "common.h" -+#include "mpp.h" - - /***************************************************************************** - * KUROBOX-PRO Info -@@ -187,26 +188,26 @@ - */ - orion5x_init(); - -- /* -- * Setup Multiplexing Pins -- -- * MPP[0-1] Not used -- * MPP[2] GPIO Micon -- * MPP[3] GPIO RTC -- * MPP[4-5] Not used -- * MPP[6] Nand Flash REn -- * MPP[7] Nand Flash WEn -- * MPP[8-11] Not used -- * MPP[12] SATA 0 presence Indication -- * MPP[13] SATA 1 presence Indication -- * MPP[14] SATA 0 active Indication -- * MPP[15] SATA 1 active indication -- * MPP[16-19] Not used -- */ -- orion5x_write(MPP_0_7_CTRL, 0x44220003); -- orion5x_write(MPP_8_15_CTRL, 0x55550000); -- orion5x_write(MPP_16_19_CTRL, 0x0); -- -- orion5x_gpio_set_valid_pins(0x0000000c); -+ orion5x_mpp_conf(0, MPP_UNUSED); -+ orion5x_mpp_conf(1, MPP_UNUSED); -+ orion5x_mpp_conf(2, MPP_GPIO); /* GPIO Micon */ -+ orion5x_mpp_conf(3, MPP_GPIO); /* GPIO Rtc */ -+ orion5x_mpp_conf(4, MPP_UNUSED); -+ orion5x_mpp_conf(5, MPP_UNUSED); -+ orion5x_mpp_conf(6, MPP_NAND); /* NAND Flash REn */ -+ orion5x_mpp_conf(7, MPP_NAND); /* NAND Flash WEn */ -+ orion5x_mpp_conf(8, MPP_UNUSED); -+ orion5x_mpp_conf(9, MPP_UNUSED); -+ orion5x_mpp_conf(10, MPP_UNUSED); -+ orion5x_mpp_conf(11, MPP_UNUSED); -+ orion5x_mpp_conf(12, MPP_SATA_LED); /* SATA 0 presence */ -+ orion5x_mpp_conf(13, MPP_SATA_LED); /* SATA 1 presence */ -+ orion5x_mpp_conf(14, MPP_SATA_LED); /* SATA 0 active */ -+ orion5x_mpp_conf(15, MPP_SATA_LED); /* SATA 1 active */ -+ orion5x_mpp_conf(16, MPP_UNUSED); -+ orion5x_mpp_conf(17, MPP_UNUSED); -+ orion5x_mpp_conf(18, MPP_UNUSED); -+ orion5x_mpp_conf(19, MPP_UNUSED); - - /* - * Configure peripherals. ---- /dev/null -+++ b/arch/arm/mach-orion5x/mpp.c -@@ -0,0 +1,142 @@ -+/* -+ * arch/arm/mach-orion5x/mpp.c -+ * -+ * MPP functions for Marvell Orion 5x SoCs -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/mbus.h> -+#include <asm/hardware.h> -+#include <asm/io.h> -+#include "common.h" -+#include "mpp.h" -+ -+static int is_5182(void) -+{ -+ u32 dev; -+ u32 rev; -+ -+ orion5x_pcie_id(&dev, &rev); -+ -+ return !!(dev == MV88F5182_DEV_ID); -+} -+ -+static int is_5281(void) -+{ -+ u32 dev; -+ u32 rev; -+ -+ orion5x_pcie_id(&dev, &rev); -+ -+ return !!(dev == MV88F5281_DEV_ID); -+} -+ -+static int __init determine_type_encoding(int mpp, enum orion5x_mpp_type type) -+{ -+ switch (type) { -+ case MPP_UNUSED: -+ case MPP_GPIO: -+ if (mpp == 0) -+ return 3; -+ if (mpp >= 1 && mpp <= 15) -+ return 0; -+ if (mpp >= 16 && mpp <= 19) { -+ if (is_5182()) -+ return 5; -+ if (type == MPP_UNUSED) -+ return 0; -+ } -+ return -1; -+ -+ case MPP_PCIE_RST_OUTn: -+ if (mpp == 0) -+ return 0; -+ return -1; -+ -+ case MPP_PCI_ARB: -+ if (mpp >= 0 && mpp <= 7) -+ return 2; -+ return -1; -+ -+ case MPP_PCI_PMEn: -+ if (mpp == 2) -+ return 3; -+ return -1; -+ -+ case MPP_GIGE: -+ if (mpp >= 8 && mpp <= 15) -+ return 1; -+ return -1; -+ -+ case MPP_NAND: -+ if (is_5182() || is_5281()) { -+ if (mpp >= 4 && mpp <= 7) -+ return 4; -+ if (mpp >= 12 && mpp <= 17) -+ return 4; -+ } -+ return -1; -+ -+ -+ case MPP_SATA_LED: -+ if (is_5182()) { -+ if (mpp >= 4 && mpp <= 7) -+ return 5; -+ if (mpp >= 12 && mpp <= 15) -+ return 5; -+ } -+ return -1; -+ -+ case MPP_UART: -+ if (mpp >= 16 && mpp <= 19) -+ return 0; -+ return -1; -+ } -+ -+ printk(KERN_INFO "unknown MPP type %d\n", type); -+ -+ return -1; -+} -+ -+static void __init set_mpp_type(int mpp, int num_type) -+{ -+ unsigned long reg; -+ u32 value; -+ -+ if (mpp >= 0 && mpp <= 7) -+ reg = MPP_0_7_CTRL; -+ else if (mpp >= 8 && mpp <= 15) -+ reg = MPP_8_15_CTRL; -+ else if (mpp >= 16 && mpp <= 19) -+ reg = MPP_16_19_CTRL; -+ else -+ return; -+ -+ mpp &= 7; -+ -+ value = readl(reg); -+ value &= ~(0xf << (mpp << 2)); -+ value |= (num_type & 0xf) << (mpp << 2); -+ writel(value, reg); -+} -+ -+void __init orion5x_mpp_conf(int mpp, enum orion5x_mpp_type type) -+{ -+ int num_type; -+ -+ num_type = determine_type_encoding(mpp, type); -+ if (num_type < 0) { -+ printk(KERN_ERR "orion5x_mpp_conf: invalid MPP " -+ "combination (%d, %d)\n", mpp, type); -+ return; -+ } -+ -+ set_mpp_type(mpp, num_type); -+ -+ orion5x_gpio_set_valid(mpp, (type == MPP_GPIO) ? 1 : 0); -+} ---- /dev/null -+++ b/arch/arm/mach-orion5x/mpp.h -@@ -0,0 +1,63 @@ -+#ifndef __ARCH_ORION5X_MPP_H -+#define __ARCH_ORION5X_MPP_H -+ -+enum orion5x_mpp_type { -+ /* -+ * This MPP is unused. -+ */ -+ MPP_UNUSED, -+ -+ /* -+ * This MPP pin is used as a generic GPIO pin. Valid for -+ * MPPs 0-15 and device bus data pins 16-31. On 5182, also -+ * valid for MPPs 16-19. -+ */ -+ MPP_GPIO, -+ -+ /* -+ * This MPP is used as PCIe_RST_OUTn pin. Valid for -+ * MPP 0 only. -+ */ -+ MPP_PCIE_RST_OUTn, -+ -+ /* -+ * This MPP is used as PCI arbiter pin (REQn/GNTn.) -+ * Valid for MPPs 0-7 only. -+ */ -+ MPP_PCI_ARB, -+ -+ /* -+ * This MPP is used as PCI_PMEn pin. Valid for MPP 2 only. -+ */ -+ MPP_PCI_PMEn, -+ -+ /* -+ * This MPP is used as GigE half-duplex (COL, CRS) or GMII -+ * (RXERR, CRS, TXERR, TXD[7:4], RXD[7:4]) pin. Valid for -+ * MPPs 8-19 only. -+ */ -+ MPP_GIGE, -+ -+ /* -+ * This MPP is used as NAND REn/WEn pin. Valid for MPPs -+ * 4-7 and 12-17 only, and only on the 5181l/5182/5281. -+ */ -+ MPP_NAND, -+ -+ /* -+ * This MPP is used as a SATA presence/activity LED. -+ * Valid for MPPs 4-7 and 12-15 only, and only on the 5182. -+ */ -+ MPP_SATA_LED, -+ -+ /* -+ * This MPP is used as UART1 RXD/TXD/CTSn/RTSn pin. -+ * Valid for MPPs 16-19 only. -+ */ -+ MPP_UART, -+}; -+ -+void orion5x_mpp_conf(int mpp, enum orion5x_mpp_type type); -+ -+ -+#endif ---- a/arch/arm/mach-orion5x/rd88f5182-setup.c -+++ b/arch/arm/mach-orion5x/rd88f5182-setup.c -@@ -26,6 +26,7 @@ - #include <asm/mach/pci.h> - #include <asm/arch/orion5x.h> - #include "common.h" -+#include "mpp.h" - - /***************************************************************************** - * RD-88F5182 Info -@@ -248,22 +249,28 @@ - */ - orion5x_init(); - -+ orion5x_mpp_conf(0, MPP_GPIO); /* Debug Led */ -+ orion5x_mpp_conf(1, MPP_GPIO); /* Reset Switch */ -+ orion5x_mpp_conf(2, MPP_UNUSED); -+ orion5x_mpp_conf(3, MPP_GPIO); /* RTC Int */ -+ orion5x_mpp_conf(4, MPP_GPIO); -+ orion5x_mpp_conf(5, MPP_GPIO); -+ orion5x_mpp_conf(6, MPP_GPIO); /* PCI_intA */ -+ orion5x_mpp_conf(7, MPP_GPIO); /* PCI_intB */ -+ orion5x_mpp_conf(8, MPP_UNUSED); -+ orion5x_mpp_conf(9, MPP_UNUSED); -+ orion5x_mpp_conf(10, MPP_UNUSED); -+ orion5x_mpp_conf(11, MPP_UNUSED); -+ orion5x_mpp_conf(12, MPP_SATA_LED); /* SATA 0 presence */ -+ orion5x_mpp_conf(13, MPP_SATA_LED); /* SATA 1 presence */ -+ orion5x_mpp_conf(14, MPP_SATA_LED); /* SATA 0 active */ -+ orion5x_mpp_conf(15, MPP_SATA_LED); /* SATA 1 active */ -+ orion5x_mpp_conf(16, MPP_UNUSED); -+ orion5x_mpp_conf(17, MPP_UNUSED); -+ orion5x_mpp_conf(18, MPP_UNUSED); -+ orion5x_mpp_conf(19, MPP_UNUSED); -+ - /* -- * Setup Multiplexing Pins -- -- * MPP[0] Debug Led (GPIO - Out) -- * MPP[1] Debug Led (GPIO - Out) -- * MPP[2] N/A -- * MPP[3] RTC_Int (GPIO - In) -- * MPP[4] GPIO -- * MPP[5] GPIO -- * MPP[6] PCI_intA (GPIO - In) -- * MPP[7] PCI_intB (GPIO - In) -- * MPP[8-11] N/A -- * MPP[12] SATA 0 presence Indication -- * MPP[13] SATA 1 presence Indication -- * MPP[14] SATA 0 active Indication -- * MPP[15] SATA 1 active indication -- * MPP[16-19] Not used - * MPP[20] PCI Clock to MV88F5182 - * MPP[21] PCI Clock to mini PCI CON11 - * MPP[22] USB 0 over current indication -@@ -272,12 +279,6 @@ - * MPP[25] USB 0 over current enable - */ - -- orion5x_write(MPP_0_7_CTRL, 0x00000003); -- orion5x_write(MPP_8_15_CTRL, 0x55550000); -- orion5x_write(MPP_16_19_CTRL, 0x5555); -- -- orion5x_gpio_set_valid_pins(0x000000fb); -- - /* - * Configure peripherals. - */ ---- a/arch/arm/mach-orion5x/ts209-setup.c -+++ b/arch/arm/mach-orion5x/ts209-setup.c -@@ -28,6 +28,7 @@ - #include <asm/mach/pci.h> - #include <asm/arch/orion5x.h> - #include "common.h" -+#include "mpp.h" - - #define QNAP_TS209_NOR_BOOT_BASE 0xf4000000 - #define QNAP_TS209_NOR_BOOT_SIZE SZ_8M -@@ -364,33 +365,33 @@ - */ - orion5x_init(); - -+ orion5x_mpp_conf(0, MPP_UNUSED); -+ orion5x_mpp_conf(1, MPP_GPIO); /* USB copy button */ -+ orion5x_mpp_conf(2, MPP_GPIO); /* Load defaults button */ -+ orion5x_mpp_conf(3, MPP_GPIO); /* GPIO RTC */ -+ orion5x_mpp_conf(4, MPP_UNUSED); -+ orion5x_mpp_conf(5, MPP_UNUSED); -+ orion5x_mpp_conf(6, MPP_GPIO); /* PCI Int A */ -+ orion5x_mpp_conf(7, MPP_GPIO); /* PCI Int B */ -+ orion5x_mpp_conf(8, MPP_UNUSED); -+ orion5x_mpp_conf(9, MPP_UNUSED); -+ orion5x_mpp_conf(10, MPP_UNUSED); -+ orion5x_mpp_conf(11, MPP_UNUSED); -+ orion5x_mpp_conf(12, MPP_SATA_LED); /* SATA 0 presence */ -+ orion5x_mpp_conf(13, MPP_SATA_LED); /* SATA 1 presence */ -+ orion5x_mpp_conf(14, MPP_SATA_LED); /* SATA 0 active */ -+ orion5x_mpp_conf(15, MPP_SATA_LED); /* SATA 1 active */ -+ orion5x_mpp_conf(16, MPP_UART); /* UART1 RXD */ -+ orion5x_mpp_conf(17, MPP_UART); /* UART1 TXD */ -+ orion5x_mpp_conf(18, MPP_GPIO); /* SW_RST */ -+ orion5x_mpp_conf(19, MPP_UNUSED); -+ - /* -- * Setup Multiplexing Pins -- -- * MPP[0] Reserved -- * MPP[1] USB copy button (0 active) -- * MPP[2] Load defaults button (0 active) -- * MPP[3] GPIO RTC -- * MPP[4-5] Reserved -- * MPP[6] PCI Int A -- * MPP[7] PCI Int B -- * MPP[8-11] Reserved -- * MPP[12] SATA 0 presence -- * MPP[13] SATA 1 presence -- * MPP[14] SATA 0 active -- * MPP[15] SATA 1 active -- * MPP[16] UART1 RXD -- * MPP[17] UART1 TXD -- * MPP[18] SW_RST (0 active) -- * MPP[19] Reserved - * MPP[20] PCI clock 0 - * MPP[21] PCI clock 1 - * MPP[22] USB 0 over current - * MPP[23-25] Reserved - */ -- orion5x_write(MPP_0_7_CTRL, 0x3); -- orion5x_write(MPP_8_15_CTRL, 0x55550000); -- orion5x_write(MPP_16_19_CTRL, 0x5500); -- orion5x_gpio_set_valid_pins(0x3cc0fff); - - /* - * Configure peripherals. |