diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index 94f0df5..5ea06e2 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -1005,7 +1005,7 @@
  * caller may not get a chance to commit this data.
  *
  * @param ctx		Vboot context
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2ex_commit_data(struct vb2_context *ctx);
 
@@ -1015,7 +1015,7 @@
 /**
  * Initialize the TPM.
  *
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2ex_tpm_init(void);
 
@@ -1026,7 +1026,7 @@
  * TPM_TakeOwnership, since the TPM device can be opened only by one process at
  * a time.
  *
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2ex_tpm_close(void);
 vb2_error_t vb2ex_tpm_open(void);
@@ -1061,7 +1061,7 @@
  * the TPM RNG directly. Otherwise, an attacker with communication interception
  * abilities could launch replay attacks by reusing previous nonces.
  *
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2ex_tpm_get_random(uint8_t *buf, uint32_t length);
 
@@ -1093,7 +1093,7 @@
  *
  * @param mode_val       Desired TPM mode to set.  May be one of ENABLED
  *                       or DISABLED from vb2_tpm_mode enum.
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2ex_tpm_set_mode(enum vb2_tpm_mode mode_val);
 
@@ -1410,21 +1410,21 @@
 /**
  * Check that physical presence button is currently pressed by the user.
  *
- * @returns 1 for pressed, 0 for not.
+ * @return 1 for pressed, 0 for not.
  */
 int vb2ex_physical_presence_pressed(void);
 
 /**
  * Get the number of supported locales.
  *
- * @returns Number of locales.  0 if none or on error.
+ * @return Number of locales.  0 if none or on error.
  */
 uint32_t vb2ex_get_locale_count(void);
 
 /**
  * Return the number of available alternate bootloaders.
  *
- * @returns Number of alternate bootloaders.  0 if none or on error.
+ * @return Number of alternate bootloaders.  0 if none or on error.
  */
 uint32_t vb2ex_get_bootloader_count(void);
 
diff --git a/firmware/2lib/include/2recovery_reasons.h b/firmware/2lib/include/2recovery_reasons.h
index 514ee4f..e8cff42 100644
--- a/firmware/2lib/include/2recovery_reasons.h
+++ b/firmware/2lib/include/2recovery_reasons.h
@@ -14,7 +14,7 @@
  * Return a description of the recovery reason code.
  *
  * @param		recovery reason code
- * @returns A string literal with English description of the recovery reason
+ * @return A string literal with English description of the recovery reason
  */
 const char *vb2_get_recovery_reason_string(uint8_t code);
 
diff --git a/firmware/2lib/include/2ui.h b/firmware/2lib/include/2ui.h
index 77c5acf..2e1f365 100644
--- a/firmware/2lib/include/2ui.h
+++ b/firmware/2lib/include/2ui.h
@@ -219,7 +219,7 @@
  * If a timeout occurs, take the default boot action.
  *
  * @param ctx		Vboot context
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2_developer_menu(struct vb2_context *ctx);
 
@@ -230,7 +230,7 @@
  * encountered last boot. Wait for the user to physically reset or shut down.
  *
  * @param ctx		Vboot context
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2_broken_recovery_menu(struct vb2_context *ctx);
 
@@ -241,7 +241,7 @@
  * navigate the step-by-step recovery, or enter developer mode if allowed.
  *
  * @param ctx		Vboot context
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2_manual_recovery_menu(struct vb2_context *ctx);
 
@@ -252,7 +252,7 @@
  * diagnostic tests of various hardware components.
  *
  * @param ctx		Vboot context
- * @returns VB2_SUCCESS, or non-zero error code.
+ * @return VB2_SUCCESS, or non-zero error code.
  */
 vb2_error_t vb2_diagnostic_menu(struct vb2_context *ctx);
 
