123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
- */
- #ifndef _DP_USBPD_H_
- #define _DP_USBPD_H_
- #include <linux/types.h>
- #include "dp_hpd.h"
- struct device;
- /**
- * enum dp_usbpd_port - usb/dp port type
- * @DP_USBPD_PORT_NONE: port not configured
- * @DP_USBPD_PORT_UFP_D: Upstream Facing Port - DisplayPort
- * @DP_USBPD_PORT_DFP_D: Downstream Facing Port - DisplayPort
- * @DP_USBPD_PORT_D_UFP_D: Both UFP & DFP - DisplayPort
- */
- enum dp_usbpd_port {
- DP_USBPD_PORT_NONE,
- DP_USBPD_PORT_UFP_D,
- DP_USBPD_PORT_DFP_D,
- DP_USBPD_PORT_D_UFP_D,
- };
- /**
- * struct dp_usbpd - DisplayPort status
- *
- * @port: port configured
- * @low_pow_st: low power state
- * @adaptor_dp_en: adaptor functionality enabled
- * @usb_config_req: request to switch to usb
- * @exit_dp_mode: request exit from displayport mode
- * @debug_en: bool to specify debug mode
- */
- struct dp_usbpd {
- struct dp_hpd base;
- enum dp_usbpd_port port;
- bool low_pow_st;
- bool adaptor_dp_en;
- bool usb_config_req;
- bool exit_dp_mode;
- bool debug_en;
- };
- #if IS_ENABLED(CONFIG_DRM_MSM_DP_USBPD_LEGACY)
- /**
- * dp_usbpd_get() - setup usbpd module
- *
- * @dev: device instance of the caller
- * @cb: struct containing callback function pointers.
- *
- * This function allows the client to initialize the usbpd
- * module. The module will communicate with usb driver and
- * handles the power delivery (PD) communication with the
- * sink/usb device. This module will notify the client using
- * the callback functions about the connection and status.
- */
- struct dp_hpd *dp_usbpd_get(struct device *dev, struct dp_hpd_cb *cb);
- void dp_usbpd_put(struct dp_hpd *pd);
- #else
- static inline struct dp_hpd *dp_usbpd_get(struct device *dev,
- struct dp_hpd_cb *cb)
- {
- return ERR_PTR(-ENODEV);
- }
- static inline void dp_usbpd_put(struct dp_hpd *pd)
- {
- }
- #endif /* CONFIG_DRM_MSM_DP_USBPD_LEGACY */
- #endif /* _DP_USBPD_H_ */
|