12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Host notify class driver
- *
- * Copyright (C) 2011-2023 Samsung, Inc.
- * Author: Dongrak Shin <[email protected]>
- *
- */
- /* usb notify layer v4.0 */
- #ifndef __LINUX_HOST_NOTIFY_H__
- #define __LINUX_HOST_NOTIFY_H__
- enum host_uevent_state {
- NOTIFY_HOST_NONE,
- NOTIFY_HOST_ADD,
- NOTIFY_HOST_REMOVE,
- NOTIFY_HOST_OVERCURRENT,
- NOTIFY_HOST_LOWBATT,
- NOTIFY_HOST_BLOCK,
- NOTIFY_HOST_UNKNOWN,
- NOTIFY_HOST_SOURCE,
- NOTIFY_HOST_SINK,
- };
- enum host_uevent_type {
- NOTIFY_UNKNOWN_STATE,
- NOTIFY_HOST_STATE,
- NOTIFY_POWER_STATE,
- };
- enum otg_hostnotify_mode {
- NOTIFY_NONE_MODE,
- NOTIFY_HOST_MODE,
- NOTIFY_PERIPHERAL_MODE,
- NOTIFY_TEST_MODE,
- };
- enum booster_power {
- NOTIFY_POWER_OFF,
- NOTIFY_POWER_ON,
- };
- enum set_command {
- NOTIFY_SET_OFF,
- NOTIFY_SET_ON,
- };
- struct host_notify_dev {
- const char *name;
- struct device *dev;
- int index;
- int host_state;
- int host_change;
- int power_state;
- int power_change;
- int mode;
- int booster;
- int (*set_mode)(bool on);
- int (*set_booster)(bool on);
- };
- #ifdef CONFIG_USB_HOST_NOTIFY
- extern int host_state_notify(struct host_notify_dev *ndev, int state);
- extern int host_notify_dev_register(struct host_notify_dev *ndev);
- extern void host_notify_dev_unregister(struct host_notify_dev *ndev);
- #else
- static inline int host_state_notify(struct host_notify_dev *ndev, int state)
- {return 0; }
- static inline int host_notify_dev_register(struct host_notify_dev *ndev)
- {return 0; }
- static inline void host_notify_dev_unregister(struct host_notify_dev *ndev) {}
- #endif
- #endif /* __LINUX_HOST_NOTIFY_H__ */
|