[sw] Update GPIO DIF Return Codes

This is based on the naming and return code order proposed in #2212.

Signed-off-by: Sam Elliott <selliott@lowrisc.org>
diff --git a/sw/device/lib/dif/dif_gpio.c b/sw/device/lib/dif/dif_gpio.c
index 3f774d8..b4801a5 100644
--- a/sw/device/lib/dif/dif_gpio.c
+++ b/sw/device/lib/dif/dif_gpio.c
@@ -88,7 +88,7 @@
 dif_gpio_result_t dif_gpio_init(const dif_gpio_config_t *config,
                                 dif_gpio_t *gpio) {
   if (config == NULL || gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   // Save internal state in the given `dif_gpio_t` instance.
@@ -96,12 +96,12 @@
   // Reset the GPIO device at the given `base_addr`.
   dif_gpio_reset(gpio);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_reset(const dif_gpio_t *gpio) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_write32(gpio->base_addr, GPIO_INTR_ENABLE_REG_OFFSET, 0);
@@ -115,201 +115,201 @@
   // Also clear all pending interrupts
   mmio_region_write32(gpio->base_addr, GPIO_INTR_STATE_REG_OFFSET, 0xFFFFFFFFu);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_all_read(const dif_gpio_t *gpio,
                                     uint32_t *pin_values) {
   if (gpio == NULL || pin_values == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   *pin_values = mmio_region_read32(gpio->base_addr, GPIO_DATA_IN_REG_OFFSET);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_pin_read(const dif_gpio_t *gpio, uint32_t index,
                                     bool *pin_value) {
   if (gpio == NULL || pin_value == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   *pin_value =
       mmio_region_get_bit32(gpio->base_addr, GPIO_DATA_IN_REG_OFFSET, index);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_all_write(const dif_gpio_t *gpio, uint32_t val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_write32(gpio->base_addr, GPIO_DIRECT_OUT_REG_OFFSET, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_pin_write(const dif_gpio_t *gpio, uint32_t index,
                                      bool val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   gpio_masked_bit_write(gpio, GPIO_MASKED_OUT_LOWER_REG_OFFSET,
                         GPIO_MASKED_OUT_UPPER_REG_OFFSET, index, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_masked_write(const dif_gpio_t *gpio, uint32_t mask,
                                         uint32_t val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   gpio_masked_write(gpio, GPIO_MASKED_OUT_LOWER_REG_OFFSET,
                     GPIO_MASKED_OUT_UPPER_REG_OFFSET, mask, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_output_mode_all_set(const dif_gpio_t *gpio,
                                                uint32_t val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_write32(gpio->base_addr, GPIO_DIRECT_OE_REG_OFFSET, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_output_mode_pin_set(const dif_gpio_t *gpio,
                                                uint32_t index, bool val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   gpio_masked_bit_write(gpio, GPIO_MASKED_OE_LOWER_REG_OFFSET,
                         GPIO_MASKED_OE_UPPER_REG_OFFSET, index, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_output_mode_masked_set(const dif_gpio_t *gpio,
                                                   uint32_t mask, uint32_t val) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   gpio_masked_write(gpio, GPIO_MASKED_OE_LOWER_REG_OFFSET,
                     GPIO_MASKED_OE_UPPER_REG_OFFSET, mask, val);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_pin_test(const dif_gpio_t *gpio,
                                         uint32_t index) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_write32(gpio->base_addr, GPIO_INTR_TEST_REG_OFFSET,
                       index_to_mask(index));
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_all_read(const dif_gpio_t *gpio,
                                         uint32_t *interrupt_states) {
   if (gpio == NULL || interrupt_states == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   *interrupt_states =
       mmio_region_read32(gpio->base_addr, GPIO_INTR_STATE_REG_OFFSET);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_pin_read(const dif_gpio_t *gpio, uint32_t index,
                                         bool *interrupt_state) {
   if (gpio == NULL || interrupt_state == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   *interrupt_state =
       mmio_region_get_bit32(gpio->base_addr, GPIO_INTR_STATE_REG_OFFSET, index);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_pin_clear(const dif_gpio_t *gpio,
                                          uint32_t index) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_write32(gpio->base_addr, GPIO_INTR_STATE_REG_OFFSET,
                       index_to_mask(index));
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_input_noise_filter_masked_enable(
     const dif_gpio_t *gpio, uint32_t mask) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_nonatomic_set_mask32(
       gpio->base_addr, GPIO_CTRL_EN_INPUT_FILTER_REG_OFFSET, mask, 0);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_input_noise_filter_masked_disable(
     const dif_gpio_t *gpio, uint32_t mask) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_nonatomic_clear_mask32(
       gpio->base_addr, GPIO_CTRL_EN_INPUT_FILTER_REG_OFFSET, mask, 0);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_masked_enable(const dif_gpio_t *gpio,
                                              uint32_t mask) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_nonatomic_set_mask32(gpio->base_addr, GPIO_INTR_ENABLE_REG_OFFSET,
                                    mask, 0);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_masked_disable(const dif_gpio_t *gpio,
                                               uint32_t mask) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   mmio_region_nonatomic_clear_mask32(gpio->base_addr,
                                      GPIO_INTR_ENABLE_REG_OFFSET, mask, 0);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_trigger_masked_disable(const dif_gpio_t *gpio,
                                                       uint32_t mask) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   // Disable all interrupt triggers for the given mask
@@ -322,14 +322,14 @@
   mmio_region_nonatomic_clear_mask32(
       gpio->base_addr, GPIO_INTR_CTRL_EN_LVLLOW_REG_OFFSET, mask, 0);
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
 
 dif_gpio_result_t dif_gpio_irq_trigger_masked_config(const dif_gpio_t *gpio,
                                                      uint32_t mask,
                                                      dif_gpio_irq_t config) {
   if (gpio == NULL) {
-    return kDifGpioResultInvalidArgument;
+    return kDifGpioBadArg;
   }
 
   // Disable all interrupt triggers for the given mask
@@ -371,8 +371,8 @@
           gpio->base_addr, GPIO_INTR_CTRL_EN_LVLHIGH_REG_OFFSET, mask, 0);
       break;
     default:
-      return kDifGpioResultGeneralError;
+      return kDifGpioError;
   }
 
-  return kDifGpioResultOK;
+  return kDifGpioOk;
 }
diff --git a/sw/device/lib/dif/dif_gpio.h b/sw/device/lib/dif/dif_gpio.h
index 8d09ee7..8253703 100644
--- a/sw/device/lib/dif/dif_gpio.h
+++ b/sw/device/lib/dif/dif_gpio.h
@@ -25,15 +25,28 @@
 
 /**
  * Generic return codes for the functions in this library.
- *
- * `kDifGpioResultInvalidArgument` signals that there is a problem with the
- * argument(s) but the function did not have any side effects.
- * `kDifGpioResultGeneralError` covers other error cases.
  */
 typedef enum dif_gpio_result {
-  kDifGpioResultOK,
-  kDifGpioResultInvalidArgument,
-  kDifGpioResultGeneralError,
+  /**
+   * The function succeeded.
+   */
+  kDifGpioOk,
+  /**
+   * The function failed a non-specific assertion.
+   *
+   * This error is not recoverable.
+   */
+  kDifGpioError,
+  /**
+   * There is a problem with the argument(s) to the function.
+   *
+   * This return code is only returned before the function has any side effects.
+   *
+   * This error is recoverable and the operation can be retried after correcting
+   * the problem with the argument(s).
+   */
+  kDifGpioBadArg,
+
 } dif_gpio_result_t;
 
 /**
@@ -58,8 +71,8 @@
  * @param config Configuration for initializing a GPIO device.
  * @param gpio GPIO instance that will store the internal state of the
  * initialized GPIO device.
- * @return `kDifGpioResultInvalidArgument` if `config` or `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `config` or `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_init(const dif_gpio_config_t *config,
                                 dif_gpio_t *gpio);
@@ -71,8 +84,8 @@
  * reset values. Disables interrupts, output, and input filter.
  *
  * @param gpio GPIO instance
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_reset(const dif_gpio_t *gpio);
 
@@ -85,8 +98,8 @@
  *
  * @param gpio GPIO instance.
  * @param pin_values Pin values.
- * @return `kDifGpioResultInvalidArgument` if `gpio` or `pin_values` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` or `pin_values` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_all_read(const dif_gpio_t *gpio,
                                     uint32_t *pin_values);
@@ -101,8 +114,8 @@
  * @param gpio GPIO instance.
  * @param index Zero-based index of the pin to read from.
  * @param pin_value Pin value.
- * @return `kDifGpioResultInvalidArgument` if `gpio` or `pin_values` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` or `pin_values` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_pin_read(const dif_gpio_t *gpio, uint32_t index,
                                     bool *pin_value);
@@ -114,8 +127,8 @@
  *
  * @param gpio GPIO instance.
  * @param val Value to write.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_all_write(const dif_gpio_t *gpio, uint32_t val);
 
@@ -127,8 +140,8 @@
  * @param gpio GPIO instance.
  * @param index Zero-based index of the pin to write to.
  * @param val Value to write.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_pin_write(const dif_gpio_t *gpio, uint32_t index,
                                      bool val);
@@ -141,8 +154,8 @@
  * @param gpio GPIO instance
  * @param mask Mask that identifies the pins to write to.
  * @param val Value to write.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_masked_write(const dif_gpio_t *gpio, uint32_t mask,
                                         uint32_t val);
@@ -154,8 +167,8 @@
  *
  * @param gpio GPIO instance.
  * @param val Output modes of the pins.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_output_mode_all_set(const dif_gpio_t *gpio,
                                                uint32_t val);
@@ -168,8 +181,8 @@
  * @param gpio GPIO instance
  * @param index Zero-based index of the pin.
  * @param val Output mode of the pin.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_output_mode_pin_set(const dif_gpio_t *gpio,
                                                uint32_t index, bool val);
@@ -182,8 +195,8 @@
  * @param gpio GPIO instance
  * @param mask Mask that identifies the pins whose output modes will be set.
  * @param val Output modes of the pins.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_output_mode_masked_set(const dif_gpio_t *gpio,
                                                   uint32_t mask, uint32_t val);
@@ -197,8 +210,8 @@
  *
  * @param gpio GPIO instance.
  * @param index Zero-based index of the pin.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_pin_test(const dif_gpio_t *gpio, uint32_t index);
 
@@ -207,8 +220,8 @@
  *
  * @param gpio GPIO instance.
  * @param interrupt_states Interrupt states of all pins.
- * @return `kDifGpioResultInvalidArgument` if `gpio` or `interrupt_states` is
- * `NULL`, `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` or `interrupt_states` is
+ * `NULL`, `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_all_read(const dif_gpio_t *gpio,
                                         uint32_t *interrupt_states);
@@ -220,8 +233,8 @@
  * @param index Zero-based index of the pin.
  * @param interrupt_state Interrupt state of the pin. True if there is a pending
  * interrupt, false otherwise.
- * @return `kDifGpioResultInvalidArgument` if `gpio` or `interrupt_state` is
- * `NULL`, `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` or `interrupt_state` is
+ * `NULL`, `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_pin_read(const dif_gpio_t *gpio, uint32_t index,
                                         bool *interrupt_state);
@@ -231,8 +244,8 @@
  *
  * @param gpio GPIO instance.
  * @param index Zero-based index of the pin.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_pin_clear(const dif_gpio_t *gpio,
                                          uint32_t index);
@@ -246,8 +259,8 @@
  * @param gpio GPIO instance.
  * @param mask Mask that identifies the pins for which input noise filter will
  * be enabled.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_input_noise_filter_masked_enable(
     const dif_gpio_t *gpio, uint32_t mask);
@@ -260,8 +273,8 @@
  * @param gpio GPIO instance.
  * @param mask Mask that identifies the pins for which input noise filter will
  * be disabled.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_input_noise_filter_masked_disable(
     const dif_gpio_t *gpio, uint32_t mask);
@@ -277,8 +290,8 @@
  * @param gpio GPIO instance.
  * @param mask Mask that identifies the pins for which interrupts will be
  * enabled.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_masked_enable(const dif_gpio_t *gpio,
                                              uint32_t mask);
@@ -291,8 +304,8 @@
  * @param gpio GPIO instance.
  * @param mask Mask that identifies the pins for which interrupts will be
  * disabled.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_masked_disable(const dif_gpio_t *gpio,
                                               uint32_t mask);
@@ -306,8 +319,8 @@
  * @param gpio GPIO instance.
  * @param mask Mask that identifies the pins whose interrupt triggers will be
  * disabled.
- * @return `kDifGpioResultInvalidArgument` if `gpio` is `NULL`,
- * `kDifGpioResultOK` otherwise.
+ * @return `kDifGpioBadArg` if `gpio` is `NULL`,
+ * `kDifGpioOk` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_trigger_masked_disable(const dif_gpio_t *gpio,
                                                       uint32_t mask);
@@ -323,8 +336,8 @@
  * @param mask Mask that identifies the pins whose interrupt triggers will be
  * configured.
  * @param config New configuration of interrupt triggers.
- * @return `kDifGpioResultOK` if the function is successful,
- * `kDifGpioResultInvalidArgument` otherwise.
+ * @return `kDifGpioOk` if the function is successful,
+ * `kDifGpioBadArg` otherwise.
  */
 dif_gpio_result_t dif_gpio_irq_trigger_masked_config(const dif_gpio_t *gpio,
                                                      uint32_t mask,