sys_io: arc: Add sys_in*/sys_out* functions

This functions - reusing _arc_v2_aux_reg_* ones - will ease porting
drivers to ARC architecture hiding arch specific calls under generic
functions. On ARC, auxiliary registers is conceptually comparable to
x86 ports, thus the possibility to bring sys_in/sys_out to access those.

Change-Id: Ic5c0fc41f32ec4ad861dbb58cd8defaf4497bc03
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This commit is contained in:
Tomasz Bursztyka 2015-10-13 13:40:41 +03:00 committed by Anas Nashif
commit 7193a3e007

View file

@ -29,6 +29,42 @@
/* Implementation of sys_io.h's documented functions */
static inline __attribute__((always_inline))
void sys_out8(uint8_t data, io_port_t port)
{
_arc_v2_aux_reg_write(port, data);
}
static inline __attribute__((always_inline))
uint8_t sys_in8(io_port_t port)
{
return (uint8_t)(_arc_v2_aux_reg_read(port) & 0x000000ff);
}
static inline __attribute__((always_inline))
void sys_out16(uint16_t data, io_port_t port)
{
_arc_v2_aux_reg_write(port, data);
}
static inline __attribute__((always_inline))
uint16_t sys_in16(io_port_t port)
{
return (uint16_t)(_arc_v2_aux_reg_read(port) & 0x0000ffff);
}
static inline __attribute__((always_inline))
void sys_out32(uint32_t data, io_port_t port)
{
_arc_v2_aux_reg_write(port, data);
}
static inline __attribute__((always_inline))
uint32_t sys_in32(io_port_t port)
{
return _arc_v2_aux_reg_read(port);
}
static inline __attribute__((always_inline))
void sys_write8(uint8_t data, mm_reg_t addr)
{