summaryrefslogtreecommitdiff
path: root/lib/intel_mmio.c
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2015-04-28 11:52:42 +0300
committerJani Nikula <jani.nikula@intel.com>2015-05-05 13:08:34 +0300
commit23b7f089207e44244ecc5757a2be5263db08581b (patch)
tree38861f292c783a970851258e83c4098576744c3d /lib/intel_mmio.c
parent30e84df0c110971cc07cc81fdbf66aa9e7840bc6 (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.c77
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;
+}