Lines Matching refs:dev

25 static void pe_set_ready_state(const struct device *dev)  in pe_set_ready_state()  argument
27 struct usbc_port_data *data = dev->data; in pe_set_ready_state()
30 pe_set_state(dev, PE_SRC_READY); in pe_set_ready_state()
32 pe_set_state(dev, PE_SNK_READY); in pe_set_ready_state()
41 bool common_dpm_requests(const struct device *dev) in common_dpm_requests() argument
43 struct usbc_port_data *data = dev->data; in common_dpm_requests()
50 pe_set_state(dev, PE_DRS_SEND_SWAP); in common_dpm_requests()
53 pe_set_state(dev, PE_SEND_SOFT_RESET); in common_dpm_requests()
64 void pe_subsys_init(const struct device *dev) in pe_subsys_init() argument
66 struct usbc_port_data *data = dev->data; in pe_subsys_init()
70 pe->dev = dev; in pe_subsys_init()
79 void pe_start(const struct device *dev) in pe_start() argument
81 struct usbc_port_data *data = dev->data; in pe_start()
89 void pe_suspend(const struct device *dev) in pe_suspend() argument
91 struct usbc_port_data *data = dev->data; in pe_suspend()
99 pe_set_state(dev, PE_SUSPEND); in pe_suspend()
105 static void pe_init(const struct device *dev) in pe_init() argument
107 struct usbc_port_data *data = dev->data; in pe_init()
121 pe_snk_init(dev); in pe_init()
123 pe_src_init(dev); in pe_init()
130 bool pe_is_running(const struct device *dev) in pe_is_running() argument
132 struct usbc_port_data *data = dev->data; in pe_is_running()
140 void pe_run(const struct device *dev, const int32_t dpm_request) in pe_run() argument
142 struct usbc_port_data *data = dev->data; in pe_run()
152 pe_init(dev); in pe_run()
161 if (prl_is_running(dev) == false) { in pe_run()
175 pe_set_state(dev, PE_SNK_HARD_RESET); in pe_run()
188 void pe_set_data_role(const struct device *dev, enum tc_data_role dr) in pe_set_data_role() argument
190 struct usbc_port_data *data = dev->data; in pe_set_data_role()
203 enum tc_data_role pe_get_data_role(const struct device *dev) in pe_get_data_role() argument
205 struct usbc_port_data *data = dev->data; in pe_get_data_role()
213 enum tc_power_role pe_get_power_role(const struct device *dev) in pe_get_power_role() argument
215 struct usbc_port_data *data = dev->data; in pe_get_power_role()
223 enum tc_cable_plug pe_get_cable_plug(const struct device *dev) in pe_get_cable_plug() argument
231 void pe_got_soft_reset(const struct device *dev) in pe_got_soft_reset() argument
237 pe_set_state(dev, PE_SOFT_RESET); in pe_got_soft_reset()
243 void pe_message_sent(const struct device *dev) in pe_message_sent() argument
245 struct usbc_port_data *data = dev->data; in pe_message_sent()
266 static bool pe_soft_reset_is_required(const struct device *dev, const enum pd_packet_type type) in pe_soft_reset_is_required() argument
268 struct usbc_port_data *data = dev->data; in pe_soft_reset_is_required()
302 void pe_report_error(const struct device *dev, const enum pe_error e, in pe_report_error() argument
305 struct usbc_port_data *data = dev->data; in pe_report_error()
312 if (pe_get_state(dev) == PE_SEND_SOFT_RESET || pe_get_state(dev) == PE_SOFT_RESET) { in pe_report_error()
322 else if (pe_soft_reset_is_required(dev, type)) { in pe_report_error()
323 policy_notify(dev, PROTOCOL_ERROR); in pe_report_error()
324 pe_send_soft_reset(dev, type); in pe_report_error()
331 pe_set_ready_state(dev); in pe_report_error()
338 void pe_report_discard(const struct device *dev) in pe_report_discard() argument
340 struct usbc_port_data *data = dev->data; in pe_report_discard()
347 pe_dpm_end_ams(dev); in pe_report_discard()
355 void pe_message_received(const struct device *dev) in pe_message_received() argument
357 struct usbc_port_data *data = dev->data; in pe_message_received()
363 usbc_bypass_next_sleep(dev); in pe_message_received()
369 void pe_got_hard_reset(const struct device *dev) in pe_got_hard_reset() argument
371 pe_set_state(dev, PE_SNK_TRANSITION_TO_DEFAULT); in pe_got_hard_reset()
377 void pe_hard_reset_sent(const struct device *dev) in pe_hard_reset_sent() argument
379 struct usbc_port_data *data = dev->data; in pe_hard_reset_sent()
388 bool pe_is_explicit_contract(const struct device *dev) in pe_is_explicit_contract() argument
390 struct usbc_port_data *data = dev->data; in pe_is_explicit_contract()
400 bool pe_dpm_initiated_ams(const struct device *dev) in pe_dpm_initiated_ams() argument
402 struct usbc_port_data *data = dev->data; in pe_dpm_initiated_ams()
411 void pe_dpm_end_ams(const struct device *dev) in pe_dpm_end_ams() argument
413 struct usbc_port_data *data = dev->data; in pe_dpm_end_ams()
422 void pe_first_msg_sent(const struct device *dev) in pe_first_msg_sent() argument
424 struct usbc_port_data *data = dev->data; in pe_first_msg_sent()
435 void pe_set_state(const struct device *dev, const enum usbc_pe_state state) in pe_set_state() argument
437 struct usbc_port_data *data = dev->data; in pe_set_state()
443 usbc_bypass_next_sleep(dev); in pe_set_state()
449 enum usbc_pe_state pe_get_state(const struct device *dev) in pe_get_state() argument
451 struct usbc_port_data *data = dev->data; in pe_get_state()
459 enum usbc_pe_state pe_get_last_state(const struct device *dev) in pe_get_last_state() argument
461 struct usbc_port_data *data = dev->data; in pe_get_last_state()
469 void pe_send_soft_reset(const struct device *dev, const enum pd_packet_type type) in pe_send_soft_reset() argument
471 struct usbc_port_data *data = dev->data; in pe_send_soft_reset()
474 pe_set_state(dev, PE_SEND_SOFT_RESET); in pe_send_soft_reset()
480 void pe_send_data_msg(const struct device *dev, const enum pd_packet_type type, in pe_send_data_msg() argument
483 struct usbc_port_data *data = dev->data; in pe_send_data_msg()
488 prl_send_data_msg(dev, type, msg); in pe_send_data_msg()
494 void pe_send_ctrl_msg(const struct device *dev, const enum pd_packet_type type, in pe_send_ctrl_msg() argument
497 struct usbc_port_data *data = dev->data; in pe_send_ctrl_msg()
502 prl_send_ctrl_msg(dev, type, msg); in pe_send_ctrl_msg()
508 void pe_send_request_msg(const struct device *dev, const uint32_t rdo) in pe_send_request_msg() argument
510 struct usbc_port_data *data = dev->data; in pe_send_request_msg()
518 pe_send_data_msg(dev, PD_PACKET_SOP, PD_DATA_REQUEST); in pe_send_request_msg()
524 void extended_message_not_supported(const struct device *dev) in extended_message_not_supported() argument
526 struct usbc_port_data *data = dev->data; in extended_message_not_supported()
534 pe_set_state(dev, PE_CHUNK_RECEIVED); in extended_message_not_supported()
536 pe_set_state(dev, PE_SEND_NOT_SUPPORTED); in extended_message_not_supported()
543 bool received_control_message(const struct device *dev, const union pd_header header, in received_control_message() argument
546 struct usbc_port_data *data = dev->data; in received_control_message()
559 bool received_data_message(const struct device *dev, const union pd_header header, in received_data_message() argument
562 struct usbc_port_data *data = dev->data; in received_data_message()
575 bool policy_check(const struct device *dev, const enum usbc_policy_check_t pc) in policy_check() argument
577 struct usbc_port_data *data = dev->data; in policy_check()
580 return data->policy_cb_check(dev, pc); in policy_check()
589 void policy_notify(const struct device *dev, const enum usbc_policy_notify_t notify) in policy_notify() argument
591 struct usbc_port_data *data = dev->data; in policy_notify()
594 data->policy_cb_notify(dev, notify); in policy_notify()
601 bool policy_wait_notify(const struct device *dev, const enum usbc_policy_wait_t notify) in policy_wait_notify() argument
603 struct usbc_port_data *data = dev->data; in policy_wait_notify()
606 return data->policy_cb_wait_notify(dev, notify); in policy_wait_notify()
617 uint32_t policy_get_request_data_object(const struct device *dev) in policy_get_request_data_object() argument
619 struct usbc_port_data *data = dev->data; in policy_get_request_data_object()
624 return data->policy_cb_get_rdo(dev); in policy_get_request_data_object()
630 void policy_set_src_cap(const struct device *dev, const uint32_t *pdos, const int num_pdos) in policy_set_src_cap() argument
632 struct usbc_port_data *data = dev->data; in policy_set_src_cap()
635 data->policy_cb_set_src_cap(dev, pdos, num_pdos); in policy_set_src_cap()
642 bool policy_is_snk_at_default(const struct device *dev) in policy_is_snk_at_default() argument
644 struct usbc_port_data *data = dev->data; in policy_is_snk_at_default()
647 return data->policy_cb_is_snk_at_default(dev); in policy_is_snk_at_default()
656 void policy_get_snk_cap(const struct device *dev, uint32_t **pdos, int *num_pdos) in policy_get_snk_cap() argument
658 struct usbc_port_data *data = dev->data; in policy_get_snk_cap()
663 data->policy_cb_get_snk_cap(dev, pdos, num_pdos); in policy_get_snk_cap()
671 void policy_set_port_partner_snk_cap(const struct device *dev, const uint32_t *pdos, in policy_set_port_partner_snk_cap() argument
674 struct usbc_port_data *data = dev->data; in policy_set_port_partner_snk_cap()
677 data->policy_cb_set_port_partner_snk_cap(dev, pdos, num_pdos); in policy_set_port_partner_snk_cap()
684 enum usbc_snk_req_reply_t policy_check_sink_request(const struct device *dev, in policy_check_sink_request() argument
687 struct usbc_port_data *data = dev->data; in policy_check_sink_request()
692 return data->policy_cb_check_sink_request(dev, request_msg); in policy_check_sink_request()
698 bool policy_present_contract_is_valid(const struct device *dev, const uint32_t present_contract) in policy_present_contract_is_valid() argument
700 struct usbc_port_data *data = dev->data; in policy_present_contract_is_valid()
706 return data->policy_present_contract_is_valid(dev, present_contract); in policy_present_contract_is_valid()
712 bool policy_is_ps_ready(const struct device *dev) in policy_is_ps_ready() argument
714 struct usbc_port_data *data = dev->data; in policy_is_ps_ready()
719 return data->policy_is_ps_ready(dev); in policy_is_ps_ready()
726 bool policy_change_src_caps(const struct device *dev) in policy_change_src_caps() argument
728 struct usbc_port_data *data = dev->data; in policy_change_src_caps()
734 return data->policy_change_src_caps(dev); in policy_change_src_caps()
745 const struct device *dev = pe->dev; in pe_drs_evaluate_swap_entry() local
748 if (policy_check(dev, (pe->data_role == TC_ROLE_UFP) ? CHECK_DATA_ROLE_SWAP_TO_DFP in pe_drs_evaluate_swap_entry()
755 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_ACCEPT); in pe_drs_evaluate_swap_entry()
762 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_REJECT); in pe_drs_evaluate_swap_entry()
772 const struct device *dev = pe->dev; in pe_drs_evaluate_swap_run() local
773 struct usbc_port_data *data = dev->data; in pe_drs_evaluate_swap_run()
781 pe_set_data_role(dev, (pe->data_role == TC_ROLE_UFP) ? TC_ROLE_DFP in pe_drs_evaluate_swap_run()
784 policy_notify(dev, (pe->data_role == TC_ROLE_UFP) ? DATA_ROLE_IS_UFP in pe_drs_evaluate_swap_run()
787 pe_set_ready_state(dev); in pe_drs_evaluate_swap_run()
793 policy_notify(dev, MSG_DISCARDED); in pe_drs_evaluate_swap_run()
794 pe_send_soft_reset(dev, prl_rx->emsg.type); in pe_drs_evaluate_swap_run()
807 const struct device *dev = pe->dev; in pe_drs_send_swap_entry() local
810 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_DR_SWAP); in pe_drs_send_swap_entry()
820 const struct device *dev = pe->dev; in pe_drs_send_swap_run() local
821 struct usbc_port_data *data = dev->data; in pe_drs_send_swap_run()
827 if (received_control_message(dev, header, PD_CTRL_REJECT)) { in pe_drs_send_swap_run()
832 policy_notify(dev, MSG_REJECTED_RECEIVED); in pe_drs_send_swap_run()
833 } else if (received_control_message(dev, header, PD_CTRL_WAIT)) { in pe_drs_send_swap_run()
838 if (policy_wait_notify(dev, WAIT_DATA_ROLE_SWAP)) { in pe_drs_send_swap_run()
842 } else if (received_control_message(dev, header, PD_CTRL_ACCEPT)) { in pe_drs_send_swap_run()
848 policy_notify(dev, (pe->data_role == TC_ROLE_UFP) ? DATA_ROLE_IS_UFP in pe_drs_send_swap_run()
856 usbc_request(dev, REQUEST_TC_ERROR_RECOVERY); in pe_drs_send_swap_run()
861 pe_set_ready_state(dev); in pe_drs_send_swap_run()
868 policy_notify(dev, MSG_DISCARDED); in pe_drs_send_swap_run()
869 pe_set_ready_state(dev); in pe_drs_send_swap_run()
883 const struct device *dev = pe->dev; in pe_get_sink_cap_entry() local
890 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_GET_SINK_CAP); in pe_get_sink_cap_entry()
902 const struct device *dev = pe->dev; in pe_get_sink_cap_run() local
903 struct usbc_port_data *data = dev->data; in pe_get_sink_cap_run()
919 if (received_data_message(dev, header, PD_DATA_SINK_CAP)) { in pe_get_sink_cap_run()
925 policy_set_port_partner_snk_cap(dev, pdos, num_pdos); in pe_get_sink_cap_run()
927 pe_set_ready_state(dev); in pe_get_sink_cap_run()
929 } else if (received_control_message(dev, header, PD_CTRL_REJECT) || in pe_get_sink_cap_run()
930 received_control_message(dev, header, in pe_get_sink_cap_run()
932 pe_set_ready_state(dev); in pe_get_sink_cap_run()
937 pe_send_soft_reset(dev, PD_PACKET_SOP); in pe_get_sink_cap_run()
945 policy_notify(dev, MSG_DISCARDED); in pe_get_sink_cap_run()
946 pe_set_ready_state(dev); in pe_get_sink_cap_run()
981 const struct device *dev = pe->dev; in pe_soft_reset_entry() local
984 prl_reset(dev); in pe_soft_reset_entry()
993 const struct device *dev = pe->dev; in pe_soft_reset_run() local
995 if (!prl_is_running(dev)) { in pe_soft_reset_run()
1002 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_ACCEPT); in pe_soft_reset_run()
1013 pe_set_state(dev, PE_SNK_WAIT_FOR_CAPABILITIES); in pe_soft_reset_run()
1021 pe_set_state(dev, PE_SNK_HARD_RESET); in pe_soft_reset_run()
1035 const struct device *dev = pe->dev; in pe_send_soft_reset_entry() local
1040 prl_reset(dev); in pe_send_soft_reset_entry()
1050 const struct device *dev = pe->dev; in pe_send_soft_reset_run() local
1051 struct usbc_port_data *data = dev->data; in pe_send_soft_reset_run()
1055 if (prl_is_running(dev) == false) { in pe_send_soft_reset_run()
1061 pe_send_ctrl_msg(dev, pe->soft_reset_sop, PD_CTRL_SOFT_RESET); in pe_send_soft_reset_run()
1067 policy_notify(dev, MSG_DISCARDED); in pe_send_soft_reset_run()
1068 pe_set_ready_state(dev); in pe_send_soft_reset_run()
1077 if (received_control_message(dev, header, PD_CTRL_ACCEPT)) { in pe_send_soft_reset_run()
1078 pe_set_state(dev, PE_SNK_WAIT_FOR_CAPABILITIES); in pe_send_soft_reset_run()
1086 pe_set_state(dev, PE_SNK_HARD_RESET); in pe_send_soft_reset_run()
1097 const struct device *dev = pe->dev; in pe_send_not_supported_entry() local
1102 policy_notify(dev, MSG_NOT_SUPPORTED_RECEIVED); in pe_send_not_supported_entry()
1105 if (prl_get_rev(dev, PD_PACKET_SOP) > PD_REV20) { in pe_send_not_supported_entry()
1106 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_NOT_SUPPORTED); in pe_send_not_supported_entry()
1108 pe_send_ctrl_msg(dev, PD_PACKET_SOP, PD_CTRL_REJECT); in pe_send_not_supported_entry()
1115 const struct device *dev = pe->dev; in pe_send_not_supported_run() local
1121 pe_set_ready_state(dev); in pe_send_not_supported_run()
1148 const struct device *dev = pe->dev; in pe_chunk_received_run() local
1156 pe_set_state(dev, PE_SEND_NOT_SUPPORTED); in pe_chunk_received_run()
1168 const struct device *dev = pe->dev; in pe_sender_response_run() local
1169 enum usbc_pe_state current_state = pe_get_state(dev); in pe_sender_response_run()
1186 pe_set_state(dev, PE_SNK_HARD_RESET); in pe_sender_response_run()
1189 pe_set_state(dev, PE_SNK_READY); in pe_sender_response_run()
1202 pe_set_state(dev, PE_SUSPEND); in pe_sender_response_run()
1214 usbc_request(dev, REQUEST_TC_ERROR_RECOVERY); in pe_sender_response_run()
1222 pe_set_state(dev, PE_SRC_HARD_RESET); in pe_sender_response_run()
1226 pe_send_soft_reset(dev, PD_PACKET_SOP); in pe_sender_response_run()
1235 pe_set_state(dev, PE_SNK_HARD_RESET); in pe_sender_response_run()
1238 pe_set_state(dev, PE_SNK_READY); in pe_sender_response_run()