diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt
index d682635d..b9837661 100644
--- a/docs/reference/api/ModemManager-sections.txt
+++ b/docs/reference/api/ModemManager-sections.txt
@@ -21,6 +21,7 @@ MMModemLock
MMModemMode
MMModemState
MMModemStateChangeReason
+MMModemPowerState
MMSmsPduType
MMSmsState
MMSmsDeliveryState
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 6b874e05..61f5e83d 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -954,6 +954,7 @@ mm_bearer_allowed_auth_build_string_from_mask
mm_modem_capability_build_string_from_mask
mm_modem_state_get_string
mm_modem_state_change_reason_get_string
+mm_modem_power_state_get_string
mm_modem_lock_get_string
mm_modem_access_technology_build_string_from_mask
mm_modem_mode_build_string_from_mask
@@ -977,6 +978,7 @@ mm_modem_capability_get_string
mm_modem_lock_build_string_from_mask
mm_modem_state_build_string_from_mask
mm_modem_state_change_reason_build_string_from_mask
+mm_modem_power_state_build_string_from_mask
mm_modem_access_technology_get_string
mm_modem_mode_get_string
mm_modem_band_build_string_from_mask
@@ -1018,6 +1020,7 @@ MM_TYPE_MODEM_LOCK
MM_TYPE_MODEM_MODE
MM_TYPE_MODEM_STATE
MM_TYPE_MODEM_STATE_CHANGE_REASON
+MM_TYPE_MODEM_POWER_STATE
MM_TYPE_SMS_DELIVERY_STATE
MM_TYPE_SMS_PDU_TYPE
MM_TYPE_SMS_STATE
@@ -1042,6 +1045,7 @@ mm_modem_lock_get_type
mm_modem_mode_get_type
mm_modem_state_change_reason_get_type
mm_modem_state_get_type
+mm_modem_power_state_get_type
mm_sms_delivery_state_get_type
mm_sms_pdu_type_get_type
mm_sms_state_get_type
@@ -1418,6 +1422,7 @@ mm_gdbus_modem_get_own_numbers
mm_gdbus_modem_dup_own_numbers
mm_gdbus_modem_get_plugin
mm_gdbus_modem_dup_plugin
+mm_gdbus_modem_get_power_state
mm_gdbus_modem_get_primary_port
mm_gdbus_modem_dup_primary_port
mm_gdbus_modem_get_preferred_mode
@@ -1438,6 +1443,9 @@ mm_gdbus_modem_dup_unlock_retries
mm_gdbus_modem_call_enable
mm_gdbus_modem_call_enable_finish
mm_gdbus_modem_call_enable_sync
+mm_gdbus_modem_call_set_power_state
+mm_gdbus_modem_call_set_power_state_finish
+mm_gdbus_modem_call_set_power_state_sync
mm_gdbus_modem_call_create_bearer
mm_gdbus_modem_call_create_bearer_finish
mm_gdbus_modem_call_create_bearer_sync
@@ -1484,6 +1492,7 @@ mm_gdbus_modem_set_revision
mm_gdbus_modem_set_signal_quality
mm_gdbus_modem_set_sim
mm_gdbus_modem_set_state
+mm_gdbus_modem_set_power_state
mm_gdbus_modem_set_supported_bands
mm_gdbus_modem_set_supported_modes
mm_gdbus_modem_set_unlock_required
@@ -1493,6 +1502,7 @@ mm_gdbus_modem_complete_command
mm_gdbus_modem_complete_create_bearer
mm_gdbus_modem_complete_delete_bearer
mm_gdbus_modem_complete_enable
+mm_gdbus_modem_complete_set_power_state
mm_gdbus_modem_complete_factory_reset
mm_gdbus_modem_complete_list_bearers
mm_gdbus_modem_complete_reset
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index 543baab2..e7554160 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -128,6 +128,22 @@ typedef enum { /*< underscore_name=mm_modem_state >*/
MM_MODEM_STATE_CONNECTED = 11
} MMModemState;
+/**
+ * MMModemPowerState:
+ * @MM_MODEM_POWER_STATE_UNKNOWN: Unknown power state.
+ * @MM_MODEM_POWER_STATE_OFF: Off.
+ * @MM_MODEM_POWER_STATE_LOW: Low-power mode.
+ * @MM_MODEM_POWER_STATE_ON: Full power mode.
+ *
+ * Power state of the modem.
+ */
+typedef enum { /*< underscore_name=mm_modem_power_state >*/
+ MM_MODEM_POWER_STATE_UNKNOWN = 0,
+ MM_MODEM_POWER_STATE_OFF = 1,
+ MM_MODEM_POWER_STATE_LOW = 2,
+ MM_MODEM_POWER_STATE_ON = 3
+} MMModemPowerState;
+
/**
* MMModemStateChangeReason:
* @MM_MODEM_STATE_CHANGE_REASON_UNKNOWN: Reason unknown or not reportable.
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml
index 9a1a5126..dfcf97e3 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.xml
@@ -124,6 +124,18 @@
+
+
+
+
+
+
+
+