blob: e49733cc701c19f0f2b855cd827a2b7335c8f26e [file] [log] [blame]
// Copyright 2019 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_XHCI_XHCI_PORT_STATE_H_
#define SRC_DEVICES_USB_DRIVERS_XHCI_XHCI_PORT_STATE_H_
#include <stdint.h>
namespace usb_xhci {
struct PortState {
// Whether or not this is a USB 3.0 port. If this bit is set to false,
// the other fields in this struct are undefined.
bool is_USB3 = false;
// Whether or not a device is currently attached to the PHY.
bool is_connected = false;
// Whether or not the link layer is active for this device.
// Software may not attempt to communicate with the attached device
// unless this is true.
bool link_active = false;
// Whether or not enumeration should be retried for this port.
bool retry = false;
// The primary slot connected to this port.
// For hubs, this would be the slot ID of the hub
// (not any peripherals attached to the hub)
uint8_t slot_id;
std::unique_ptr<TRBContext> wait_for_port_status_change_;
};
} // namespace usb_xhci
#endif // SRC_DEVICES_USB_DRIVERS_XHCI_XHCI_PORT_STATE_H_