def METHOD_NAME(self):
    """
    Retrieves the cause of the previous reboot
    Returns:
        A tuple (string, string) where the first element is a string
        containing the cause of the previous reboot. This string must be
        one of the predefined strings in this class. If the first string
        is "REBOOT_CAUSE_HARDWARE_OTHER", the second string can be used
        to pass a description of the reboot cause.
    """
    status, raw_cause = self._api_helper.ipmi_raw(
        IPMI_OEM_NETFN, IPMI_GET_REBOOT_CAUSE)
    hx_cause = raw_cause.split()[0] if status and len(
        raw_cause.split()) > 0 else 00
    reboot_cause = {
        "00": self.REBOOT_CAUSE_HARDWARE_OTHER,
        "11": self.REBOOT_CAUSE_POWER_LOSS,
        "22": self.REBOOT_CAUSE_NON_HARDWARE,
        "33": self.REBOOT_CAUSE_HARDWARE_OTHER,
        "44": self.REBOOT_CAUSE_NON_HARDWARE,
        "55": self.REBOOT_CAUSE_NON_HARDWARE,
        "66": self.REBOOT_CAUSE_WATCHDOG,
        "77": self.REBOOT_CAUSE_NON_HARDWARE
    }.get(hx_cause, self.REBOOT_CAUSE_HARDWARE_OTHER)
    description = {
        "00": "Unknown reason",
        "11": "The last reset is Power on reset",
        "22": "The last reset is soft-set CPU warm reset",
        "33": "The last reset is soft-set CPU cold reset",
        "44": "The last reset is CPU warm reset",
        "55": "The last reset is CPU cold reset",
        "66": "The last reset is watchdog reset",
        "77": "The last reset is power cycle reset"
    }.get(hx_cause, "Unknown reason")
    return (reboot_cause, description)