``ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES``       nested  Supported power limit
                                                       configuration ranges.
   ``ETHTOOL_A_PSE_PW_D_ID``                      u32  Index of the PSE power domain
+  ``ETHTOOL_A_PSE_PRIO_MAX``                     u32  Priority maximum configurable
+                                                      on the PoE PSE
+  ``ETHTOOL_A_PSE_PRIO``                         u32  Priority of the PoE PSE
+                                                      currently configured
   ==========================================  ======  =============================
 
 When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` attribute identifies
 The ``ETHTOOL_A_PSE_PW_D_ID`` attribute identifies the index of PSE power
 domain.
 
+When set, the optional ``ETHTOOL_A_PSE_PRIO_MAX`` attribute identifies
+the PSE maximum priority value.
+When set, the optional ``ETHTOOL_A_PSE_PRIO`` attributes is used to
+identifies the currently configured PSE priority.
+For a description of PSE priority attributes, see ``PSE_SET``.
+
 PSE_SET
 =======
 
   ``ETHTOOL_A_C33_PSE_ADMIN_CONTROL``        u32  Control PSE Admin state
   ``ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT``      u32  Control PoE PSE available
                                                   power limit
+  ``ETHTOOL_A_PSE_PRIO``                     u32  Control priority of the
+                                                  PoE PSE
   ======================================  ======  =============================
 
 When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` attribute is used
 classes. If power limit configuration based on classes is needed, the
 conversion can be done in user space, for example by ethtool.
 
+When set, the optional ``ETHTOOL_A_PSE_PRIO`` attributes is used to
+control the PSE priority. Allowed priority value are between zero and
+the value of ``ETHTOOL_A_PSE_PRIO_MAX`` attribute.
+
+A lower value indicates a higher priority, meaning that a priority value
+of 0 corresponds to the highest port priority.
+Port priority serves two functions:
+
+ - Power-up Order: After a reset, ports are powered up in order of their
+   priority from highest to lowest. Ports with higher priority
+   (lower values) power up first.
+ - Shutdown Order: When the power budget is exceeded, ports with lower
+   priority (higher values) are turned off first.
+
 PSE_NTF
 =======
 
 
                len += st->c33_pw_limit_nb_ranges *
                       (nla_total_size(0) +
                        nla_total_size(sizeof(u32)) * 2);
+       if (st->prio_max)
+               /* _PSE_PRIO_MAX + _PSE_PRIO */
+               len += nla_total_size(sizeof(u32)) * 2;
 
        return len;
 }
            pse_put_pw_limit_ranges(skb, st))
                return -EMSGSIZE;
 
+       if (st->prio_max &&
+           (nla_put_u32(skb, ETHTOOL_A_PSE_PRIO_MAX, st->prio_max) ||
+            nla_put_u32(skb, ETHTOOL_A_PSE_PRIO, st->prio)))
+               return -EMSGSIZE;
+
        return 0;
 }
 
                NLA_POLICY_RANGE(NLA_U32, ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED,
                                 ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED),
        [ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT] = { .type = NLA_U32 },
+       [ETHTOOL_A_PSE_PRIO] = { .type = NLA_U32 },
 };
 
 static int
        if (ret)
                return ret;
 
+       if (tb[ETHTOOL_A_PSE_PRIO]) {
+               unsigned int prio;
+
+               prio = nla_get_u32(tb[ETHTOOL_A_PSE_PRIO]);
+               ret = pse_ethtool_set_prio(phydev->psec, info->extack, prio);
+               if (ret)
+                       return ret;
+       }
+
        if (tb[ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT]) {
                unsigned int pw_limit;