mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
feat(soc/usb): Add USB related changes to soc_caps and usb_dwc_periph
This commit changes the following: - Add types and data structures indicating the available USB controllers for each target.
This commit is contained in:
@@ -4,8 +4,79 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "soc/usb_dwc_periph.h"
|
||||
#include <stddef.h>
|
||||
#include "soc/gpio_sig_map.h"
|
||||
#include "soc/usb_periph.h"
|
||||
#include "soc/interrupts.h"
|
||||
#include "soc/usb_dwc_periph.h"
|
||||
|
||||
/* -------------------------------- Private --------------------------------- */
|
||||
|
||||
static const usb_fsls_serial_signal_conn_t fsls_signals = {
|
||||
// Inputs
|
||||
.rx_dp = USB_EXTPHY_VP_IDX,
|
||||
.rx_dm = USB_EXTPHY_VM_IDX,
|
||||
.rx_rcv = USB_EXTPHY_RCV_IDX,
|
||||
// Outputs
|
||||
.suspend_n = USB_EXTPHY_SUSPND_IDX,
|
||||
.tx_enable_n = USB_EXTPHY_OEN_IDX,
|
||||
.tx_dp = USB_EXTPHY_VPO_IDX,
|
||||
.tx_dm = USB_EXTPHY_VMO_IDX,
|
||||
.fs_edge_sel = USB_EXTPHY_SPEED_IDX,
|
||||
};
|
||||
|
||||
static const usb_utmi_otg_signal_conn_t otg_signals = {
|
||||
// Inputs
|
||||
.iddig = USB_OTG_IDDIG_IN_IDX,
|
||||
.avalid = USB_OTG_AVALID_IN_IDX,
|
||||
.bvalid = USB_SRP_BVALID_IN_IDX,
|
||||
.vbusvalid = USB_OTG_VBUSVALID_IN_IDX,
|
||||
.sessend = USB_SRP_SESSEND_IN_IDX,
|
||||
// Outputs
|
||||
.idpullup = USB_OTG_IDPULLUP_IDX,
|
||||
.dppulldown = USB_OTG_DPPULLDOWN_IDX,
|
||||
.dmpulldown = USB_OTG_DMPULLDOWN_IDX,
|
||||
.drvvbus = USB_OTG_DRVVBUS_IDX,
|
||||
.chrgvbus = USB_SRP_CHRGVBUS_IDX,
|
||||
.dischrgvbus = USB_SRP_DISCHRGVBUS_IDX,
|
||||
};
|
||||
|
||||
/* --------------------------------- Public --------------------------------- */
|
||||
|
||||
const usb_dwc_info_t usb_dwc_info = {
|
||||
.controllers = {
|
||||
[0] = {
|
||||
.fsls_signals = &fsls_signals,
|
||||
.otg_signals = &otg_signals,
|
||||
.irq = ETS_USB_INTR_SOURCE,
|
||||
.irq_2nd_cpu = -1,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/* ------------------------------- Deprecated ------------------------------- */
|
||||
|
||||
/*
|
||||
Note: These IO pins are deprecated. When connecting USB OTG to an external FSLS
|
||||
PHY, the FSLS Serial Interface signals can be routed to any GPIO via the GPIO
|
||||
matrix. Thus, this mapping of signals to IO pins is meaningless.
|
||||
|
||||
Todo: Remove in IDF v6.0 (IDF-9029)
|
||||
*/
|
||||
const usb_iopin_dsc_t usb_periph_iopins[] = {
|
||||
{USBPHY_VP_NUM, USB_EXTPHY_VP_IDX, 0, 1},
|
||||
{USBPHY_VM_NUM, USB_EXTPHY_VM_IDX, 0, 1},
|
||||
{USBPHY_RCV_NUM, USB_EXTPHY_RCV_IDX, 0, 1},
|
||||
{USBPHY_OEN_NUM, USB_EXTPHY_OEN_IDX, 1, 1},
|
||||
{USBPHY_VPO_NUM, USB_EXTPHY_VPO_IDX, 1, 1},
|
||||
{USBPHY_VMO_NUM, USB_EXTPHY_VMO_IDX, 1, 1},
|
||||
{GPIO_MATRIX_CONST_ONE_INPUT, USB_OTG_IDDIG_IN_IDX, 0, 0}, //connected connector is mini-B
|
||||
//connected connector is mini-B
|
||||
{GPIO_MATRIX_CONST_ONE_INPUT, USB_SRP_BVALID_IN_IDX, 0, 0}, //HIGH to force USB device mode
|
||||
{GPIO_MATRIX_CONST_ONE_INPUT, USB_OTG_VBUSVALID_IN_IDX, 0, 0}, //receiving a valid Vbus from host
|
||||
{GPIO_MATRIX_CONST_ZERO_INPUT, USB_OTG_AVALID_IN_IDX, 0, 0},
|
||||
{-1, -1, 0, 0}
|
||||
};
|
||||
|
||||
/*
|
||||
Bunch of constants for USB peripheral: GPIO signals
|
||||
|
Reference in New Issue
Block a user