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:
parent
61d87f57f8
commit
7193a3e007
1 changed files with 36 additions and 0 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue