123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2016-2023 Samsung Electronics Co. Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
- /* usb notify layer v4.0 */
- #ifndef __LINUX_USBLOG_PROC_NOTIFY_H__
- #define __LINUX_USBLOG_PROC_NOTIFY_H__
- #define NOTIFY_FOREACH_STATE(S) \
- S(NOTIFY_UNDEFINED_STATE), \
- S(NOTIFY_INVALID_STATE), \
- S(NOTIFY_TOGGLING), \
- S(NOTIFY_SRC_UNATTACHED), \
- S(NOTIFY_SRC_ATTACH_WAIT), \
- S(NOTIFY_SRC_ATTACHED), \
- S(NOTIFY_SRC_STARTUP), \
- S(NOTIFY_SRC_SEND_CAPABILITIES), \
- S(NOTIFY_SRC_SEND_CAPABILITIES_TIMEOUT), \
- S(NOTIFY_SRC_NEGOTIATE_CAPABILITIES), \
- S(NOTIFY_SRC_TRANSITION_SUPPLY), \
- S(NOTIFY_SRC_READY), \
- S(NOTIFY_SRC_WAIT_NEW_CAPABILITIES), \
- \
- S(NOTIFY_SNK_UNATTACHED), \
- S(NOTIFY_SNK_ATTACH_WAIT), \
- S(NOTIFY_SNK_DEBOUNCED), \
- S(NOTIFY_SNK_ATTACHED), \
- S(NOTIFY_SNK_STARTUP), \
- S(NOTIFY_SNK_DISCOVERY), \
- S(NOTIFY_SNK_DISCOVERY_DEBOUNCE), \
- S(NOTIFY_SNK_DISCOVERY_DEBOUNCE_DONE), \
- S(NOTIFY_SNK_WAIT_CAPABILITIES), \
- S(NOTIFY_SNK_NEGOTIATE_CAPABILITIES), \
- S(NOTIFY_SNK_NEGOTIATE_PPS_CAPABILITIES), \
- S(NOTIFY_SNK_TRANSITION_SINK), \
- S(NOTIFY_SNK_TRANSITION_SINK_VBUS), \
- S(NOTIFY_SNK_READY), \
- \
- S(NOTIFY_ACC_UNATTACHED), \
- S(NOTIFY_DEBUG_ACC_ATTACHED), \
- S(NOTIFY_AUDIO_ACC_ATTACHED), \
- S(NOTIFY_AUDIO_ACC_DEBOUNCE), \
- \
- S(NOTIFY_HARD_RESET_SEND), \
- S(NOTIFY_HARD_RESET_START), \
- S(NOTIFY_SRC_HARD_RESET_VBUS_OFF), \
- S(NOTIFY_SRC_HARD_RESET_VBUS_ON), \
- S(NOTIFY_SNK_HARD_RESET_SINK_OFF), \
- S(NOTIFY_SNK_HARD_RESET_WAIT_VBUS), \
- S(NOTIFY_SNK_HARD_RESET_SINK_ON), \
- \
- S(NOTIFY_SOFT_RESET), \
- S(NOTIFY_SOFT_RESET_SEND), \
- \
- S(NOTIFY_DR_SWAP_ACCEPT), \
- S(NOTIFY_DR_SWAP_SEND), \
- S(NOTIFY_DR_SWAP_SEND_TIMEOUT), \
- S(NOTIFY_DR_SWAP_CANCEL), \
- S(NOTIFY_DR_SWAP_CHANGE_DR), \
- \
- S(NOTIFY_PR_SWAP_ACCEPT), \
- S(NOTIFY_PR_SWAP_SEND), \
- S(NOTIFY_PR_SWAP_SEND_TIMEOUT), \
- S(NOTIFY_PR_SWAP_CANCEL), \
- S(NOTIFY_PR_SWAP_START), \
- S(NOTIFY_PR_SWAP_SRC_SNK_TRANSITION_OFF), \
- S(NOTIFY_PR_SWAP_SRC_SNK_SOURCE_OFF), \
- S(NOTIFY_PR_SWAP_SRC_SNK_SOURCE_OFF_CC_DEBOUNCED), \
- S(NOTIFY_PR_SWAP_SRC_SNK_SINK_ON), \
- S(NOTIFY_PR_SWAP_SNK_SRC_SINK_OFF), \
- S(NOTIFY_PR_SWAP_SNK_SRC_SOURCE_ON), \
- S(NOTIFY_PR_SWAP_SNK_SRC_SOURCE_ON_VBUS_RAMPED_UP), \
- \
- S(NOTIFY_VCONN_SWAP_ACCEPT), \
- S(NOTIFY_VCONN_SWAP_SEND), \
- S(NOTIFY_VCONN_SWAP_SEND_TIMEOUT), \
- S(NOTIFY_VCONN_SWAP_CANCEL), \
- S(NOTIFY_VCONN_SWAP_START), \
- S(NOTIFY_VCONN_SWAP_WAIT_FOR_VCONN), \
- S(NOTIFY_VCONN_SWAP_TURN_ON_VCONN), \
- S(NOTIFY_VCONN_SWAP_TURN_OFF_VCONN), \
- \
- S(NOTIFY_SNK_TRY), \
- S(NOTIFY_SNK_TRY_WAIT), \
- S(NOTIFY_SNK_TRY_WAIT_DEBOUNCE), \
- S(NOTIFY_SNK_TRY_WAIT_DEBOUNCE_CHECK_VBUS), \
- S(NOTIFY_SRC_TRYWAIT), \
- S(NOTIFY_SRC_TRYWAIT_DEBOUNCE), \
- S(NOTIFY_SRC_TRYWAIT_UNATTACHED), \
- \
- S(NOTIFY_SRC_TRY), \
- S(NOTIFY_SRC_TRY_WAIT), \
- S(NOTIFY_SRC_TRY_DEBOUNCE), \
- S(NOTIFY_SNK_TRYWAIT), \
- S(NOTIFY_SNK_TRYWAIT_DEBOUNCE), \
- S(NOTIFY_SNK_TRYWAIT_VBUS), \
- S(NOTIFY_BIST_RX), \
- \
- S(NOTIFY_GET_STATUS_SEND), \
- S(NOTIFY_GET_STATUS_SEND_TIMEOUT), \
- S(NOTIFY_GET_PPS_STATUS_SEND), \
- S(NOTIFY_GET_PPS_STATUS_SEND_TIMEOUT), \
- \
- S(NOTIFY_ERROR_RECOVERY), \
- S(NOTIFY_PORT_RESET), \
- S(NOTIFY_PORT_RESET_WAIT_OFF), \
- \
- S(NOTIFY_SNK_TRY_WAIT_PE), \
- S(NOTIFY_SRC_TRY_WAIT_PE), \
- S(NOTIFY_DEBUG_ACC_SNK_ATTACHED), \
- S(NOTIFY_CUSTOM_SRC_ATTACHED), \
- S(NOTIFY_NORP_SRC_ATTACHED), \
- S(NOTIFY_ROLE_SWAP), \
- S(NOTIFY_WATER_PROTECTION_WAIT), \
- S(NOTIFY_WATER_PROTECTION), \
- S(NOTIFY_UNATTACH_WAIT_PE)
- #define NOTIFY_GENERATE_ENUM(e) e
- #define NOTIFY_GENERATE_STRING(s) #s
- enum usblog_tcpm_state {
- NOTIFY_FOREACH_STATE(NOTIFY_GENERATE_ENUM)
- };
- enum usblog_type {
- NOTIFY_FUNCSTATE,
- NOTIFY_TCPMSTATE,
- NOTIFY_CCSTATE,
- NOTIFY_ALTERNATEMODE,
- NOTIFY_CCIC_EVENT,
- NOTIFY_MANAGER,
- NOTIFY_USBMODE,
- NOTIFY_USBMODE_EXTRA,
- NOTIFY_USBSTATE,
- NOTIFY_EVENT,
- NOTIFY_PORT_CONNECT,
- NOTIFY_PORT_DISCONNECT,
- NOTIFY_PORT_CLASS,
- NOTIFY_PORT_CLASS_BLOCK,
- NOTIFY_PCM_PLAYBACK,
- NOTIFY_PCM_CAPTURE,
- NOTIFY_EXTRA,
- };
- enum usblog_state {
- NOTIFY_CONFIGURED = 1,
- NOTIFY_CONNECTED,
- NOTIFY_DISCONNECTED,
- NOTIFY_RESET,
- NOTIFY_RESET_FULL,
- NOTIFY_RESET_HIGH,
- NOTIFY_RESET_SUPER,
- NOTIFY_ACCSTART,
- NOTIFY_PULLUP,
- NOTIFY_PULLUP_ENABLE,
- NOTIFY_PULLUP_EN_SUCCESS,
- NOTIFY_PULLUP_EN_FAIL,
- NOTIFY_PULLUP_DISABLE,
- NOTIFY_PULLUP_DIS_SUCCESS,
- NOTIFY_PULLUP_DIS_FAIL,
- NOTIFY_VBUS_SESSION,
- NOTIFY_VBUS_SESSION_ENABLE,
- NOTIFY_VBUS_EN_SUCCESS,
- NOTIFY_VBUS_EN_FAIL,
- NOTIFY_VBUS_SESSION_DISABLE,
- NOTIFY_VBUS_DIS_SUCCESS,
- NOTIFY_VBUS_DIS_FAIL,
- NOTIFY_HIGH,
- NOTIFY_SUPER,
- NOTIFY_GET_DES,
- NOTIFY_SET_CON,
- NOTIFY_CONNDONE_SSP,
- NOTIFY_CONNDONE_SS,
- NOTIFY_CONNDONE_HS,
- NOTIFY_CONNDONE_FS,
- NOTIFY_CONNDONE_LS,
- };
- enum usblog_status {
- NOTIFY_DETACH = 0,
- NOTIFY_ATTACH_DFP,
- NOTIFY_ATTACH_UFP,
- NOTIFY_ATTACH_DRP,
- };
- /*
- * You should refer "linux/usb/typec/common/pdic_notifier.h"
- * ccic_device, ccic_id may be different at each branch
- */
- enum ccic_device {
- NOTIFY_DEV_INITIAL = 0,
- NOTIFY_DEV_USB,
- NOTIFY_DEV_BATTERY,
- NOTIFY_DEV_PDIC,
- NOTIFY_DEV_MUIC,
- NOTIFY_DEV_CCIC,
- NOTIFY_DEV_MANAGER,
- NOTIFY_DEV_DP,
- NOTIFY_DEV_USB_DP,
- NOTIFY_DEV_SUB_BATTERY,
- NOTIFY_DEV_SECOND_MUIC,
- NOTIFY_DEV_DEDICATED_MUIC,
- NOTIFY_DEV_ALL,
- };
- enum ccic_id {
- NOTIFY_ID_INITIAL = 0,
- NOTIFY_ID_ATTACH,
- NOTIFY_ID_RID,
- NOTIFY_ID_USB,
- NOTIFY_ID_POWER_STATUS,
- NOTIFY_ID_WATER,
- NOTIFY_ID_VCONN,
- NOTIFY_ID_OTG,
- NOTIFY_ID_TA,
- NOTIFY_ID_DP_CONNECT,
- NOTIFY_ID_DP_HPD,
- NOTIFY_ID_DP_LINK_CONF,
- NOTIFY_ID_USB_DP,
- NOTIFY_ID_ROLE_SWAP,
- NOTIFY_ID_FAC,
- NOTIFY_ID_CC_PIN_STATUS,
- NOTIFY_ID_WATER_CABLE,
- NOTIFY_ID_POFF_WATER,
- NOTIFY_ID_DEVICE_INFO,
- NOTIFY_ID_SVID_INFO,
- NOTIFY_ID_CLEAR_INFO,
- };
- enum ccic_rid {
- NOTIFY_RID_UNDEFINED = 0,
- #if defined(CONFIG_USB_CCIC_NOTIFIER_USING_QC)
- NOTIFY_RID_GND,
- NOTIFY_RID_056K,
- #else
- NOTIFY_RID_000K,
- NOTIFY_RID_001K,
- #endif
- NOTIFY_RID_255K,
- NOTIFY_RID_301K,
- NOTIFY_RID_523K,
- NOTIFY_RID_619K,
- NOTIFY_RID_OPEN,
- };
- enum ccic_con {
- NOTIFY_CON_DETACH = 0,
- NOTIFY_CON_ATTACH,
- };
- enum ccic_rprd {
- NOTIFY_RD = 0,
- NOTIFY_RP,
- };
- enum ccic_rpstatus {
- NOTIFY_RP_NONE = 0,
- NOTIFY_RP_56K, /* 80uA */
- NOTIFY_RP_22K, /* 180uA */
- NOTIFY_RP_10K, /* 330uA */
- NOTIFY_RP_ABNORMAL,
- };
- enum ccic_hpd {
- NOTIFY_HPD_LOW = 0,
- NOTIFY_HPD_HIGH,
- NOTIFY_HPD_IRQ,
- };
- enum ccic_pin_assignment {
- NOTIFY_DP_PIN_UNKNOWN = 0,
- NOTIFY_DP_PIN_A,
- NOTIFY_DP_PIN_B,
- NOTIFY_DP_PIN_C,
- NOTIFY_DP_PIN_D,
- NOTIFY_DP_PIN_E,
- NOTIFY_DP_PIN_F,
- };
- enum ccic_pin_status {
- NOTIFY_PIN_NOTERMINATION = 0,
- NOTIFY_PIN_CC1_ACTIVE,
- NOTIFY_PIN_CC2_ACTIVE,
- NOTIFY_PIN_AUDIO_ACCESSORY,
- };
- enum ccic_voltage_status {
- NOTIFY_CC_VOLT_OPEN = 0,
- NOTIFY_CC_VOLT_RA,
- NOTIFY_CC_VOLT_RD,
- NOTIFY_CC_VOLT_SNK_DFT,
- NOTIFY_CC_VOLT_SNK_1_5,
- NOTIFY_CC_VOLT_SNK_3_0,
- NOTIFY_CC_DRP_TOGGLING,
- NOTIFY_CC_UNDEFINED,
- };
- enum extra {
- NOTIFY_EXTRA_USBKILLER = 0,
- NOTIFY_EXTRA_HARDRESET_SENT,
- NOTIFY_EXTRA_HARDRESET_RECEIVED,
- NOTIFY_EXTRA_SYSERROR_BOOT_WDT,
- NOTIFY_EXTRA_SYSMSG_BOOT_POR,
- NOTIFY_EXTRA_SYSMSG_CC_SHORT,
- NOTIFY_EXTRA_SYSMSG_SBU_GND_SHORT,
- NOTIFY_EXTRA_SYSMSG_SBU_VBUS_SHORT,
- NOTIFY_EXTRA_UVDM_TIMEOUT,
- NOTIFY_EXTRA_CCOPEN_REQ_SET,
- NOTIFY_EXTRA_CCOPEN_REQ_CLEAR,
- NOTIFY_EXTRA_USB_ANALOGAUDIO,
- NOTIFY_EXTRA_USBHOST_OVERCURRENT,
- NOTIFY_EXTRA_ROOTHUB_SUSPEND_FAIL,
- NOTIFY_EXTRA_PORT_SUSPEND_FAIL,
- NOTIFY_EXTRA_PORT_SUSPEND_WAKEUP_FAIL,
- NOTIFY_EXTRA_PORT_SUSPEND_LTM_FAIL,
- NOTIFY_EXTRA_VIB_FW_LOAD_SUCCESS,
- };
- enum printk_usb_op {
- NOTIFY_PRINTK_USB_NORMAL = 0,
- NOTIFY_PRINTK_USB_SNAPSHOT = 1,
- };
- #define ALTERNATE_MODE_NOT_READY (1 << 0)
- #define ALTERNATE_MODE_READY (1 << 1)
- #define ALTERNATE_MODE_STOP (1 << 2)
- #define ALTERNATE_MODE_START (1 << 3)
- #define ALTERNATE_MODE_RESET (1 << 4)
- #ifdef CONFIG_USB_NOTIFY_PROC_LOG
- extern void store_usblog_notify(int type, void *param1, void *param2);
- extern void store_ccic_version(unsigned char *hw, unsigned char *sw_main,
- unsigned char *sw_boot);
- extern unsigned long long show_ccic_version(void);
- extern void store_ccic_bin_version(const unsigned char *sw_main,
- const unsigned char *sw_boot);
- extern void store_tcpc_name(char *name);
- extern void printk_usb(int snapshot, char *fmt, ...);
- extern int register_usblog_proc(void);
- extern void unregister_usblog_proc(void);
- #else
- static inline void store_usblog_notify(int type, void *param1, void *param2) {}
- static inline void store_ccic_version(unsigned char *hw, unsigned char *sw_main,
- unsigned char *sw_boot) {}
- static inline unsigned long long show_ccic_version(void) {return 0; }
- static inline void store_ccic_bin_version(const unsigned char *sw_main,
- const unsigned char *sw_boot) {}
- static inline void store_tcpc_name(char *name) {}
- static inline void printk_usb(int snapshot, char *fmt, ...) {}
- static inline int register_usblog_proc(void)
- {return 0; }
- static inline void unregister_usblog_proc(void) {}
- #endif
- #endif
|