USBC_PD_POWER_DATA_OBJECT union (usbctypes.h)

Describes a power data object (PDO). For information about these members, see the Power Delivery specification.

Syntax

typedef union _USBC_PD_POWER_DATA_OBJECT {
  UINT32 U;
  struct {
    UINT32 Reserved : 30;
    UINT32 Type : 2;
  } Common;
  struct {
    UINT32 MaximumCurrentIn10mA : 10;
    UINT32 VoltageIn50mV : 10;
    UINT32 PeakCurrent : 2;
    UINT32 Reserved1 : 3;
    UINT32 DataRoleSwap : 1;
    UINT32 UsbCommunicationCapable : 1;
    UINT32 ExternallyPowered : 1;
    UINT32 UsbSuspendSupported : 1;
    UINT32 DualRolePower : 1;
    UINT32 FixedSupply : 2;
  } FixedSupplyPdo;
  struct {
    UINT32 MaximumAllowablePowerIn250mW : 10;
    UINT32 MinimumVoltageIn50mV : 10;
    UINT32 MaximumVoltageIn50mV : 10;
    UINT32 Battery : 2;
  } BatterySupplyPdo;
  struct {
    UINT32 MaximumCurrentIn10mA : 10;
    UINT32 MinimumVoltageIn50mV : 10;
    UINT32 MaximumVoltageIn50mV : 10;
    UINT32 VariableSupportNonBattery : 2;
  } VariableSupplyNonBatteryPdo;
  struct {
    UINT32 MaximumCurrentIn50mA : 7;
    UINT32 Reserved1 : 1;
    UINT32 MinimumVoltageIn100mV : 8;
    UINT32 Reserved2 : 1;
    UINT32 MaximumVoltageIn100mV : 8;
    UINT32 Reserved3 : 2;
    UINT32 PpsPowerLimited : 1;
    UINT32 AugmentedPowerDataObjectType : 2;
    UINT32 AugmentedPowerDataObject : 2;
  } ProgrammablePowerSupplyApdo;
  struct {
    UINT32 OperationalCurrentIn10mA : 10;
    UINT32 VoltageIn50mV : 10;
    UINT32 Reserved : 5;
    UINT32 DataRoleSwap : 1;
    UINT32 UsbCommunicationCapable : 1;
    UINT32 ExternallyPowered : 1;
    UINT32 HigherCapability : 1;
    UINT32 DualRolePower : 1;
    UINT32 FixedSupply : 2;
  } FixedSupplyPdoSink;
  struct {
    UINT32 OperationalPowerIn250mW : 10;
    UINT32 MinimumVoltageIn50mV : 10;
    UINT32 MaximumVoltageIn50mV : 10;
    UINT32 Battery : 2;
  } BatterySupplyPdoSink;
  struct {
    UINT32 OperationalCurrentIn10mA : 10;
    UINT32 MinimumVoltageIn50mV : 10;
    UINT32 MaximumVoltageIn50mV : 10;
    UINT32 VariableSupportNonBattery : 2;
  } VariableSupplyNonBatteryPdoSink;
} USBC_PD_POWER_DATA_OBJECT, *PUSBC_PD_POWER_DATA_OBJECT;

Members

U

Size of the structure.

Common

Common.Reserved

Reserved.

Common.Type

Type of power data object.

FixedSupplyPdo

Describing a fixed supply type power data object.

FixedSupplyPdo.MaximumCurrentIn10mA

Maximum current in multiples of 10 mA.

FixedSupplyPdo.VoltageIn50mV

Voltage in multiples of 50 mV.

FixedSupplyPdo.PeakCurrent

Peak current.

FixedSupplyPdo.Reserved1

Reserved for future use.

FixedSupplyPdo.DataRoleSwap

If set, indicates the power data object can perform a data role swap.

FixedSupplyPdo.UsbCommunicationCapable

If set, indicates the power data object is USB communication capable.

FixedSupplyPdo.ExternallyPowered

If set, indicates the power data object is externally powered.

FixedSupplyPdo.UsbSuspendSupported

Indicates support for USB suspend.

FixedSupplyPdo.DualRolePower

Dual role power.

FixedSupplyPdo.FixedSupply

Fixed supply.

BatterySupplyPdo

Contains bitfields describing a variable-supply non-battery PD object.

BatterySupplyPdo.MaximumAllowablePowerIn250mW

Describes the maximum voltage in multiples of 250mV.

BatterySupplyPdo.MinimumVoltageIn50mV

Describes the minimum voltage in multiples of 50mV.

BatterySupplyPdo.MaximumVoltageIn50mV

Describes the maximum voltage in multiples of 50mV.

BatterySupplyPdo.Battery

Battery type.

VariableSupplyNonBatteryPdo

Contains bitfields describing a variable-supply non-battery PD object.

VariableSupplyNonBatteryPdo.MaximumCurrentIn10mA

Describes the maximum current in multiples of 10 mA.

VariableSupplyNonBatteryPdo.MinimumVoltageIn50mV

Describes the minimum current in multiples of 50 mA.

VariableSupplyNonBatteryPdo.MaximumVoltageIn50mV

Describes the maximum voltage in multiples of 10 mA.

VariableSupplyNonBatteryPdo.VariableSupportNonBattery

Variable Support Non Battery type.

ProgrammablePowerSupplyApdo

Describing a programmable power supply augmented power delivery object.

ProgrammablePowerSupplyApdo.MaximumCurrentIn50mA

Describes the maximum current in multiples of 50 mA.

ProgrammablePowerSupplyApdo.Reserved1

Reserved, do not use.

ProgrammablePowerSupplyApdo.MinimumVoltageIn100mV

Describes the minimum voltage in multiples of 100 mV.

ProgrammablePowerSupplyApdo.Reserved2

Reserved, do not use.

ProgrammablePowerSupplyApdo.MaximumVoltageIn100mV

Describes the maximum voltage in multiples of 100 mV.

ProgrammablePowerSupplyApdo.Reserved3

Reserved, do not use.

ProgrammablePowerSupplyApdo.PpsPowerLimited

Power limited supply.

ProgrammablePowerSupplyApdo.AugmentedPowerDataObjectType

Describes a USBC augmented power data object type.

ProgrammablePowerSupplyApdo.AugmentedPowerDataObject

Describes a USBC power data object type.

FixedSupplyPdoSink

Describing a fixed supply type power data object.

FixedSupplyPdoSink.OperationalCurrentIn10mA

Describes the operational current in multiples of 10 mA.

FixedSupplyPdoSink.VoltageIn50mV

Voltage in multiples of 50 mV.

FixedSupplyPdoSink.Reserved

Reserved.

FixedSupplyPdoSink.DataRoleSwap

If set, indicates the power data object can perform a data role swap.

FixedSupplyPdoSink.UsbCommunicationCapable

If set, indicates the power data object is USB communication capable.

FixedSupplyPdoSink.ExternallyPowered

If set, indicates the power data object is externally powered.

FixedSupplyPdoSink.HigherCapability

Power data object has a higher capability.

FixedSupplyPdoSink.DualRolePower

Dual role power.

FixedSupplyPdoSink.FixedSupply

Fixed supply.

BatterySupplyPdoSink

Contains bitfields describing a variable-supply non-battery PD object.

BatterySupplyPdoSink.OperationalPowerIn250mW

Describes the maximum voltage in multiples of 250mV.

BatterySupplyPdoSink.MinimumVoltageIn50mV

Describes the minimum voltage in multiples of 50mV.

BatterySupplyPdoSink.MaximumVoltageIn50mV

Describes the maximum voltage in multiples of 50mV.

BatterySupplyPdoSink.Battery

Battery type.

VariableSupplyNonBatteryPdoSink

Contains bit fields describing a battery supply power data object.

VariableSupplyNonBatteryPdoSink.OperationalCurrentIn10mA

Describes the operational current in multiples of 10 mA.

VariableSupplyNonBatteryPdoSink.MinimumVoltageIn50mV

Describes the minimum voltage in multiples of 50mV.

VariableSupplyNonBatteryPdoSink.MaximumVoltageIn50mV

Describes the maximum voltage in multiples of 50mV.

VariableSupplyNonBatteryPdoSink.VariableSupportNonBattery

Variable Support Non Battery type.

Requirements

Requirement Value
Minimum KMDF version 1.27
Minimum UMDF version N/A
Header usbctypes.h (include usbctypes.h)