/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef _DRIVERS_INTEL_USB4_RETIMER_H_ #define _DRIVERS_INTEL_USB4_RETIMER_H_ /* Flags representing mux state */ #define USB_PD_MUX_NONE 0 /* Open switch */ #define USB_PD_MUX_USB_ENABLED BIT(0) /* USB connected */ #define USB_PD_MUX_SAFE_MODE BIT(5) /* DP is in safe mode */ #define USB_PD_MUX_TBT_COMPAT_ENABLED BIT(6) /* TBT compat enabled */ #define USB_PD_MUX_USB4_ENABLED BIT(7) /* USB4 enabled */ #define USB_RETIMER_FW_UPDATE_OP_SHIFT 4 #define USB_RETIMER_FW_UPDATE_ERROR 0xfe /* Retimer firmware update operations */ #define USB_RETIMER_FW_UPDATE_SUSPEND_PD 1 /* Suspend PD port */ #define USB_RETIMER_FW_UPDATE_RESUME_PD 2 /* Resume PD port */ #define USB_RETIMER_FW_UPDATE_GET_MUX 3 /* Read current USB MUX */ #define USB_RETIMER_FW_UPDATE_SET_USB 4 /* Set MUX to USB mode */ #define USB_RETIMER_FW_UPDATE_SET_SAFE 5 /* Set MUX to Safe mode */ #define USB_RETIMER_FW_UPDATE_SET_TBT 6 /* Set MUX to TBT mode */ #define USB_RETIMER_FW_UPDATE_DISCONNECT 7 /* Set MUX to disconnect */ struct usb4_retimer_dsm_uuid { const char *uuid; void (**callbacks)(uint8_t port, void *); size_t count; void *arg; }; const char *ec_retimer_fw_update_path(void); void ec_retimer_fw_update(uint8_t data); #endif /* _DRIVERS_INTEL_USB4_RETIMER_H_ */