|
Zephyr API 3.6.99
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
8#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_USBC_PD_H_
9#define ZEPHYR_INCLUDE_DT_BINDINGS_USBC_PD_H_
12#define PDO_TYPE_FIXED 0
13#define PDO_TYPE_BATT 1
15#define PDO_TYPE_APDO 3
17#define PDO_TYPE_SHIFT 30
18#define PDO_TYPE_MASK 0x3
20#define PDO_TYPE(t) ((t) << PDO_TYPE_SHIFT)
22#define PDO_VOLT_MASK 0x3ff
23#define PDO_CURR_MASK 0x3ff
24#define PDO_PWR_MASK 0x3ff
26#define PDO_FIXED_DUAL_ROLE (1 << 29)
27#define PDO_FIXED_SUSPEND (1 << 28)
28#define PDO_FIXED_HIGHER_CAP (1 << 28)
29#define PDO_FIXED_EXTPOWER (1 << 27)
30#define PDO_FIXED_USB_COMM (1 << 26)
31#define PDO_FIXED_DATA_SWAP (1 << 25)
32#define PDO_FIXED_VOLT_SHIFT 10
33#define PDO_FIXED_CURR_SHIFT 0
35#define PDO_FIXED_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_FIXED_VOLT_SHIFT)
36#define PDO_FIXED_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_FIXED_CURR_SHIFT)
38#define PDO_FIXED(mv, ma, flags) \
39 (PDO_TYPE(PDO_TYPE_FIXED) | (flags) | \
40 PDO_FIXED_VOLT(mv) | PDO_FIXED_CURR(ma))
44#define PDO_BATT_MAX_VOLT_SHIFT 20
45#define PDO_BATT_MIN_VOLT_SHIFT 10
46#define PDO_BATT_MAX_PWR_SHIFT 0
48#define PDO_BATT_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MIN_VOLT_SHIFT)
49#define PDO_BATT_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MAX_VOLT_SHIFT)
50#define PDO_BATT_MAX_POWER(mw) ((((mw) / 250) & PDO_PWR_MASK) << PDO_BATT_MAX_PWR_SHIFT)
52#define PDO_BATT(min_mv, max_mv, max_mw) \
53 (PDO_TYPE(PDO_TYPE_BATT) | PDO_BATT_MIN_VOLT(min_mv) | \
54 PDO_BATT_MAX_VOLT(max_mv) | PDO_BATT_MAX_POWER(max_mw))
56#define PDO_VAR_MAX_VOLT_SHIFT 20
57#define PDO_VAR_MIN_VOLT_SHIFT 10
58#define PDO_VAR_MAX_CURR_SHIFT 0
60#define PDO_VAR_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MIN_VOLT_SHIFT)
61#define PDO_VAR_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MAX_VOLT_SHIFT)
62#define PDO_VAR_MAX_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_VAR_MAX_CURR_SHIFT)
64#define PDO_VAR(min_mv, max_mv, max_ma) \
65 (PDO_TYPE(PDO_TYPE_VAR) | PDO_VAR_MIN_VOLT(min_mv) | \
66 PDO_VAR_MAX_VOLT(max_mv) | PDO_VAR_MAX_CURR(max_ma))
68#define APDO_TYPE_PPS 0
70#define PDO_APDO_TYPE_SHIFT 28
71#define PDO_APDO_TYPE_MASK 0x3
73#define PDO_APDO_TYPE(t) ((t) << PDO_APDO_TYPE_SHIFT)
75#define PDO_PPS_APDO_MAX_VOLT_SHIFT 17
76#define PDO_PPS_APDO_MIN_VOLT_SHIFT 8
77#define PDO_PPS_APDO_MAX_CURR_SHIFT 0
79#define PDO_PPS_APDO_VOLT_MASK 0xff
80#define PDO_PPS_APDO_CURR_MASK 0x7f
82#define PDO_PPS_APDO_MIN_VOLT(mv) \
83 ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MIN_VOLT_SHIFT)
84#define PDO_PPS_APDO_MAX_VOLT(mv) \
85 ((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MAX_VOLT_SHIFT)
86#define PDO_PPS_APDO_MAX_CURR(ma) \
87 ((((ma) / 50) & PDO_PPS_APDO_CURR_MASK) << PDO_PPS_APDO_MAX_CURR_SHIFT)
89#define PDO_PPS_APDO(min_mv, max_mv, max_ma) \
90 (PDO_TYPE(PDO_TYPE_APDO) | PDO_APDO_TYPE(APDO_TYPE_PPS) | \
91 PDO_PPS_APDO_MIN_VOLT(min_mv) | PDO_PPS_APDO_MAX_VOLT(max_mv) | \
92 PDO_PPS_APDO_MAX_CURR(max_ma))