Lamp-Da 0.1
A compact lantern project
Loading...
Searching...
No Matches
Public Attributes | List of all members
tcpm_drv Struct Reference

Public Attributes

int(* init )()
 
int(* release )()
 
int(* get_cc )(enum tcpc_cc_voltage_status *cc1, enum tcpc_cc_voltage_status *cc2)
 
int(* get_vbus_level )(enum vbus_level level)
 
int(* get_vbus_voltage )(int *vbus)
 
int(* select_rp_value )(int rp)
 
int(* set_cc )(int pull)
 
int(* set_polarity )(enum tcpc_cc_polarity polarity)
 
int(* sop_prime_enable )(int enable)
 
int(* set_vconn )(int enable)
 
int(* set_msg_header )(int power_role, int data_role)
 
int(* set_rx_enable )(int enable)
 
int(* get_message )(uint32_t *payload, uint32_t *head)
 
int(* transmit )(enum tcpm_transmit_type type, uint16_t header, const uint32_t *data)
 
void(* tcpc_alert )()
 
void(* tcpc_discharge_vbus )(int enable)
 
void(* tcpc_enable_auto_discharge_disconnect )(int enable)
 
int(* debug_accessory )(int enable)
 
int(* debug_detach )()
 
int(* drp_toggle )()
 
int(* get_chip_info )(int live, struct ec_response_pd_chip_info **info)
 
int(* get_snk_ctrl )(int *sinking)
 
int(* set_snk_ctrl )(int enable)
 
int(* get_src_ctrl )(int *sourcing)
 
int(* set_src_ctrl )(int enable)
 
int(* enter_low_power_mode )()
 
int(* set_frs_enable )(int enable)
 
int(* handle_fault )(int fault)
 
void(* dump_registers )()
 

Member Data Documentation

◆ debug_accessory

int(* tcpm_drv::debug_accessory) (int enable)

Manual control of TCPC DebugAccessory enable

Parameters
enableDebug Accessory enable or disable

◆ debug_detach

int(* tcpm_drv::debug_detach) ()

Break debug connection, if TCPC requires specific commands to be run in order to correctly exit a debug connection.

◆ drp_toggle

int(* tcpm_drv::drp_toggle) ()

Enable TCPC auto DRP toggling.

Returns
EC_SUCCESS or error

◆ dump_registers

void(* tcpm_drv::dump_registers) ()

Dump TCPC registers

◆ enter_low_power_mode

int(* tcpm_drv::enter_low_power_mode) ()

Instructs the TCPC to enter into low power mode.

NOTE: Do no use tcpc_(read|write) style helper methods in this function. You must use i2c_(read|write) directly.

Returns
EC_SUCCESS or error

◆ get_cc

int(* tcpm_drv::get_cc) (enum tcpc_cc_voltage_status *cc1, enum tcpc_cc_voltage_status *cc2)

Read the CC line status.

Parameters
cc1pointer to CC status for CC1
cc2pointer to CC status for CC2
Returns
EC_SUCCESS or error

◆ get_chip_info

int(* tcpm_drv::get_chip_info) (int live, struct ec_response_pd_chip_info **info)

Get firmware version.

Parameters
liveFetch live chip info or hard-coded + cached info
infoPointer to PD chip info; NULL to cache the info only
Returns
EC_SUCCESS or error

◆ get_message

int(* tcpm_drv::get_message) (uint32_t *payload, uint32_t *head)

Read last received PD message.

Parameters
portType-C port number
payloadPointer to location to copy payload of message
headerof message
Returns
EC_SUCCESS or error

◆ get_snk_ctrl

int(* tcpm_drv::get_snk_ctrl) (int *sinking)

Request current sinking state of the TCPC NOTE: this is most useful for PPCs that can not tell on their own

Parameters
is_sinkingtrue for sinking, false for not
Returns
EC_SUCCESS, EC_ERROR_UNIMPLEMENTED or error

◆ get_src_ctrl

int(* tcpm_drv::get_src_ctrl) (int *sourcing)

Request current sourcing state of the TCPC NOTE: this is most useful for PPCs that can not tell on their own

Parameters
is_sourcingtrue for sourcing, false for not
Returns
EC_SUCCESS, EC_ERROR_UNIMPLEMENTED or error

◆ get_vbus_level

int(* tcpm_drv::get_vbus_level) (enum vbus_level level)

Check VBUS level

Parameters
levelsafe level voltage to check against
Returns
False => VBUS not at level, True => VBUS at level

◆ get_vbus_voltage

int(* tcpm_drv::get_vbus_voltage) (int *vbus)

Get VBUS voltage

Parameters
portType-C port number
vbusread VBUS voltage in mV
Returns
EC_SUCCESS or error

◆ handle_fault

int(* tcpm_drv::handle_fault) (int fault)

Handle TCPCI Faults

Parameters
portType-C port number
faultTCPCI fault status value
Returns
EC_SUCCESS or error

◆ init

int(* tcpm_drv::init) ()

Initialize TCPM driver and wait for TCPC readiness.

Parameters
portType-C port number
Returns
EC_SUCCESS or error

◆ release

int(* tcpm_drv::release) ()

Release the TCPM hardware and disconnect the driver. Only .init() can be called after .release().

Returns
EC_SUCCESS or error

◆ select_rp_value

int(* tcpm_drv::select_rp_value) (int rp)

Set the value of the CC pull-up used when we are a source.

Parameters
rpOne of enum tcpc_rp_value
Returns
EC_SUCCESS or error

◆ set_cc

int(* tcpm_drv::set_cc) (int pull)

Set the CC pull resistor. This sets our role as either source or sink.

Parameters
pullOne of enum tcpc_cc_pull
Returns
EC_SUCCESS or error

◆ set_frs_enable

int(* tcpm_drv::set_frs_enable) (int enable)

Enable/Disable TCPC FRS detection

Parameters
enableFRS enable (true) disable (false)
Returns
EC_SUCCESS or error

◆ set_msg_header

int(* tcpm_drv::set_msg_header) (int power_role, int data_role)

Set PD message header to use for goodCRC

Parameters
power_rolePower role to use in header
data_roleData role to use in header
Returns
EC_SUCCESS or error

◆ set_polarity

int(* tcpm_drv::set_polarity) (enum tcpc_cc_polarity polarity)

Set polarity

Parameters
polarityport polarity
Returns
EC_SUCCESS or error

◆ set_rx_enable

int(* tcpm_drv::set_rx_enable) (int enable)

Set RX enable flag

Parameters
[in]truefor enable, false for disable
Returns
EC_SUCCESS or error

◆ set_snk_ctrl

int(* tcpm_drv::set_snk_ctrl) (int enable)

Send SinkVBUS or DisableSinkVBUS command

@enable true for enable, false for disable

Returns
EC_SUCCESS or error

◆ set_src_ctrl

int(* tcpm_drv::set_src_ctrl) (int enable)

Send SourceVBUS or DisableSourceVBUS command

@enable true for enable, false for disable

Returns
EC_SUCCESS or error

◆ set_vconn

int(* tcpm_drv::set_vconn) (int enable)

Set Vconn.

Parameters
enableEnable/Disable Vconn
Returns
EC_SUCCESS or error

◆ sop_prime_enable

int(* tcpm_drv::sop_prime_enable) (int enable)

Control receive of SOP' and SOP'' messages. This is provided separately from set_vconn so that we can preemptively disable receipt of SOP' messages during a VCONN swap, or disable during spans when port partners may erroneously be sending cable messages.

Parameters
enableEnable SOP' and SOP'' messages
Returns
EC_SUCCESS or error

◆ tcpc_alert

void(* tcpm_drv::tcpc_alert) ()

TCPC is asserting alert

◆ tcpc_discharge_vbus

void(* tcpm_drv::tcpc_discharge_vbus) (int enable)

Discharge PD VBUS on src/sink disconnect & power role swap

Parameters
enableDischarge enable or disable

◆ tcpc_enable_auto_discharge_disconnect

void(* tcpm_drv::tcpc_enable_auto_discharge_disconnect) (int enable)

Auto Discharge Disconnect

Parameters
enableAuto Discharge enable or disable

◆ transmit

int(* tcpm_drv::transmit) (enum tcpm_transmit_type type, uint16_t header, const uint32_t *data)

Transmit PD message

Parameters
typeTransmit type
headerPacket header
cntNumber of bytes in payload
dataPayload
Returns
EC_SUCCESS or error

The documentation for this struct was generated from the following file: