| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SRC_DEVICES_USB_DRIVERS_NELSON_USB_PHY_XHCI_DEVICE_H_ |
| #define SRC_DEVICES_USB_DRIVERS_NELSON_USB_PHY_XHCI_DEVICE_H_ |
| |
| #include <ddktl/device.h> |
| #include <ddktl/protocol/usb/phy.h> |
| |
| namespace nelson_usb_phy { |
| |
| class XhciDevice; |
| using XhciDeviceType = ddk::Device<XhciDevice>; |
| |
| // Device for binding the XHCI driver. |
| class XhciDevice : public XhciDeviceType, |
| public ddk::UsbPhyProtocol<XhciDevice, ddk::base_protocol> { |
| public: |
| explicit XhciDevice(zx_device_t* parent) : XhciDeviceType(parent), phy_(parent) {} |
| // Device protocol implementation. |
| void DdkRelease() { delete this; } |
| void UsbPhyConnectStatusChanged(bool connected) {} |
| |
| private: |
| ddk::UsbPhyProtocolClient phy_; |
| DISALLOW_COPY_ASSIGN_AND_MOVE(XhciDevice); |
| }; |
| |
| } // namespace nelson_usb_phy |
| |
| #endif // SRC_DEVICES_USB_DRIVERS_NELSON_USB_PHY_XHCI_DEVICE_H_ |