Commit 23b7f089 authored by Jani Nikula's avatar Jani Nikula

lib: add 16 and 8 bit versions of INREG and OUTREG

Add INREG8, INREG16, OUTREG8, and OUTREG16. While at it, cleanup doc
comments of INREG and OUTREG.
Signed-off-by: Jani Nikula's avatarJani Nikula <jani.nikula@intel.com>
parent 30e84df0
......@@ -43,7 +43,11 @@ void intel_register_write(uint32_t reg, uint32_t val);
int intel_register_access_needs_fakewake(void);
uint32_t INREG(uint32_t reg);
uint16_t INREG16(uint32_t reg);
uint8_t INREG8(uint32_t reg);
void OUTREG(uint32_t reg, uint32_t val);
void OUTREG16(uint32_t reg, uint16_t val);
void OUTREG8(uint32_t reg, uint8_t val);
/* sideband access functions from intel_iosf.c */
uint32_t intel_dpio_reg_read(uint32_t reg, int phy);
......
......@@ -311,8 +311,8 @@ write_out:
* INREG:
* @reg: register offset
*
* 32-bit read of the register at @offset. This function only works when the new
* register access helper is initialized with intel_register_access_init().
* 32-bit read of the register at offset @reg. This function only works when the
* new register access helper is initialized with intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*
......@@ -325,12 +325,47 @@ uint32_t INREG(uint32_t reg)
}
/**
* OUTRET:
* INREG16:
* @reg: register offset
*
* 16-bit read of the register at offset @reg. This function only works when the
* new register access helper is initialized with intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*
* Returns:
* The value read from the register.
*/
uint16_t INREG16(uint32_t reg)
{
return *(volatile uint16_t *)((volatile char *)mmio + reg);
}
/**
* INREG8:
* @reg: register offset
*
* 8-bit read of the register at offset @reg. This function only works when the
* new register access helper is initialized with intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*
* Returns:
* The value read from the register.
*/
uint8_t INREG8(uint32_t reg)
{
return *((volatile uint8_t *)mmio + reg);
}
/**
* OUTREG:
* @reg: register offset
* @val: value to write
*
* 32-bit write to the register at @offset. This function only works when the new
* register access helper is initialized with intel_register_access_init().
* 32-bit write of @val to the register at offset @reg. This function only works
* when the new register access helper is initialized with
* intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*/
......@@ -338,3 +373,35 @@ void OUTREG(uint32_t reg, uint32_t val)
{
*(volatile uint32_t *)((volatile char *)mmio + reg) = val;
}
/**
* OUTREG16:
* @reg: register offset
* @val: value to write
*
* 16-bit write of @val to the register at offset @reg. This function only works
* when the new register access helper is initialized with
* intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*/
void OUTREG16(uint32_t reg, uint16_t val)
{
*(volatile uint16_t *)((volatile char *)mmio + reg) = val;
}
/**
* OUTREG8:
* @reg: register offset
* @val: value to write
*
* 8-bit write of @val to the register at offset @reg. This function only works
* when the new register access helper is initialized with
* intel_register_access_init().
*
* This function directly accesses the #mmio without safety checks.
*/
void OUTREG8(uint32_t reg, uint8_t val)
{
*((volatile uint8_t *)mmio + reg) = val;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment