aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2014-11-26 09:00:17 +0000
committerJohn Crispin <john@openwrt.org>2014-11-26 09:00:17 +0000
commitc05048b0bb686bfa927d3a4848127b9052549fb1 (patch)
tree2c546927f7bdac026bfeda08e9856d5eef738b66 /package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c
parent72b58f2eb12ad4aa0c59481d0911dc5e39180eb5 (diff)
downloadupstream-c05048b0bb686bfa927d3a4848127b9052549fb1.tar.gz
upstream-c05048b0bb686bfa927d3a4848127b9052549fb1.tar.bz2
upstream-c05048b0bb686bfa927d3a4848127b9052549fb1.zip
add uboot-oxnas
This adds support for the oxnas target in U-Boot 2014.04 History can be found at https://github.com/kref/u-boot-oxnas up to 2013.10 changes from 2013.10 to 2014.04 can be followed at https://gitorious.org/openwrt-oxnas Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 43389
Diffstat (limited to 'package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c')
-rw-r--r--package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c b/package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c
new file mode 100644
index 0000000000..a6f5e9abc4
--- /dev/null
+++ b/package/boot/uboot-oxnas/files/arch/arm/cpu/arm1136/nas782x/pinmux.c
@@ -0,0 +1,43 @@
+#include <common.h>
+#include <asm/arch/pinmux.h>
+
+void pinmux_set(int bank, int pin, int func)
+{
+ u32 reg;
+ u32 base;
+ /* TODO: check parameters */
+
+ if (bank == PINMUX_BANK_MFA)
+ base = SYS_CONTROL_BASE;
+ else
+ base = SEC_CONTROL_BASE;
+
+ clrbits_le32(base + PINMUX_SECONDARY_SEL, BIT(pin));
+ clrbits_le32(base + PINMUX_TERTIARY_SEL, BIT(pin));
+ clrbits_le32(base + PINMUX_QUATERNARY_SEL, BIT(pin));
+ clrbits_le32(base + PINMUX_DEBUG_SEL, BIT(pin));
+ clrbits_le32(base + PINMUX_ALTERNATIVE_SEL, BIT(pin));
+
+ switch (func) {
+ case PINMUX_GPIO:
+ default:
+ return;
+ break;
+ case PINMUX_2:
+ reg = base + PINMUX_SECONDARY_SEL;
+ break;
+ case PINMUX_3:
+ reg = base + PINMUX_TERTIARY_SEL;
+ break;
+ case PINMUX_4:
+ reg = base + PINMUX_QUATERNARY_SEL;
+ break;
+ case PINMUX_DEBUG:
+ reg = base + PINMUX_DEBUG_SEL;
+ break;
+ case PINMUX_ALT:
+ reg = base + PINMUX_ALTERNATIVE_SEL;
+ break;
+ }
+ setbits_le32(reg, BIT(pin));
+}