summaryrefslogtreecommitdiff
path: root/arch/arm/mach-uniphier/arm32/debug_ll.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-uniphier/arm32/debug_ll.S')
-rw-r--r--arch/arm/mach-uniphier/arm32/debug_ll.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-uniphier/arm32/debug_ll.S b/arch/arm/mach-uniphier/arm32/debug_ll.S
index 9fe3eaadf1..e56e1f679c 100644
--- a/arch/arm/mach-uniphier/arm32/debug_ll.S
+++ b/arch/arm/mach-uniphier/arm32/debug_ll.S
@@ -16,9 +16,19 @@
#include CONFIG_DEBUG_LL_INCLUDE
#endif
+#define SG_REVISION_TYPE_SHIFT 16
+#define SG_REVISION_TYPE_MASK (0xff << SG_REVISION_TYPE_SHIFT)
#define BAUDRATE 115200
#define DIV_ROUND(x, d) (((x) + ((d) / 2)) / (d))
+.macro sg_set_pinsel, pin, muxval, mux_bits, reg_stride, ra, rd
+ ldr \ra, =(SG_PINCTRL_BASE + \pin * \mux_bits / 32 * \reg_stride)
+ ldr \rd, [\ra]
+ and \rd, \rd, #~(((1 << \mux_bits) - 1) << (\pin * \mux_bits % 32))
+ orr \rd, \rd, #(\muxval << (\pin * \mux_bits % 32))
+ str \rd, [\ra]
+.endm
+
ENTRY(debug_ll_init)
ldr r0, =SG_REVISION
ldr r1, [r0]