mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 07:34:31 +00:00
ARM: UniPhier: add set_pinsel macro for use in assembly code
The function sg_set_pinsel is useful for switching I/O pins but it can be only used in C code. This commit adds a simple macro that is available in asm code. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
This commit is contained in:
parent
495deb44f2
commit
2d5d1c9e29
1 changed files with 12 additions and 1 deletions
|
@ -88,7 +88,18 @@
|
|||
#define SG_PINMON0_CLK_MODE_AXOSEL_20480KHZ (0x2 << 16)
|
||||
#define SG_PINMON0_CLK_MODE_AXOSEL_25000KHZ_A (0x3 << 16)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
.macro set_pinsel, n, value, ra, rd
|
||||
ldr \ra, =SG_PINSEL_ADDR(\n)
|
||||
ldr \rd, [\ra]
|
||||
and \rd, \rd, #SG_PINSEL_MASK(\n)
|
||||
orr \rd, \rd, #SG_PINSEL_MODE(\n, \value)
|
||||
str \rd, [\ra]
|
||||
.endm
|
||||
|
||||
#else
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
|
|
Loading…
Reference in a new issue