diff options
author | Jani Nikula <jani.nikula@intel.com> | 2015-04-28 11:52:42 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2015-05-05 13:08:34 +0300 |
commit | 23b7f089207e44244ecc5757a2be5263db08581b (patch) | |
tree | 38861f292c783a970851258e83c4098576744c3d /lib/intel_mmio.c | |
parent | 30e84df0c110971cc07cc81fdbf66aa9e7840bc6 (diff) |
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 <jani.nikula@intel.com>
Diffstat (limited to 'lib/intel_mmio.c')
-rw-r--r-- | lib/intel_mmio.c | 77 |
1 files changed, 72 insertions, 5 deletions
diff --git a/lib/intel_mmio.c b/lib/intel_mmio.c index 9a2ee27b..be8f7d77 100644 --- a/lib/intel_mmio.c +++ b/lib/intel_mmio.c @@ -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; +} |