2024-04-03 00:48:24 +08:00
|
|
|
/*
|
2025-01-20 21:08:43 +01:00
|
|
|
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
2024-04-03 00:48:24 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
#include "soc/interrupts.h"
|
|
|
|
#include "soc/gpio_sig_map.h"
|
|
|
|
#include "soc/usb_dwc_periph.h"
|
|
|
|
#include "soc/usb_dwc_struct.h"
|
|
|
|
|
|
|
|
/* -------------------------------- Private --------------------------------- */
|
|
|
|
|
2024-12-18 17:04:22 +01:00
|
|
|
static const usb_otg_signal_conn_t dwc_fs_otg_signals = {
|
2024-04-03 00:48:24 +08:00
|
|
|
// Inputs
|
|
|
|
.iddig = USB_OTG11_IDDIG_PAD_IN_IDX,
|
|
|
|
.avalid = USB_OTG11_AVALID_PAD_IN_IDX,
|
|
|
|
.bvalid = USB_SRP_BVALID_PAD_IN_IDX,
|
|
|
|
.vbusvalid = USB_OTG11_VBUSVALID_PAD_IN_IDX,
|
|
|
|
.sessend = USB_SRP_SESSEND_PAD_IN_IDX,
|
|
|
|
// Outputs
|
|
|
|
.idpullup = USB_OTG11_IDPULLUP_PAD_OUT_IDX,
|
|
|
|
.dppulldown = USB_OTG11_DPPULLDOWN_PAD_OUT_IDX,
|
|
|
|
.dmpulldown = USB_OTG11_DMPULLDOWN_PAD_OUT_IDX,
|
|
|
|
.drvvbus = USB_OTG11_DRVVBUS_PAD_OUT_IDX,
|
|
|
|
.chrgvbus = USB_SRP_CHRGVBUS_PAD_OUT_IDX,
|
|
|
|
.dischrgvbus = USB_SRP_DISCHRGVBUS_PAD_OUT_IDX,
|
|
|
|
};
|
|
|
|
|
2025-01-20 21:08:43 +01:00
|
|
|
static const usb_internal_phy_io_t internal_phy_io = {
|
|
|
|
.dp = 27,
|
|
|
|
.dm = 26,
|
|
|
|
};
|
|
|
|
|
2024-04-03 00:48:24 +08:00
|
|
|
/* --------------------------------- Public --------------------------------- */
|
|
|
|
|
|
|
|
const usb_dwc_info_t usb_dwc_info = {
|
|
|
|
.controllers = {
|
|
|
|
// High-Speed USB-DWC
|
|
|
|
[0] = {
|
|
|
|
.fsls_signals = NULL,
|
|
|
|
.otg_signals = NULL,
|
2025-01-20 21:08:43 +01:00
|
|
|
.internal_phy_io = NULL, // HS PHY is not mapped to any GPIO
|
2025-01-22 13:19:22 +01:00
|
|
|
.supported_phys = USB_PHY_INST_UTMI_0,
|
2024-04-03 00:48:24 +08:00
|
|
|
.irq = ETS_USB_OTG_INTR_SOURCE,
|
|
|
|
.irq_2nd_cpu = ETS_USB_OTG_ENDP_MULTI_PROC_INTR_SOURCE,
|
|
|
|
},
|
|
|
|
// Full-Speed USB-DWC
|
|
|
|
[1] = {
|
|
|
|
.fsls_signals = NULL,
|
|
|
|
.otg_signals = &dwc_fs_otg_signals,
|
2025-01-20 21:08:43 +01:00
|
|
|
.internal_phy_io = &internal_phy_io,
|
2025-01-22 13:19:22 +01:00
|
|
|
.supported_phys = USB_PHY_INST_FSLS_INTERN_0,
|
2024-04-03 00:48:24 +08:00
|
|
|
.irq = ETS_USB_OTG11_CH0_INTR_SOURCE,
|
|
|
|
.irq_2nd_cpu = -1,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|