| // Copyright 2024 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_AML_USB_PHY_USB_PHY2_H_ |
| #define SRC_DEVICES_USB_DRIVERS_AML_USB_PHY_USB_PHY2_H_ |
| |
| #include <lib/mmio/mmio.h> |
| |
| #include "src/devices/usb/drivers/aml-usb-phy/usb-phy-base.h" |
| |
| namespace aml_usb_phy { |
| |
| class AmlUsbPhy; |
| |
| class UsbPhy2 final : public UsbPhyBase { |
| public: |
| UsbPhy2(uint8_t idx, fdf::MmioBuffer mmio, bool is_otg_capable, UsbMode dr_mode) |
| : UsbPhyBase(std::move(mmio), is_otg_capable, dr_mode), idx_(idx) {} |
| |
| void InitPll(PhyType type, bool needs_hack); |
| |
| uint8_t idx() const { return idx_; } |
| |
| void dump_regs() const override; |
| |
| private: |
| void SetModeInternal(UsbMode mode, fdf::MmioBuffer& usbctrl_mmio) override; |
| |
| const uint8_t idx_; // For indexing into usbctrl_mmio. |
| }; |
| |
| } // namespace aml_usb_phy |
| |
| #endif // SRC_DEVICES_USB_DRIVERS_AML_USB_PHY_USB_PHY2_H_ |