summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAntony Pavlov <antonynpavlov@gmail.com>2015-11-03 08:23:50 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-11-03 08:25:56 +0100
commit61163945cfec8c88d9d77e6c53b76a91760fa07f (patch)
tree09a9566ad4c7c84bcaa8529ffb1d3d3d206e6464 /arch
parent50725503b31faa5d1c17032f304277908cdef005 (diff)
downloadbarebox-61163945cfec8c88d9d77e6c53b76a91760fa07f.tar.gz
barebox-61163945cfec8c88d9d77e6c53b76a91760fa07f.tar.xz
MIPS: ath79: add pbl_ar9331_uart_enable macro
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/include/asm/pbl_macros.h11
-rw-r--r--arch/mips/mach-ath79/include/mach/ar71xx_regs.h3
-rw-r--r--arch/mips/mach-ath79/include/mach/pbl_macros.h7
3 files changed, 21 insertions, 0 deletions
diff --git a/arch/mips/include/asm/pbl_macros.h b/arch/mips/include/asm/pbl_macros.h
index db46d0db3b..681b40a305 100644
--- a/arch/mips/include/asm/pbl_macros.h
+++ b/arch/mips/include/asm/pbl_macros.h
@@ -37,6 +37,17 @@
.set pop
.endm
+ .macro pbl_reg_set val addr
+ .set push
+ .set noreorder
+ li t9, \addr
+ li t8, \val
+ lw t7, 0(t9)
+ or t7, t8
+ sw t7, 0(t9)
+ .set pop
+ .endm
+
.macro pbl_reg_clr clr addr
.set push
.set noreorder
diff --git a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
index 0b84c5521d..4cbe94a487 100644
--- a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
+++ b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
@@ -67,6 +67,9 @@
#define AR71XX_GPIO_REG_INT_PENDING 0x20
#define AR71XX_GPIO_REG_INT_ENABLE 0x24
#define AR71XX_GPIO_REG_FUNC 0x28
+/* Warning! GPIO_FUNC[15] must be written with 1 */
+#define AR933X_GPIO_FUNC_RSRV15 BIT(15)
+#define AR933X_GPIO_FUNC_UART_EN BIT(1)
/*
* PLL block
diff --git a/arch/mips/mach-ath79/include/mach/pbl_macros.h b/arch/mips/mach-ath79/include/mach/pbl_macros.h
index f0e0174a41..4ef90dc204 100644
--- a/arch/mips/mach-ath79/include/mach/pbl_macros.h
+++ b/arch/mips/mach-ath79/include/mach/pbl_macros.h
@@ -129,4 +129,11 @@
.set pop
.endm
+#define GPIO_FUNC ((KSEG1 | AR71XX_GPIO_BASE) | AR71XX_GPIO_REG_FUNC)
+
+.macro pbl_ar9331_uart_enable
+ pbl_reg_set AR933X_GPIO_FUNC_UART_EN \
+ | AR933X_GPIO_FUNC_RSRV15, GPIO_FUNC
+.endm
+
#endif /* __ASM_MACH_ATH79_PBL_MACROS_H */