diff options
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; +} |