/* * Copyright (C) 2016-2017 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 v3.1 */ #ifndef __LINUX_USBLOG_PROC_NOTIFY_H__ #define __LINUX_USBLOG_PROC_NOTIFY_H__ enum usblog_type { NOTIFY_FUNCSTATE, NOTIFY_ALTERNATEMODE, NOTIFY_CCIC_EVENT, NOTIFY_MANAGER, NOTIFY_USBMODE, NOTIFY_USBMODE_EXTRA, NOTIFY_USBSTATE, NOTIFY_EVENT, }; 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, }; enum usblog_status { NOTIFY_DETACH = 0, NOTIFY_ATTACH_DFP, NOTIFY_ATTACH_UFP, NOTIFY_ATTACH_DRP, }; enum ccic_device { NOTIFY_DEV_INITIAL = 0, NOTIFY_DEV_USB, NOTIFY_DEV_BATTERY, NOTIFY_DEV_PDIC, NOTIFY_DEV_MUIC, NOTIFY_DEV_CCIC, #ifdef CONFIG_USB_TYPEC_MANAGER_NOTIFIER NOTIFY_DEV_MANAGER, #endif NOTIFY_DEV_DP, NOTIFY_DEV_USB_DP, }; enum ccic_id { NOTIFY_ID_INITIAL = 0, NOTIFY_ID_ATTACH, NOTIFY_ID_RID, NOTIFY_ID_USB, #ifdef CONFIG_USB_TYPEC_MANAGER_NOTIFIER NOTIFY_ID_POWER_STATUS, #endif 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, }; enum ccic_rid { NOTIFY_RID_UNDEFINED = 0, NOTIFY_RID_000K, NOTIFY_RID_001K, 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, }; #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 *parma2); extern void store_ccic_version(unsigned char *hw, unsigned char *sw_main, unsigned char *sw_boot); extern int register_usblog_proc(void); extern void unregister_usblog_proc(void); #else static inline void store_usblog_notify(int type, void *param1, void *parma2) {} static inline void store_ccic_version(unsigned char *hw, unsigned char *sw_main, unsigned char *sw_boot) {} static inline int register_usblog_proc(void) {return 0; } static inline void unregister_usblog_proc(void) {} #endif #endif