Zephyr Project API 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
pd.h File Reference

Go to the source code of this file.

Macros

#define PDO_TYPE_FIXED   0
 
#define PDO_TYPE_BATT   1
 
#define PDO_TYPE_VAR   2
 
#define PDO_TYPE_APDO   3
 
#define PDO_TYPE_SHIFT   30
 
#define PDO_TYPE_MASK   0x3
 
#define PDO_TYPE(t)   ((t) << PDO_TYPE_SHIFT)
 
#define PDO_VOLT_MASK   0x3ff
 
#define PDO_CURR_MASK   0x3ff
 
#define PDO_PWR_MASK   0x3ff
 
#define PDO_FIXED_DUAL_ROLE   (1 << 29) /* Power role swap supported */
 
#define PDO_FIXED_SUSPEND   (1 << 28) /* USB Suspend supported (Source) */
 
#define PDO_FIXED_HIGHER_CAP   (1 << 28) /* Requires more than vSafe5V (Sink) */
 
#define PDO_FIXED_EXTPOWER   (1 << 27) /* Externally powered */
 
#define PDO_FIXED_USB_COMM   (1 << 26) /* USB communications capable */
 
#define PDO_FIXED_DATA_SWAP   (1 << 25) /* Data role swap supported */
 
#define PDO_FIXED_VOLT_SHIFT   10 /* 50mV units */
 
#define PDO_FIXED_CURR_SHIFT   0 /* 10mA units */
 
#define PDO_FIXED_VOLT(mv)   ((((mv) / 50) & PDO_VOLT_MASK) << PDO_FIXED_VOLT_SHIFT)
 
#define PDO_FIXED_CURR(ma)   ((((ma) / 10) & PDO_CURR_MASK) << PDO_FIXED_CURR_SHIFT)
 
#define PDO_FIXED(mv, ma, flags)
 
#define VSAFE5V   5000 /* mv units */
 
#define PDO_BATT_MAX_VOLT_SHIFT   20 /* 50mV units */
 
#define PDO_BATT_MIN_VOLT_SHIFT   10 /* 50mV units */
 
#define PDO_BATT_MAX_PWR_SHIFT   0 /* 250mW units */
 
#define PDO_BATT_MIN_VOLT(mv)   ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MIN_VOLT_SHIFT)
 
#define PDO_BATT_MAX_VOLT(mv)   ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MAX_VOLT_SHIFT)
 
#define PDO_BATT_MAX_POWER(mw)   ((((mw) / 250) & PDO_PWR_MASK) << PDO_BATT_MAX_PWR_SHIFT)
 
#define PDO_BATT(min_mv, max_mv, max_mw)
 
#define PDO_VAR_MAX_VOLT_SHIFT   20 /* 50mV units */
 
#define PDO_VAR_MIN_VOLT_SHIFT   10 /* 50mV units */
 
#define PDO_VAR_MAX_CURR_SHIFT   0 /* 10mA units */
 
#define PDO_VAR_MIN_VOLT(mv)   ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MIN_VOLT_SHIFT)
 
#define PDO_VAR_MAX_VOLT(mv)   ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MAX_VOLT_SHIFT)
 
#define PDO_VAR_MAX_CURR(ma)   ((((ma) / 10) & PDO_CURR_MASK) << PDO_VAR_MAX_CURR_SHIFT)
 
#define PDO_VAR(min_mv, max_mv, max_ma)
 
#define APDO_TYPE_PPS   0
 
#define PDO_APDO_TYPE_SHIFT   28 /* Only valid value currently is 0x0 - PPS */
 
#define PDO_APDO_TYPE_MASK   0x3
 
#define PDO_APDO_TYPE(t)   ((t) << PDO_APDO_TYPE_SHIFT)
 
#define PDO_PPS_APDO_MAX_VOLT_SHIFT   17 /* 100mV units */
 
#define PDO_PPS_APDO_MIN_VOLT_SHIFT   8 /* 100mV units */
 
#define PDO_PPS_APDO_MAX_CURR_SHIFT   0 /* 50mA units */
 
#define PDO_PPS_APDO_VOLT_MASK   0xff
 
#define PDO_PPS_APDO_CURR_MASK   0x7f
 
#define PDO_PPS_APDO_MIN_VOLT(mv)    ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MIN_VOLT_SHIFT)
 
#define PDO_PPS_APDO_MAX_VOLT(mv)    ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MAX_VOLT_SHIFT)
 
#define PDO_PPS_APDO_MAX_CURR(ma)    ((((ma) / 50) & PDO_PPS_APDO_CURR_MASK) << PDO_PPS_APDO_MAX_CURR_SHIFT)
 
#define PDO_PPS_APDO(min_mv, max_mv, max_ma)
 

Macro Definition Documentation

◆ APDO_TYPE_PPS

#define APDO_TYPE_PPS   0

◆ PDO_APDO_TYPE

#define PDO_APDO_TYPE (   t)    ((t) << PDO_APDO_TYPE_SHIFT)

◆ PDO_APDO_TYPE_MASK

#define PDO_APDO_TYPE_MASK   0x3

◆ PDO_APDO_TYPE_SHIFT

#define PDO_APDO_TYPE_SHIFT   28 /* Only valid value currently is 0x0 - PPS */

◆ PDO_BATT

#define PDO_BATT (   min_mv,
  max_mv,
  max_mw 
)
Value:
PDO_BATT_MAX_VOLT(max_mv) | PDO_BATT_MAX_POWER(max_mw))
#define PDO_BATT_MAX_POWER(mw)
Definition pd.h:50
#define PDO_TYPE_BATT
Definition pd.h:13
#define PDO_TYPE(t)
Definition pd.h:20
#define PDO_BATT_MIN_VOLT(mv)
Definition pd.h:48

◆ PDO_BATT_MAX_POWER

#define PDO_BATT_MAX_POWER (   mw)    ((((mw) / 250) & PDO_PWR_MASK) << PDO_BATT_MAX_PWR_SHIFT)

◆ PDO_BATT_MAX_PWR_SHIFT

#define PDO_BATT_MAX_PWR_SHIFT   0 /* 250mW units */

◆ PDO_BATT_MAX_VOLT

#define PDO_BATT_MAX_VOLT (   mv)    ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MAX_VOLT_SHIFT)

◆ PDO_BATT_MAX_VOLT_SHIFT

#define PDO_BATT_MAX_VOLT_SHIFT   20 /* 50mV units */

◆ PDO_BATT_MIN_VOLT

#define PDO_BATT_MIN_VOLT (   mv)    ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MIN_VOLT_SHIFT)

◆ PDO_BATT_MIN_VOLT_SHIFT

#define PDO_BATT_MIN_VOLT_SHIFT   10 /* 50mV units */

◆ PDO_CURR_MASK

#define PDO_CURR_MASK   0x3ff

◆ PDO_FIXED

#define PDO_FIXED (   mv,
  ma,
  flags 
)
Value:
flags
Definition parser.h:96
#define PDO_FIXED_CURR(ma)
Definition pd.h:36
#define PDO_TYPE_FIXED
Definition pd.h:12
#define PDO_FIXED_VOLT(mv)
Definition pd.h:35

◆ PDO_FIXED_CURR

#define PDO_FIXED_CURR (   ma)    ((((ma) / 10) & PDO_CURR_MASK) << PDO_FIXED_CURR_SHIFT)

◆ PDO_FIXED_CURR_SHIFT

#define PDO_FIXED_CURR_SHIFT   0 /* 10mA units */

◆ PDO_FIXED_DATA_SWAP

#define PDO_FIXED_DATA_SWAP   (1 << 25) /* Data role swap supported */

◆ PDO_FIXED_DUAL_ROLE

#define PDO_FIXED_DUAL_ROLE   (1 << 29) /* Power role swap supported */

◆ PDO_FIXED_EXTPOWER

#define PDO_FIXED_EXTPOWER   (1 << 27) /* Externally powered */

◆ PDO_FIXED_HIGHER_CAP

#define PDO_FIXED_HIGHER_CAP   (1 << 28) /* Requires more than vSafe5V (Sink) */

◆ PDO_FIXED_SUSPEND

#define PDO_FIXED_SUSPEND   (1 << 28) /* USB Suspend supported (Source) */

◆ PDO_FIXED_USB_COMM

#define PDO_FIXED_USB_COMM   (1 << 26) /* USB communications capable */

◆ PDO_FIXED_VOLT

#define PDO_FIXED_VOLT (   mv)    ((((mv) / 50) & PDO_VOLT_MASK) << PDO_FIXED_VOLT_SHIFT)

◆ PDO_FIXED_VOLT_SHIFT

#define PDO_FIXED_VOLT_SHIFT   10 /* 50mV units */

◆ PDO_PPS_APDO

#define PDO_PPS_APDO (   min_mv,
  max_mv,
  max_ma 
)
Value:
PDO_PPS_APDO_MIN_VOLT(min_mv) | PDO_PPS_APDO_MAX_VOLT(max_mv) | \
PDO_PPS_APDO_MAX_CURR(max_ma))
#define APDO_TYPE_PPS
Definition pd.h:68
#define PDO_PPS_APDO_MAX_VOLT(mv)
Definition pd.h:84
#define PDO_APDO_TYPE(t)
Definition pd.h:73
#define PDO_TYPE_APDO
Definition pd.h:15

◆ PDO_PPS_APDO_CURR_MASK

#define PDO_PPS_APDO_CURR_MASK   0x7f

◆ PDO_PPS_APDO_MAX_CURR

#define PDO_PPS_APDO_MAX_CURR (   ma)     ((((ma) / 50) & PDO_PPS_APDO_CURR_MASK) << PDO_PPS_APDO_MAX_CURR_SHIFT)

◆ PDO_PPS_APDO_MAX_CURR_SHIFT

#define PDO_PPS_APDO_MAX_CURR_SHIFT   0 /* 50mA units */

◆ PDO_PPS_APDO_MAX_VOLT

#define PDO_PPS_APDO_MAX_VOLT (   mv)     ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MAX_VOLT_SHIFT)

◆ PDO_PPS_APDO_MAX_VOLT_SHIFT

#define PDO_PPS_APDO_MAX_VOLT_SHIFT   17 /* 100mV units */

◆ PDO_PPS_APDO_MIN_VOLT

#define PDO_PPS_APDO_MIN_VOLT (   mv)     ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MIN_VOLT_SHIFT)

◆ PDO_PPS_APDO_MIN_VOLT_SHIFT

#define PDO_PPS_APDO_MIN_VOLT_SHIFT   8 /* 100mV units */

◆ PDO_PPS_APDO_VOLT_MASK

#define PDO_PPS_APDO_VOLT_MASK   0xff

◆ PDO_PWR_MASK

#define PDO_PWR_MASK   0x3ff

◆ PDO_TYPE

#define PDO_TYPE (   t)    ((t) << PDO_TYPE_SHIFT)

◆ PDO_TYPE_APDO

#define PDO_TYPE_APDO   3

◆ PDO_TYPE_BATT

#define PDO_TYPE_BATT   1

◆ PDO_TYPE_FIXED

#define PDO_TYPE_FIXED   0

◆ PDO_TYPE_MASK

#define PDO_TYPE_MASK   0x3

◆ PDO_TYPE_SHIFT

#define PDO_TYPE_SHIFT   30

◆ PDO_TYPE_VAR

#define PDO_TYPE_VAR   2

◆ PDO_VAR

#define PDO_VAR (   min_mv,
  max_mv,
  max_ma 
)
Value:
PDO_VAR_MAX_VOLT(max_mv) | PDO_VAR_MAX_CURR(max_ma))
#define PDO_TYPE_VAR
Definition pd.h:14
#define PDO_VAR_MIN_VOLT(mv)
Definition pd.h:60
#define PDO_VAR_MAX_CURR(ma)
Definition pd.h:62

◆ PDO_VAR_MAX_CURR

#define PDO_VAR_MAX_CURR (   ma)    ((((ma) / 10) & PDO_CURR_MASK) << PDO_VAR_MAX_CURR_SHIFT)

◆ PDO_VAR_MAX_CURR_SHIFT

#define PDO_VAR_MAX_CURR_SHIFT   0 /* 10mA units */

◆ PDO_VAR_MAX_VOLT

#define PDO_VAR_MAX_VOLT (   mv)    ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MAX_VOLT_SHIFT)

◆ PDO_VAR_MAX_VOLT_SHIFT

#define PDO_VAR_MAX_VOLT_SHIFT   20 /* 50mV units */

◆ PDO_VAR_MIN_VOLT

#define PDO_VAR_MIN_VOLT (   mv)    ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MIN_VOLT_SHIFT)

◆ PDO_VAR_MIN_VOLT_SHIFT

#define PDO_VAR_MIN_VOLT_SHIFT   10 /* 50mV units */

◆ PDO_VOLT_MASK

#define PDO_VOLT_MASK   0x3ff

◆ VSAFE5V

#define VSAFE5V   5000 /* mv units */