Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
59 #define USBCPOWER_REG_MODE 0x03
60 #define USBCPOWER_MODE_REG_SIZE 5
61 #define USBCPOWER_REG_TYPE 0x04
62 #define USBCPOWER_TYPE_REG_SIZE 5
63 #define USBCPOWER_REG_CUSTUSE 0x06
64 #define USBCPOWER_CUSTUSE_REG_SIZE 9
65 #define USBCPOWER_REG_CMD1 0x08
66 #define USBCPOWER_CMD1_REG_SIZE 5
67 #define USBCPOWER_REG_DATA 0x09
68 #define USBCPOWER_DATA_REG_SIZE 65
69 #define USBCPOWER_REG_DEVICE_CAP 0x0D
70 #define USBCPOWER_DEVICE_CAP_REG_SIZE 5
71 #define USBCPOWER_REG_VERSION 0x0F
72 #define USBCPOWER_VERSION_REG_SIZE 5
73 #define USBCPOWER_REG_INT_EVENT1 0x14
74 #define USBCPOWER_INT_EVENT1_REG_SIZE 15
75 #define USBCPOWER_REG_INT_MASK1 0x16
76 #define USBCPOWER_INT_MASK1_REG_SIZE 12
77 #define USBCPOWER_REG_INT_CLEAR1 0x18
78 #define USBCPOWER_INT_CLEAR1_REG_SIZE 12
79 #define USBCPOWER_REG_STATUS 0x1A
80 #define USBCPOWER_STATUS_REG_SIZE 6
81 #define USBCPOWER_REG_POWER_PATH_STATUS 0x26
82 #define USBCPOWER_POWER_PATH_STATUS_REG_SIZE 6
83 #define USBCPOWER_REG_PORT_CONTROL 0x29
84 #define USBCPOWER_PORT_CONTROL_REG_SIZE 5
85 #define USBCPOWER_REG_BOOT_STATUS 0x2D
86 #define USBCPOWER_BOOT_STATUS_REG_SIZE 6
87 #define USBCPOWER_REG_BUILD_DESC 0x2E
88 #define USBCPOWER_BUILD_DESC_SIZE 50
89 #define USBCPOWER_REG_DEVICE_INFO 0x2F
90 #define USBCPOWER_DEVICE_INFO_REG_SIZE 41
91 #define USBCPOWER_REG_RX_SOURCE_CAPS 0x30
92 #define USBCPOWER_RX_SOURCE_CAPS_REG_SIZE 30
93 #define USBCPOWER_REG_RX_SINK_CAPS 0x31
94 #define USBCPOWER_RX_SINK_CAPS_REG_SIZE 30
95 #define USBCPOWER_REG_TX_SOURCE_CAPS 0x32
96 #define USBCPOWER_TX_SOURCE_CAPS_REG_SIZE 32
97 #define USBCPOWER_REG_TX_SINK_CAPS 0x33
98 #define USBCPOWER_TX_SINK_CAPS_REG_SIZE 30
99 #define USBCPOWER_REG_ACTIVE_CONTRACT_PDO 0x34
100 #define USBCPOWER_ACTIVE_CONTRACT_PDO_REG_SIZE 7
101 #define USBCPOWER_REG_ACTIVE_CONTRACT_RDO 0x35
102 #define USBCPOWER_ACTIVE_CONTRACT_RDO_REG_SIZE 5
103 #define USBCPOWER_REG_POWER_STATUS 0x3F
104 #define USBCPOWER_POWER_STATUS_REG_SIZE 3
105 #define USBCPOWER_REG_PD_STATUS 0x40
106 #define USBCPOWER_PD_STATUS_REG_SIZE 5
107 #define USBCPOWER_REG_TYPEC_STATE 0x69
108 #define USBCPOWER_TYPEC_STATE_REG_SIZE 5
109 #define USBCPOWER_REG_GPIO_STATUS 0x72
110 #define USBCPOWER_GPIO_STATUS_REG_SIZE 9
128 #define USBCPOWER_CAP_POWER_ROLE_M 0x03
129 #define USBCPOWER_CAP_USBPD_CAP_M 0x04
130 #define USBCPOWER_CAP_I2CMLEVEL_VOLT_M 0x80
136 #define USBCPOWER_STATUS_PLUG_PRESENT_M 0x01
137 #define USBCPOWER_STATUS_CONN_STATE_M 0x0E
138 #define USBCPOWER_STATUS_PLUG_OR_M 0x10
139 #define USBCPOWER_STATUS_PORT_ROLE_M 0x20
140 #define USBCPOWER_STATUS_DATA_ROLE_M 0x40
141 #define USBCPOWER_STATUS_VBUS_STATUS_M 0x30
142 #define USBCPOWER_STATUS_USB_HOST_PRSNT_M 0xC0
143 #define USBCPOWER_STATUS_ACT_LEGACY_M 0x03
144 #define USBCPOWER_STATUS_BIST_M 0x08
150 #define USBCPOWER_RSP_OK 0x00
151 #define USBCPOWER_RSP_PBMs "PBMs"
152 #define USBCPOWER_RSP_PTCH "PTCH"
153 #define USBCPOWER_RSP_APP "APP "
154 #define USBCPOWER_RSP_BOOT "BOOT"
155 #define USBCPOWER_RSP_DEVICE_INFO_NAME "TPS65992"
161 #define USBCPOWER_CMD_SWSk "4SWSk"
162 #define USBCPOWER_CMD_SWSr "4SWSr"
163 #define USBCPOWER_CMD_SWDF "4SWDF"
164 #define USBCPOWER_CMD_SWUF "4SWUF"
165 #define USBCPOWER_CMD_GSkC "4GSkC"
166 #define USBCPOWER_CMD_GSrC "4GSrC"
167 #define USBCPOWER_CMD_SSrC "4SSrC"
168 #define USBCPOWER_CMD_PTCH "4PTCH"
169 #define USBCPOWER_CMD_GO2P "4GO2P"
170 #define USBCPOWER_CMD_PBMs "4PBMs"
171 #define USBCPOWER_CMD_PBMc "4PBMc"
172 #define USBCPOWER_CMD_PBMe "4PBMe"
178 #define USBCPOWER_MODE_PTCH 0x00
179 #define USBCPOWER_MODE_APP 0x01
180 #define USBCPOWER_MODE_BOOT 0x02
181 #define USBCPOWER_MODE_UNKNOWN 0x03
182 #define USBCPOWER_PD_CON_MODE_SOURCE 0x00
183 #define USBCPOWER_PD_CON_MODE_SINK 0x01
184 #define USBCPOWER_PD_MODE_SELECTOR USBCPOWER_PD_CON_MODE_SOURCE
190 #define USBCPOWER_STATUS_NO_CONNECTION 0x00
191 #define USBCPOWER_STATUS_PORT_DISABLED 0x01
192 #define USBCPOWER_STATUS_AUDIO_CONNECTION 0x02
193 #define USBCPOWER_STATUS_DEBUG_CONNECTION 0x03
194 #define USBCPOWER_STATUS_NO_CONNECTION_Ra 0x04
195 #define USBCPOWER_STATUS_RESERVED 0x05
196 #define USBCPOWER_STATUS_CONNECT_NO_Ra 0x06
197 #define USBCPOWER_PWR_STATUS_USB 0x00
198 #define USBCPOWER_PWR_STATUS_TYPE_C_1_5A 0x01
199 #define USBCPOWER_PWR_STATUS_TYPE_C_3_0A 0x02
200 #define USBCPOWER_PWR_STATUS_CHG_ADV_DISABLE 0x00
201 #define USBCPOWER_PWR_STATUS_CHG_ADV_PROCESS 0x01
202 #define USBCPOWER_PWR_STATUS_CHG_ADV_COMPLETE 0x02
209 #define USBCPOWER_DEVICE_ADDRESS 0x21
227 #define USBCPOWER_MAP_MIKROBUS( cfg, mikrobus ) \
228 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
229 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
230 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
337 uint32_t source_pdo[ 8 ];
339 uint32_t sink_pdo[ 8 ];
751 #endif // USBCPOWER_H
uint8_t rev_id
Definition: usbcpower.h:326
uint8_t master_tsd
Definition: usbcpower.h:324
uint8_t patch_downloader
Definition: usbcpower.h:323
uint8_t acting_as_legacy
Definition: usbcpower.h:294
err_t usbcpower_device_info(usbcpower_t *ctx, uint8_t *device_info)
USB-C Power device info function.
err_t usbcpower_complete_patch_burst_mode(usbcpower_t *ctx, uint32_t *response)
USB-C Power complete the patch burst mode function.
uint8_t pd_role
Definition: usbcpower.h:365
err_t usbcpower_get_pwr_status(usbcpower_t *ctx, usbcpower_pwr_status_t *pwr_status)
USB-C Power gets PWR status function.
pin_name_t sda
Definition: usbcpower.h:259
uint8_t type_c_current
Definition: usbcpower.h:351
uint8_t usbcpower_get_int_pin(usbcpower_t *ctx)
USB-C Power gets interrupt function.
err_t usbcpower_get_device_mode(usbcpower_t *ctx, uint8_t *device_mode)
USB-C Power get device mode function.
uint8_t pp_cable1_ovc
Definition: usbcpower.h:309
err_t usbcpower_get_status(usbcpower_t *ctx, usbcpower_status_t *status)
USB-C Power gets status function.
uint8_t port_type
Definition: usbcpower.h:364
uint8_t dead_battery_flag
Definition: usbcpower.h:321
err_t usbcpower_get_pd_status(usbcpower_t *ctx, usbcpower_pd_status_t *pd_status)
USB-C Power gets PD status function.
USB-C Power Click rx source/sink caps object.
Definition: usbcpower.h:335
err_t usbcpower_generic_write(usbcpower_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
USB-C Power I2C writing function.
err_t usbcpower_init(usbcpower_t *ctx, usbcpower_cfg_t *cfg)
USB-C Power initialization function.
uint8_t bist
Definition: usbcpower.h:295
uint8_t charger_detect
Definition: usbcpower.h:352
uint8_t port_role
Definition: usbcpower.h:290
uint8_t eeprom_slave_address
Definition: usbcpower.h:276
USB-C Power Click power path status object.
Definition: usbcpower.h:304
digital_in_t int_pin
Definition: usbcpower.h:242
uint8_t conn_state
Definition: usbcpower.h:288
USB-C Power Click boot path status object.
Definition: usbcpower.h:319
USB-C Power Click PD status object.
Definition: usbcpower.h:362
err_t usbcpower_update_patch_bundle(usbcpower_t *ctx, usbcpower_pbms_cfg_t pbms_cfg)
USB-C Power update patch bundle function.
err_t usbcpower_exit_patch_burst_mode(usbcpower_t *ctx, uint32_t *response)
USB-C Power exit the patch burst mode function.
uint8_t hard_rst_dets
Definition: usbcpower.h:367
uint8_t data_rst_dets
Definition: usbcpower.h:369
uint8_t slave_address
Definition: usbcpower.h:248
usbcpower_return_value_t
USB-C Power Click return value data.
Definition: usbcpower.h:379
uint8_t pp_cable1_switch
Definition: usbcpower.h:305
uint8_t plug_orientation
Definition: usbcpower.h:289
pin_name_t int_pin
Definition: usbcpower.h:261
USB-C Power Click PBMs configuration object.
Definition: usbcpower.h:274
void usbcpower_cfg_setup(usbcpower_cfg_t *cfg)
USB-C Power configuration object setup function.
err_t usbcpower_start_patch_burst_mode(usbcpower_t *ctx, usbcpower_pbms_cfg_t pbms_cfg, uint32_t *response)
USB-C Power starts the patch burst mode function.
uint8_t i2c_eeprom_present
Definition: usbcpower.h:322
uint8_t pwr_conn
Definition: usbcpower.h:349
uint8_t num_src_pdos
Definition: usbcpower.h:336
uint8_t patch_cfg_source
Definition: usbcpower.h:325
uint8_t vbus_status
Definition: usbcpower.h:292
err_t usbcpower_get_rx_caps(usbcpower_t *ctx, usbcpower_rx_caps_t *rx_caps)
USB-C Power gets RX caps function.
uint32_t i2c_speed
Definition: usbcpower.h:263
err_t usbcpower_set_patch_mode(usbcpower_t *ctx, uint32_t *response)
USB-C Power set patch mode function.
uint8_t usb_hos_tpresent
Definition: usbcpower.h:293
uint8_t data_role
Definition: usbcpower.h:291
uint8_t pp1_switch
Definition: usbcpower.h:306
uint8_t patch_header_err
Definition: usbcpower.h:320
err_t usbcpower_get_selected_mode(usbcpower_t *ctx, uint8_t *sel_mode)
USB-C Power gets selected mode function.
uint8_t err_rec_dets
Definition: usbcpower.h:368
err_t usbcpower_generic_read(usbcpower_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
USB-C Power I2C reading function.
USB-C Power Click status information object.
Definition: usbcpower.h:286
uint8_t i2c_address
Definition: usbcpower.h:264
uint8_t pp1_overcurrent
Definition: usbcpower.h:308
uint8_t pp3_switch
Definition: usbcpower.h:307
USB-C Power Click configuration object.
Definition: usbcpower.h:257
USB-C Power Click power status object.
Definition: usbcpower.h:348
uint8_t plug_present
Definition: usbcpower.h:287
USB-C Power Click context object.
Definition: usbcpower.h:240
uint8_t charger_advertise
Definition: usbcpower.h:353
uint8_t cc_pull_up
Definition: usbcpower.h:363
err_t usbcpower_default_cfg(usbcpower_t *ctx)
USB-C Power default configuration function.
err_t usbcpower_get_boot_status(usbcpower_t *ctx, usbcpower_boot_status_t *boot_status)
USB-C Power gets boot status function.
uint8_t src_sink
Definition: usbcpower.h:350
uint8_t soft_rst_dets
Definition: usbcpower.h:366
err_t usbcpower_get_device_capabilities(usbcpower_t *ctx, uint8_t *device_cap)
USB-C Power get device capabilities function.
uint32_t bundle_size
Definition: usbcpower.h:275
err_t usbcpower_get_pwr_path_status(usbcpower_t *ctx, usbcpower_pwr_path_status_t *pp_status)
USB-C Power gets power path status function.
uint8_t num_sink_pdos
Definition: usbcpower.h:338
@ USBCPOWER_OK
Definition: usbcpower.h:380
uint8_t timeout_value
Definition: usbcpower.h:277
i2c_master_t i2c
Definition: usbcpower.h:245
pin_name_t scl
Definition: usbcpower.h:258
uint8_t power_source
Definition: usbcpower.h:310
@ USBCPOWER_ERROR
Definition: usbcpower.h:381