* arch/arm/src/samv7/hardware/sam_usbhs.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
* SAMV7D3 Series Data Sheet
*/
#ifndef __ARCH_ARM_SRC_SAMV7_HARDWARE_SAM_USBHS_H
#define __ARCH_ARM_SRC_SAMV7_HARDWARE_SAM_USBHS_H
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <arch/samv7/chip.h>
#include "hardware/sam_memorymap.h"
* Pre-processor Definitions
****************************************************************************/
#define SAM_USBHS_NENDPOINTS 10
#define SAM_USBHS_NDMACHANNELS 7
#define SAM_USBHS_MAXPACKETSIZE(ep) (((unsigned)(ep) < 1) ? 64 : 1024)
#define SAM_USBHS_NBANKS(ep) (((unsigned)(ep) < 1) ? 1 : (((unsigned)(ep) < 3) ? 3 : 2))
#define SAM_USBHS_DMA(ep) (((unsigned)(ep) < 1) ? false : (((unsigned)(ep) < 8) ? true : false))
#define SAM_USBHS_DEVCTRL_OFFSET 0x0000
#define SAM_USBHS_DEVISR_OFFSET 0x0004
#define SAM_USBHS_DEVICR_OFFSET 0x0008
#define SAM_USBHS_DEVIFR_OFFSET 0x000c
#define SAM_USBHS_DEVIMR_OFFSET 0x0010
#define SAM_USBHS_DEVIDR_OFFSET 0x0014
#define SAM_USBHS_DEVIER_OFFSET 0x0018
#define SAM_USBHS_DEVEPT_OFFSET 0x001c
#define SAM_USBHS_DEVFNUM_OFFSET 0x0020
#define SAM_USBHS_DEVEPTCFG_OFFSET(n) (0x0100+((n)<<2))
#define SAM_USBHS_DEVEPTISR_OFFSET(n) (0x0130+((n)<<2))
#define SAM_USBHS_DEVEPTICR_OFFSET(n) (0x0160+((n)<<2))
#define SAM_USBHS_DEVEPTIFR_OFFSET(n) (0x0190+((n)<<2))
#define SAM_USBHS_DEVEPTIMR_OFFSET(n) (0x01c0+((n)<<2))
#define SAM_USBHS_DEVEPTIER_OFFSET(n) (0x01f0+((n)<<2))
#define SAM_USBHS_DEVEPTIDR_OFFSET(n) (0x0220+((n)<<2))
#define SAM_USBHS_DEVDMANXTDSC_OFFSET(n) (0x0300+((n)<<4))
#define SAM_USBHS_DEVDMAADDR_OFFSET(n) (0x0304+((n)<<4))
#define SAM_USBHS_DEVDMACTRL_OFFSET(n) (0x0308+((n)<<4))
#define SAM_USBHS_DEVDMASTA_OFFSET(n) (0x030c+((n)<<4))
#define SAM_USBHS_HSTCTRL_OFFSET 0x0400
#define SAM_USBHS_HSTISR_OFFSET 0x0404
#define SAM_USBHS_HSTICR_OFFSET 0x0408
#define SAM_USBHS_HSTIFR_OFFSET 0x040c
#define SAM_USBHS_HSTIMR_OFFSET 0x0410
#define SAM_USBHS_HSTIDR_OFFSET 0x0414
#define SAM_USBHS_HSTIER_OFFSET 0x0418
#define SAM_USBHS_HSTPIP_OFFSET 0x041c
#define SAM_USBHS_HSTFNUM_OFFSET 0x0420
#define SAM_USBHS_HSTADDR1_OFFSET 0x0424
#define SAM_USBHS_HSTADDR2_OFFSET 0x0428
#define SAM_USBHS_HSTADDR3_OFFSET 0x042c
#define SAM_USBHS_HSTPIPCFG_OFFSET(n) (0x0500+((n)<<2))
#define SAM_USBHS_HSTPIPISR_OFFSET(n) (0x0530+((n)<<2))
#define SAM_USBHS_HSTPIPICR_OFFSET(n) (0x0560+((n)<<2))
#define SAM_USBHS_HSTPIPIFR_OFFSET(n) (0x0590+((n)<<2))
#define SAM_USBHS_HSTPIPIMR_OFFSET(n) (0x05c0+((n)<<2))
#define SAM_USBHS_HSTPIPIER_OFFSET(n) (0x05f0+((n)<<2))
#define SAM_USBHS_HSTPIPIDR_OFFSET(n) (0x0620+((n)<<2))
#define SAM_USBHS_HSTPIPINRQ_OFFSET(n) (0x0650+((n)<<2))
#define SAM_USBHS_HSTPIPERR_OFFSET(n) (0x0680+((n)<<2))
#define SAM_USBHS_HSTDMANXTDSC_OFFSET(n) (0x0700+((n)<<4))
#define SAM_USBHS_HSTDMAADDR_OFFSET(n) (0x0704+((n)<<4))
#define SAM_USBHS_HSTDMACTRL_OFFSET(n) (0x0708+((n)<<4))
#define SAM_USBHS_HSTDMASTA_OFFSET(n) (0x070c+((n)<<4))
#define SAM_USBHS_CTRL_OFFSET 0x0800
#define SAM_USBHS_SR_OFFSET 0x0804
#define SAM_USBHS_SCR_OFFSET 0x0808
#define SAM_USBHS_SFR_OFFSET 0x080c
#define SAM_USBHS_DEVCTRL (SAM_USBHS_BASE+SAM_USBHS_DEVCTRL_OFFSET)
#define SAM_USBHS_DEVISR (SAM_USBHS_BASE+SAM_USBHS_DEVISR_OFFSET)
#define SAM_USBHS_DEVICR (SAM_USBHS_BASE+SAM_USBHS_DEVICR_OFFSET)
#define SAM_USBHS_DEVIFR (SAM_USBHS_BASE+SAM_USBHS_DEVIFR_OFFSET)
#define SAM_USBHS_DEVIMR (SAM_USBHS_BASE+SAM_USBHS_DEVIMR_OFFSET)
#define SAM_USBHS_DEVIDR (SAM_USBHS_BASE+SAM_USBHS_DEVIDR_OFFSET)
#define SAM_USBHS_DEVIER (SAM_USBHS_BASE+SAM_USBHS_DEVIER_OFFSET)
#define SAM_USBHS_DEVEPT (SAM_USBHS_BASE+SAM_USBHS_DEVEPT_OFFSET)
#define SAM_USBHS_DEVFNUM (SAM_USBHS_BASE+SAM_USBHS_DEVFNUM_OFFSET)
#define SAM_USBHS_DEVEPTCFG(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTCFG_OFFSET(n))
#define SAM_USBHS_DEVEPTISR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTISR_OFFSET(n))
#define SAM_USBHS_DEVEPTICR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTICR_OFFSET(n))
#define SAM_USBHS_DEVEPTIFR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTIFR_OFFSET(n))
#define SAM_USBHS_DEVEPTIMR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTIMR_OFFSET(n))
#define SAM_USBHS_DEVEPTIER(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTIER_OFFSET(n))
#define SAM_USBHS_DEVEPTIDR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVEPTIDR_OFFSET(n))
#define SAM_USBHS_DEVDMANXTDSC(n) (SAM_USBHS_BASE+SAM_USBHS_DEVDMANXTDSC_OFFSET(n))
#define SAM_USBHS_DEVDMAADDR(n) (SAM_USBHS_BASE+SAM_USBHS_DEVDMAADDR_OFFSET(n))
#define SAM_USBHS_DEVDMACTRL(n) (SAM_USBHS_BASE+SAM_USBHS_DEVDMACTRL_OFFSET(n))
#define SAM_USBHS_DEVDMASTA(n) (SAM_USBHS_BASE+SAM_USBHS_DEVDMASTA_OFFSET(n))
#define SAM_USBHS_HSTCTRL (SAM_USBHS_BASE+SAM_USBHS_HSTCTRL_OFFSET)
#define SAM_USBHS_HSTISR (SAM_USBHS_BASE+SAM_USBHS_HSTISR_OFFSET)
#define SAM_USBHS_HSTICR (SAM_USBHS_BASE+SAM_USBHS_HSTICR_OFFSET)
#define SAM_USBHS_HSTIFR (SAM_USBHS_BASE+SAM_USBHS_HSTIFR_OFFSET)
#define SAM_USBHS_HSTIMR (SAM_USBHS_BASE+SAM_USBHS_HSTIMR_OFFSET)
#define SAM_USBHS_HSTIDR (SAM_USBHS_BASE+SAM_USBHS_HSTIDR_OFFSET)
#define SAM_USBHS_HSTIER (SAM_USBHS_BASE+SAM_USBHS_HSTIER_OFFSET)
#define SAM_USBHS_HSTPIP (SAM_USBHS_BASE+SAM_USBHS_HSTPIP_OFFSET)
#define SAM_USBHS_HSTFNUM (SAM_USBHS_BASE+SAM_USBHS_HSTFNUM_OFFSET)
#define SAM_USBHS_HSTADDR1 (SAM_USBHS_BASE+SAM_USBHS_HSTADDR1_OFFSET)
#define SAM_USBHS_HSTADDR2 (SAM_USBHS_BASE+SAM_USBHS_HSTADDR2_OFFSET)
#define SAM_USBHS_HSTADDR3 (SAM_USBHS_BASE+SAM_USBHS_HSTADDR3_OFFSET)
#define SAM_USBHS_HSTPIPCFG(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPCFG_OFFSET(n))
#define SAM_USBHS_HSTPIPISR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPISR_OFFSET(n))
#define SAM_USBHS_HSTPIPICR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPICR_OFFSET(n))
#define SAM_USBHS_HSTPIPIFR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPIFR_OFFSET(n))
#define SAM_USBHS_HSTPIPIMR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPIMR_OFFSET(n))
#define SAM_USBHS_HSTPIPIER(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPIER_OFFSET(n))
#define SAM_USBHS_HSTPIPIDR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPIDR_OFFSET(n))
#define SAM_USBHS_HSTPIPINRQ(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPINRQ_OFFSET(n))
#define SAM_USBHS_HSTPIPERR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTPIPERR_OFFSET(n))
#define SAM_USBHS_HSTDMANXTDSC(n) (SAM_USBHS_BASE+SAM_USBHS_HSTDMANXTDSC_OFFSET(n))
#define SAM_USBHS_HSTDMAADDR(n) (SAM_USBHS_BASE+SAM_USBHS_HSTDMAADDR_OFFSET(n))
#define SAM_USBHS_HSTDMACTRL(n) (SAM_USBHS_BASE+SAM_USBHS_HSTDMACTRL_OFFSET(n))
#define SAM_USBHS_HSTDMASTA(n) (SAM_USBHS_BASE+SAM_USBHS_HSTDMASTA_OFFSET(n)
#define SAM_USBHS_CTRL (SAM_USBHS_BASE+SAM_USBHS_CTRL_OFFSET)
#define SAM_USBHS_SR (SAM_USBHS_BASE+SAM_USBHS_SR_OFFSET)
#define SAM_USBHS_SCR (SAM_USBHS_BASE+SAM_USBHS_SCR_OFFSET)
#define SAM_USBHS_SFR (SAM_USBHS_BASE+SAM_USBHS_SFR_OFFSET)
#define USBHS_DEVCTRL_UADD_SHIFT (0)
#define USBHS_DEVCTRL_UADD_MASK (0x7f << USBHS_DEVCTRL_UADD_SHIFT)
# define USBHS_DEVCTRL_UADD(n) ((n) << USBHS_DEVCTRL_UADD_SHIFT)
#define USBHS_DEVCTRL_ADDEN (1 << 7)
#define USBHS_DEVCTRL_DETACH (1 << 8)
#define USBHS_DEVCTRL_RMWKUP (1 << 9)
#define USBHS_DEVCTRL_SPDCONF_SHIFT (10)
#define USBHS_DEVCTRL_SPDCONF_MASK (3 << USBHS_DEVCTRL_SPDCONF_SHIFT)
# define USBHS_DEVCTRL_SPDCONF_NORMAL (0 << USBHS_DEVCTRL_SPDCONF_SHIFT)
# define USBHS_DEVCTRL_SPDCONF_LOWPOWER (1 << USBHS_DEVCTRL_SPDCONF_SHIFT)
#define USBHS_DEVCTRL_LS (1 << 12)
#define USBHS_DEVCTRL_TSTJ (1 << 13)
#define USBHS_DEVCTRL_TSTK (1 << 14)
#define USBHS_DEVCTRL_TSTPCKT (1 << 15)
#define USBHS_DEVCTRL_OPMODE2 (1 << 16)
* Device Global Interrupt Clear Register
* Device Global Interrupt Set Register
* Device Global Interrupt Mask Register
* Device Global Interrupt Disable Register
* Device Global Interrupt Enable Register
*
* (1) Not clear or set registers
* (2) Not clear register
*/
#define USBHS_DEVINT_SUSPD (1 << 0)
#define USBHS_DEVINT_MSOF (1 << 1)
#define USBHS_DEVINT_SOF (1 << 2)
#define USBHS_DEVINT_EORST (1 << 3)
#define USBHS_DEVINT_WAKEUP (1 << 4)
#define USBHS_DEVINT_EORSM (1 << 5)
#define USBHS_DEVINT_UPRSM (1 << 6)
#define USBHS_DEVINT_PEP_SHIFT (12)
#define USBHS_DEVINT_PEP_MASK (0xfff << USBHS_DEVINT_PEP_SHIFT)
# define USBHS_DEVINT_PEP(n) (1 << ((n)+12))
# define USBHS_DEVINT_PEP0 (1 << 12)
# define USBHS_DEVINT_PEP1 (1 << 13)
# define USBHS_DEVINT_PEP2 (1 << 14)
# define USBHS_DEVINT_PEP3 (1 << 15)
# define USBHS_DEVINT_PEP4 (1 << 16)
# define USBHS_DEVINT_PEP5 (1 << 17)
# define USBHS_DEVINT_PEP6 (1 << 18)
# define USBHS_DEVINT_PEP7 (1 << 19)
# define USBHS_DEVINT_PEP8 (1 << 20)
# define USBHS_DEVINT_PEP9 (1 << 21)
# define USBHS_DEVINT_PEP10 (1 << 22)
# define USBHS_DEVINT_PEP11 (1 << 23)
#define USBHS_DEVINT_DMA_SHIFT (25)
#define USBHS_DEVINT_DMA_MASK (0x7f << USBHS_DEVINT_DMA_SHIFT)
#define USBHS_DEVINT_DMA(n) (1 << ((n)+24))
# define USBHS_DEVINT_DMA1 (1 << 25)
# define USBHS_DEVINT_DMA2 (1 << 26)
# define USBHS_DEVINT_DMA3 (1 << 27)
# define USBHS_DEVINT_DMA4 (1 << 28)
# define USBHS_DEVINT_DMA5 (1 << 29)
# define USBHS_DEVINT_DMA6 (1 << 30)
# define USBHS_DEVINT_DMA7 (1 << 31)
#define USBHS_DEVINT_ALL 0xfefff07f
#define USBHS_DEVEPT_EPEN(n) (1 << ((n)))
# define USBHS_DEVEPT_EPEN0 (1 << 0)
# define USBHS_DEVEPT_EPEN1 (1 << 1)
# define USBHS_DEVEPT_EPEN2 (1 << 2)
# define USBHS_DEVEPT_EPEN3 (1 << 3)
# define USBHS_DEVEPT_EPEN4 (1 << 4)
# define USBHS_DEVEPT_EPEN5 (1 << 5)
# define USBHS_DEVEPT_EPEN6 (1 << 6)
# define USBHS_DEVEPT_EPEN7 (1 << 7)
# define USBHS_DEVEPT_EPEN8 (1 << 8)
# define USBHS_DEVEPT_EPEN9 (1 << 9)
# define USBHS_DEVEPT_ALLEPEN 0x000003ff
#define USBHS_DEVEPT_EPRST(n) (1 << ((n)+16))
# define USBHS_DEVEPT_EPRST0 (1 << 16)
# define USBHS_DEVEPT_EPRST1 (1 << 17)
# define USBHS_DEVEPT_EPRST2 (1 << 18)
# define USBHS_DEVEPT_EPRST3 (1 << 19)
# define USBHS_DEVEPT_EPRST4 (1 << 20)
# define USBHS_DEVEPT_EPRST5 (1 << 21)
# define USBHS_DEVEPT_EPRST6 (1 << 22)
# define USBHS_DEVEPT_EPRST7 (1 << 23)
# define USBHS_DEVEPT_EPRST8 (1 << 24)
# define USBHS_DEVEPT_EPRST9 (1 << 25)
# define USBHS_DEVEPT_ALLEPRST 0x03ff0000
#define USBHS_DEVFNUM_MFNUM_SHIFT (0)
#define USBHS_DEVFNUM_MFNUM_MASK (7 << USBHS_DEVFNUM_MFNUM_SHIFT)
#define USBHS_DEVFNUM_FNUM_SHIFT (3)
#define USBHS_DEVFNUM_FNUM_MASK (0x7ff << USBHS_DEVFNUM_FNUM_SHIFT)
#define USBHS_DEVFNUM_FNCERR (1 << 15)
#define USBHS_DEVEPTCFG_ALLOC (1 << 1)
#define USBHS_DEVEPTCFG_EPBK_SHIFT (2)
#define USBHS_DEVEPTCFG_EPBK_MASK (3 << USBHS_DEVEPTCFG_EPBK_SHIFT)
# define USBHS_DEVEPTCFG_EPBK(n) ((uint32_t)((n)-1) << USBHS_DEVEPTCFG_EPBK_SHIFT)
# define USBHS_DEVEPTCFG_EPBK_1BANK (0 << USBHS_DEVEPTCFG_EPBK_SHIFT)
# define USBHS_DEVEPTCFG_EPBK_2BANK (1 << USBHS_DEVEPTCFG_EPBK_SHIFT)
# define USBHS_DEVEPTCFG_EPBK_3BANK (2 << USBHS_DEVEPTCFG_EPBK_SHIFT)
#define USBHS_DEVEPTCFG_EPSIZE_SHIFT (4)
#define USBHS_DEVEPTCFG_EPSIZE_MASK (7 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_8 (0 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_16 (1 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_32 (2 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_64 (3 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_128 (4 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_256 (5 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_512 (6 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
# define USBHS_DEVEPTCFG_EPSIZE_1024 (7 << USBHS_DEVEPTCFG_EPSIZE_SHIFT)
#define USBHS_DEVEPTCFG_EPDIR_SHIFT (8)
#define USBHS_DEVEPTCFG_EPDIR_MASK (1 << 8)
# define USBHS_DEVEPTCFG_EPDIR(n) ((uint32_t)(n) << 8)
#define USBHS_DEVEPTCFG_AUTOSW (1 << 9)
#define USBHS_DEVEPTCFG_EPTYPE_SHIFT (11)
#define USBHS_DEVEPTCFG_EPTYPE_MASK (3 << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
# define USBHS_DEVEPTCFG_EPTYPE(n) ((uint32_t)(n) << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
# define USBHS_DEVEPTCFG_EPTYPE_CTRL (0 << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
# define USBHS_DEVEPTCFG_EPTYPE_ISO (1 << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
# define USBHS_DEVEPTCFG_EPTYPE_BLK (2 << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
# define USBHS_DEVEPTCFG_EPTYPE_INTRPT (3 << USBHS_DEVEPTCFG_EPTYPE_SHIFT)
#define USBHS_DEVEPTCFG_NBTRANS_SHIFT (13)
#define USBHS_DEVEPTCFG_NBTRANS_MASK (3 << USBHS_DEVEPTCFG_NBTRANS_SHIFT)
# define USBHS_DEVEPTCFG_NBTRANS(n) ((uint32_t)(n) << USBHS_DEVEPTCFG_NBTRANS_SHIFT)
*
* Device Endpoint Status Register
* Device Endpoint Clear Register
* Device Endpoint Set Register
* Device Endpoint Mask Register
* Device Endpoint Enable Register
*
* (1) Control, Bulk, Interrupt endpoints
* (2) Isochronous endpoints only
*/
#define USBHS_DEVEPTINT_TXINI (1 << 0)
#define USBHS_DEVEPTINT_RXOUTI (1 << 1)
#define USBHS_DEVEPTINT_RXSTPI (1 << 2)
#define USBHS_DEVEPTINT_UNDERFI (1 << 2)
#define USBHS_DEVEPTINT_NAKOUTI (1 << 3)
#define USBHS_DEVEPTINT_HBISOINERRI (1 << 3)
#define USBHS_DEVEPTINT_NAKINI (1 << 4)
#define USBHS_DEVEPTINT_HBISOFLUSHI (1 << 4)
#define USBHS_DEVEPTINT_OVERFI (1 << 5)
#define USBHS_DEVEPTINT_STALLEDI (1 << 6)
#define USBHS_DEVEPTINT_CRCERRI (1 << 6)
#define USBHS_DEVEPTINT_SHRTPCKTI (1 << 7)
* and Device Endpoint Enable Registers only
*/
#define USBHS_DEVEPTINT_MDATAI (1 << 8)
#define USBHS_DEVEPTINT_DATAXI (1 << 9)
#define USBHS_DEVEPTINT_ERRORTRANSI (1 << 10)
* and Device Endpoint Enable Registers only
*/
#define USBHS_DEVEPTINT_NBUSYBKI (1 << 12)
#define USBHS_DEVEPTINT_KILLBKI (1 << 13)
* and Device Endpoint Enable Registers only
*/
#define USBHS_DEVEPTINT_FIFOCONI (1 << 14)
#define USBHS_DEVEPTINT_EPDISHDMAI (1 << 16)
#define USBHS_DEVEPTINT_NYETDISI (1 << 17)
#define USBHS_DEVEPTINT_RSTDTI (1 << 18)
#define USBHS_DEVEPTINT_STALLRQI (1 << 19)
#define USBHS_DEVEPTICR_ALLINTS 0x000000ff
#define USBHS_DEVEPTIFR_ALLINTS 0x000010ff
#define USBHS_DEVEPTIDR_ALLINTS 0x000d57ff
#define USBHS_DEVEPTIER_ALLINTS 0x000f77ff
#define USBHS_DEVEPTISR_DTSEQ_SHIFT (8)
#define USBHS_DEVEPTISR_DTSEQ_MASK (3 << USBHS_DEVEPTISR_DTSEQ_SHIFT)
# define USBHS_DEVEPTISR_DTSEQ_DATA0 (0 << USBHS_DEVEPTISR_DTSEQ_SHIFT)
# define USBHS_DEVEPTISR_DTSEQ_DATA1 (1 << USBHS_DEVEPTISR_DTSEQ_SHIFT)
# define USBHS_DEVEPTISR_DTSEQ_DATA2 (2 << USBHS_DEVEPTISR_DTSEQ_SHIFT)
# define USBHS_DEVEPTISR_DTSEQ_MDATA (3 << USBHS_DEVEPTISR_DTSEQ_SHIFT)
#define USBHS_DEVEPTISR_ERRORTRANS (1 << 10)
#define USBHS_DEVEPTISR_NBUSYBK_SHIFT (12)
#define USBHS_DEVEPTISR_NBUSYBK_MASK (3 << USBHS_DEVEPTISR_NBUSYBK_SHIFT)
# define USBHS_DEVEPTISR_NBUSYBK_0BUSY (0 << USBHS_DEVEPTISR_NBUSYBK_SHIFT)
# define USBHS_DEVEPTISR_NBUSYBK_1BUSY (1 << USBHS_DEVEPTISR_NBUSYBK_SHIFT)
# define USBHS_DEVEPTISR_NBUSYBK_2BUSY (2 << USBHS_DEVEPTISR_NBUSYBK_SHIFT)
# define USBHS_DEVEPTISR_NBUSYBK_3BUSY (3 << USBHS_DEVEPTISR_NBUSYBK_SHIFT)
#define USBHS_DEVEPTISR_CURRBK_SHIFT (14)
#define USBHS_DEVEPTISR_CURRBK_MASK (3 << USBHS_DEVEPTISR_CURRBK_SHIFT)
# define USBHS_DEVEPTISR_CURRBK_BANK0 (0 << USBHS_DEVEPTISR_CURRBK_SHIFT)
# define USBHS_DEVEPTISR_CURRBK_BANK1 (1 << USBHS_DEVEPTISR_CURRBK_SHIFT)
# define USBHS_DEVEPTISR_CURRBK_BANK2 (2 << USBHS_DEVEPTISR_CURRBK_SHIFT)
#define USBHS_DEVEPTISR_RWALL (1 << 16)
#define USBHS_DEVEPTISR_CTRLDIR (1 << 17)
# define USBHS_DEVEPTISR_CTRLDIR_OUT (0 << 17)
# define USBHS_DEVEPTISR_CTRLDIR_IN (1 << 17)
#define USBHS_DEVEPTISR_CFGOK (1 << 18)
#define USBHS_DEVEPTISR_BYCT_SHIFT (20)
#define USBHS_DEVEPTISR_BYCT_MASK (0x7ff << USBHS_DEVEPTISR_BYCT_SHIFT)
* (32-bit, 16 byte aligned address)
*/
#define USBHS_DEVDMACTRL_CMD_SHIFT (0)
#define USBHS_DEVDMACTRL_CMD_MASK (3 << USBHS_DEVDMACTRL_CMD_SHIFT)
# define USBHS_DEVDMACTRL_CHANNENB (1 << 0)
# define USBHS_DEVDMACTRL_LDNXTDSC (1 << 1)
# define USBHS_DEVDMACTRL_STOPNOW (0 << USBHS_DEVDMACTRL_CMD_SHIFT)
# define USBHS_DEVDMACTRL_RUNSTOP (1 << USBHS_DEVDMACTRL_CMD_SHIFT)
# define USBHS_DEVDMACTRL_LOADNEXT (2 << USBHS_DEVDMACTRL_CMD_SHIFT)
# define USBHS_DEVDMACTRL_RUNLINK (3 << USBHS_DEVDMACTRL_CMD_SHIFT)
#define USBHS_DEVDMACTRL_ENDTREN (1 << 2)
#define USBHS_DEVDMACTRL_ENDBEN (1 << 3)
#define USBHS_DEVDMACTRL_ENDTRIT (1 << 4)
#define USBHS_DEVDMACTRL_ENDBUFFIT (1 << 5)
#define USBHS_DEVDMACTRL_DESCLDIT (1 << 6)
#define USBHS_DEVDMACTRL_BURSTLCK (1 << 7)
#define USBHS_DEVDMACTRL_BUFLEN_SHIFT (16)
#define USBHS_DEVDMACTRL_BUFLEN_MASK (0xffff << USBHS_DEVDMACTRL_BUFLEN_SHIFT)
# define USBHS_DEVDMACTRL_BUFLEN(n) ((uint32_t)(n) << USBHS_DEVDMACTRL_BUFLEN_SHIFT)
#define USBHS_DEVDMASTA_CHANNENB (1 << 0)
#define USBHS_DEVDMASTA_CHANNACT (1 << 1)
#define USBHS_DEVDMASTA_ENDTRST (1 << 4)
#define USBHS_DEVDMASTA_ENDBUFFST (1 << 5)
#define USBHS_DEVDMASTA_DESCLDST (1 << 6)
#define USBHS_DEVDMASTA_BUFCNT_SHIFT (16)
#define USBHS_DEVDMASTA_BUFCNT_MASK (0xffff << USBHS_DEVDMASTA_BUFCNT_SHIFT)
# define USBHS_DEVDMASTA_BUFCNT(n) ((uint32_t)(n) << USBHS_DEVDMASTA_BUFCNT_SHIFT)
#define USBHS_HSTCTRL_SOFE (1 << 8)
#define USBHS_HSTCTRL_RESET (1 << 9)
#define USBHS_HSTCTRL_RESUME (1 << 10)
#define USBHS_HSTCTRL_SPDCONF (12)
#define USBHS_HSTCTRL_MASK (3 << USBHS_HSTCTRL_SPDCONF)
# define USBHS_HSTCTRL_NORMAL (0 << USBHS_HSTCTRL_SPDCONF)
# define USBHS_HSTCTRL_LOWPOWER (1 << USBHS_HSTCTRL_SPDCONF)
* Host Global Interrupt Clear Register
* Host Global Interrupt Set Register
* Host Global Interrupt Mask Register
* Host Global Interrupt Disable Register
* Host Global Interrupt Enable Register
*
* (1) Not clear or set registers
* (2) Not clear register
*/
#define USBHS_HSTINT_DCONNI (1 << 0)
#define USBHS_HSTINT_DDISCI (1 << 1)
#define USBHS_HSTINT_RSTI (1 << 2)
#define USBHS_HSTINT_RSMEDI (1 << 3)
#define USBHS_HSTINT_RXRSMI (1 << 4)
#define USBHS_HSTINT_HSOFI (1 << 5)
#define USBHS_HSTINT_HWUPI (1 << 6)
#define USBHS_HSTINT_PEP_SHIFT (12)
#define USBHS_HSTINT_PEP_MASK (0xfff << USBHS_HSTINT_PEP_SHIFT)
# define USBHS_HSTINT_PEP(n) (1 << +((n)+12))
# define USBHS_HSTINT_PEP0 (1 << 12)
# define USBHS_HSTINT_PEP1 (1 << 13)
# define USBHS_HSTINT_PEP2 (1 << 14)
# define USBHS_HSTINT_PEP3 (1 << 15)
# define USBHS_HSTINT_PEP4 (1 << 16)
# define USBHS_HSTINT_PEP5 (1 << 17)
# define USBHS_HSTINT_PEP6 (1 << 18)
# define USBHS_HSTINT_PEP7 (1 << 19)
# define USBHS_HSTINT_PEP8 (1 << 20)
# define USBHS_HSTINT_PEP9 (1 << 21)
# define USBHS_HSTINT_PEP10 (1 << 22)
# define USBHS_HSTINT_PEP11 (1 << 23)
#define USBHS_HSTINT_DMA_SHIFT (25)
#define USBHS_HSTINT_DMA_MASK (0x7f << USBHS_HSTINT_DMA_SHIFT)
#define USBHS_HSTINT_DMA(n) (1 << ((n)+24))
# define USBHS_HSTINT_DMA1 (1 << 25)
# define USBHS_HSTINT_DMA2 (1 << 26)
# define USBHS_HSTINT_DMA3 (1 << 27)
# define USBHS_HSTINT_DMA4 (1 << 28)
# define USBHS_HSTINT_DMA5 (1 << 29)
# define USBHS_HSTINT_DMA6 (1 << 30)
# define USBHS_HSTINT_DMA7 (1 << 31)
#define USBHS_HSTPIP_PEN(n) (1 << ((n)))
# define USBHS_HSTPIP_PEN0 (1 << 0)
# define USBHS_HSTPIP_PEN1 (1 << 1)
# define USBHS_HSTPIP_PEN2 (1 << 2)
# define USBHS_HSTPIP_PEN3 (1 << 3)
# define USBHS_HSTPIP_PEN4 (1 << 4)
# define USBHS_HSTPIP_PEN5 (1 << 5)
# define USBHS_HSTPIP_PEN6 (1 << 6)
# define USBHS_HSTPIP_PEN7 (1 << 7)
# define USBHS_HSTPIP_PEN8 (1 << 8)
# define USBHS_HSTPIP_PEN9 (1 << 9)
#define USBHS_HSTPIP_PRST(n) (1 << ((n)+16))
# define USBHS_HSTPIP_PRST0 (1 << 16)
# define USBHS_HSTPIP_PRST1 (1 << 17)
# define USBHS_HSTPIP_PRST2 (1 << 18)
# define USBHS_HSTPIP_PRST3 (1 << 19)
# define USBHS_HSTPIP_PRST4 (1 << 20)
# define USBHS_HSTPIP_PRST5 (1 << 21)
# define USBHS_HSTPIP_PRST6 (1 << 22)
# define USBHS_HSTPIP_PRST7 (1 << 23)
# define USBHS_HSTPIP_PRST8 (1 << 24)
# define USBHS_HSTPIP_PRST9 (1 << 25)
#define USBHS_HSTFNUM_MFNUM_SHIFT (0)
#define USBHS_HSTFNUM_MFNUM_MASK (7 << USBHS_HSTFNUM_MFNUM_SHIFT)
#define USBHS_HSTFNUM_FNUM_SHIFT (3)
#define USBHS_HSTFNUM_FNUM_MASK (0x7ff << USBHS_HSTFNUM_FNUM_SHIFT)
#define USBHS_HSTFNUM_FLENHIGH_SHIFT (16)
#define USBHS_HSTFNUM_FLENHIGH_MASK (0xff << USBHS_HSTFNUM_FLENHIGH_SHIFT)
# define USBHS_HSTFNUM_FLENHIGH(n) ((uint32_t)(n) << USBHS_HSTFNUM_FLENHIGH_SHIFT)
#define USBHS_HSTADDR1_HSTADDRP_SHIFT(n) ((n) << 3)
#define USBHS_HSTADDR1_HSTADDRP_MASK(n) (0x7f << USBHS_HSTADDR1_HSTADDRP_SHIFT(n))
# define USBHS_HSTADDR1_HSTADDRP(n,v) ((uint32_t)(v) << USBHS_HSTADDR1_HSTADDRP_SHIFT(n))
#define USBHS_HSTADDR1_HSTADDRP0_SHIFT (0)
#define USBHS_HSTADDR1_HSTADDRP0_MASK (0x7f << USBHS_HSTADDR1_HSTADDRP0_SHIFT)
# define USBHS_HSTADDR1_HSTADDRP0(n) (0x7f << USBHS_HSTADDR1_HSTADDRP0_SHIFT)
#define USBHS_HSTADDR1_HSTADDRP1_SHIFT (8)
#define USBHS_HSTADDR1_HSTADDRP1_MASK (0x7f << USBHS_HSTADDR1_HSTADDRP1_SHIFT)
# define USBHS_HSTADDR1_HSTADDRP1(n) ((uint32_t)(n) << USBHS_HSTADDR1_HSTADDRP1_SHIFT)
#define USBHS_HSTADDR1_HSTADDRP2_SHIFT (16)
#define USBHS_HSTADDR1_HSTADDRP2_MASK (0x7f << USBHS_HSTADDR1_HSTADDRP2_SHIFT)
# define USBHS_HSTADDR1_HSTADDRP2(n) ((uint32_t)(n) << USBHS_HSTADDR1_HSTADDRP2_SHIFT)
#define USBHS_HSTADDR1_HSTADDRP3_SHIFT (24)
#define USBHS_HSTADDR1_HSTADDRP3_MASK (0x7f << USBHS_HSTADDR1_HSTADDRP3_SHIFT)
# define USBHS_HSTADDR1_HSTADDRP3(n) ((uint32_t)(n) << USBHS_HSTADDR1_HSTADDRP3_SHIFT)
#define USBHS_HSTADDR2_HSTADDRP_SHIFT(n) (((n)-4) << 3)
#define USBHS_HSTADDR2_HSTADDRP_MASK(n) (0x7f << USBHS_HSTADDR2_HSTADDRP_SHIFT(n))
# define USBHS_HSTADDR2_HSTADDRP(n,v) ((uint32_t)(v) << USBHS_HSTADDR2_HSTADDRP_SHIFT(n))
#define USBHS_HSTADDR2_HSTADDRP4_SHIFT (0)
#define USBHS_HSTADDR2_HSTADDRP4_MASK (0x7f << USBHS_HSTADDR2_HSTADDRP4_SHIFT)
# define USBHS_HSTADDR2_HSTADDRP4(n) (0x7f << USBHS_HSTADDR2_HSTADDRP4_SHIFT)
#define USBHS_HSTADDR2_HSTADDRP5_SHIFT (8)
#define USBHS_HSTADDR2_HSTADDRP5_MASK (0x7f << USBHS_HSTADDR2_HSTADDRP5_SHIFT)
# define USBHS_HSTADDR2_HSTADDRP5(n) ((uint32_t)(n) << USBHS_HSTADDR2_HSTADDRP5_SHIFT)
#define USBHS_HSTADDR2_HSTADDRP6_SHIFT (16)
#define USBHS_HSTADDR2_HSTADDRP6_MASK (0x7f << USBHS_HSTADDR2_HSTADDRP6_SHIFT)
# define USBHS_HSTADDR2_HSTADDRP6(n) ((uint32_t)(n) << USBHS_HSTADDR2_HSTADDRP6_SHIFT)
#define USBHS_HSTADDR2_HSTADDRP7_SHIFT (24)
#define USBHS_HSTADDR2_HSTADDRP7_MASK (0x7f << USBHS_HSTADDR2_HSTADDRP7_SHIFT)
# define USBHS_HSTADDR2_HSTADDRP7(n) ((uint32_t)(n) << USBHS_HSTADDR2_HSTADDRP7_SHIFT)
#define USBHS_HSTADDR3_HSTADDRP_SHIFT(n) (((n)-8) << 3)
#define USBHS_HSTADDR3_HSTADDRP_MASK(n) (0x7f << USBHS_HSTADDR3_HSTADDRP_SHIFT(n))
# define USBHS_HSTADDR3_HSTADDRP(n,v) ((uint32_t)(v) << USBHS_HSTADDR3_HSTADDRP_SHIFT(n))
#define USBHS_HSTADDR3_HSTADDRP8_SHIFT (0)
#define USBHS_HSTADDR3_HSTADDRP8_MASK (0x7f << USBHS_HSTADDR3_HSTADDRP8_SHIFT)
# define USBHS_HSTADDR3_HSTADDRP8(n) (0x7f << USBHS_HSTADDR3_HSTADDRP8_SHIFT)
#define USBHS_HSTADDR3_HSTADDRP9_SHIFT (8)
#define USBHS_HSTADDR3_HSTADDRP9_MASK (0x7f << USBHS_HSTADDR3_HSTADDRP9_SHIFT)
# define USBHS_HSTADDR3_HSTADDRP9(n) ((uint32_t)(n) << USBHS_HSTADDR3_HSTADDRP9_SHIFT)
*
* (1) Not for High-Speed Bulk OUT
* (2) For High-Speed Bulk Out
*/
#define USBHS_HSTPIPCFG_ALLOC (1 << 0)
#define USBHS_HSTPIPCFG_PBK_SHIFT (2)
#define USBHS_HSTPIPCFG_PBK_MASK (3 << USBHS_HSTPIPCFG_PBK_SHIFT)
# define USBHS_HSTPIPCFG_PBK_1BANK (0 << USBHS_HSTPIPCFG_PBK_SHIFT)
# define USBHS_HSTPIPCFG_PBK_2BANK (1 << USBHS_HSTPIPCFG_PBK_SHIFT)
# define USBHS_HSTPIPCFG_PBK_3BANK (2 << USBHS_HSTPIPCFG_PBK_SHIFT)
#define USBHS_HSTPIPCFG_PSIZE_SHIFT (4)
#define USBHS_HSTPIPCFG_PSIZE_MASK (7 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_8 (0 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_16 (1 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_32 (2 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_64 (3 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_128 (4 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_256 (5 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_512 (6 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
# define USBHS_HSTPIPCFG_PSIZE_1024 (7 << USBHS_HSTPIPCFG_PSIZE_SHIFT)
#define USBHS_HSTPIPCFG_PTOKEN_SHIFT (8)
#define USBHS_HSTPIPCFG_PTOKEN_MASK (3 << USBHS_HSTPIPCFG_PTOKEN_SHIFT)
# define USBHS_HSTPIPCFG_PTOKEN_SETUP (0 << USBHS_HSTPIPCFG_PTOKEN_SHIFT)
# define USBHS_HSTPIPCFG_PTOKEN_IN (1 << USBHS_HSTPIPCFG_PTOKEN_SHIFT)
# define USBHS_HSTPIPCFG_PTOKEN_OUT (2 << USBHS_HSTPIPCFG_PTOKEN_SHIFT)
#define USBHS_HSTPIPCFG_AUTOSW (1 << 10)
#define USBHS_HSTPIPCFG_PTYPE_SHIFT (12)
#define USBHS_HSTPIPCFG_PTYPE_MASK (3 << USBHS_HSTPIPCFG_PTYPE_SHIFT)
# define USBHS_HSTPIPCFG_PTYPE_CTRL (0 << USBHS_HSTPIPCFG_PTYPE_SHIFT)
# define USBHS_HSTPIPCFG_PTYPE_ISO (1 << USBHS_HSTPIPCFG_PTYPE_SHIFT)
# define USBHS_HSTPIPCFG_PTYPE_BLK (2 << USBHS_HSTPIPCFG_PTYPE_SHIFT)
# define USBHS_HSTPIPCFG_PTYPE_INTRPT (3 << USBHS_HSTPIPCFG_PTYPE_SHIFT)
#define USBHS_HSTPIPCFG_PEPNUM_SHIFT (16)
#define USBHS_HSTPIPCFG_PEPNUM_MASK (15 << USBHS_HSTPIPCFG_PEPNUM_SHIFT)
# define USBHS_HSTPIPCFG_PEPNUM(n) ((uint32_t)(n) << USBHS_HSTPIPCFG_PEPNUM_SHIFT)
#define USBHS_HSTPIPCFG_PINGEN (1 << 20)
#define USBHS_HSTPIPCFG_INTFRQ_SHIFT (24)
#define USBHS_HSTPIPCFG_INTFRQ_MASK (0xff << USBHS_HSTPIPCFG_INTFRQ_SHIFT)
# define USBHS_HSTPIPCFG_INTFRQ(n) ((uint32_t)(n) << USBHS_HSTPIPCFG_INTFRQ_SHIFT)
#define USBHS_HSTPIPCFG_BINTERVAL_SHIFT (24)
#define USBHS_HSTPIPCFG_BINTERVAL_MASK (0xff << USBHS_HSTPIPCFG_BINTERVAL_SHIFT)
# define USBHS_HSTPIPCFG_BINTERVAL(n) ((uint32_t)(n) << USBHS_HSTPIPCFG_BINTERVAL_SHIFT)
*
* Host Pipe Status Register
* Host Pipe Clear Register
* Host Pipe Set Register
* Host Pipe Mask Register
* Host Pipe Enable Register
* Host Pipe Disable Register
*
* (1) Control and bulk pipes
* (2) Interrupt pipes
* (3) Isochronous pipes
*/
#define USBHS_HSTPIPINT_RXINI (1 << 0)
#define USBHS_HSTPIPINT_TXOUTI (1 << 1)
#define USBHS_HSTPIPINT_TXSTPI (1 << 2)
#define USBHS_HSTPIPINT_UNDERFI (1 << 2)
#define USBHS_HSTPIPINT_PERRI (1 << 3)
#define USBHS_HSTPIPINT_NAKEDI (1 << 4)
#define USBHS_HSTPIPINT_OVERFI (1 << 5)
#define USBHS_HSTPIPINT_RXSTALLDI (1 << 6)
#define USBHS_HSTPIPINT_CRCERRI (1 << 6)
#define USBHS_HSTPIPINT_SHRTPCKTI (1 << 7)
#define USBHS_HSTPIPINT_NBUSYBKI (1 << 12)
#define USBHS_HSTPIPINT_FIFOCONI (1 << 14)
#define USBHS_HSTPIPINT_PDISHDMAI (1 << 16)
#define USBHS_HSTPIPINT_PFREEZEI (1 << 17)
#define USBHS_HSTPIPINT_RSTDTI (1 << 18)
#define USBHS_HSTPIPISR_DTSEQ_SHIFT (8)
#define USBHS_HSTPIPISR_DTSEQ_MASK (3 << USBHS_HSTPIPISR_DTSEQ_SHIFT)
# define USBHS_HSTPIPISR_DTSEQ_DATA0 (0 << USBHS_HSTPIPISR_DTSEQ_SHIFT)
# define USBHS_HSTPIPISR_DTSEQ_DATA1 (1 << USBHS_HSTPIPISR_DTSEQ_SHIFT)
#define USBHS_HSTPIPISR_NBUSYBK_SHIFT (12)
#define USBHS_HSTPIPISR_NBUSYBK_MASK (3 << USBHS_HSTPIPISR_NBUSYBK_SHIFT)
# define USBHS_HSTPIPISR_NBUSYBK_0BUSY (0 << USBHS_HSTPIPISR_NBUSYBK_SHIFT)
# define USBHS_HSTPIPISR_NBUSYBK_1BUSY (1 << USBHS_HSTPIPISR_NBUSYBK_SHIFT)
# define USBHS_HSTPIPISR_NBUSYBK_2BUSY (2 << USBHS_HSTPIPISR_NBUSYBK_SHIFT)
# define USBHS_HSTPIPISR_NBUSYBK_3BUSY (3 << USBHS_HSTPIPISR_NBUSYBK_SHIFT)
#define USBHS_HSTPIPISR_CURRBK_SHIFT (14)
#define USBHS_HSTPIPISR_CURRBK_MASK (3 << USBHS_HSTPIPISR_CURRBK_SHIFT)
# define USBHS_HSTPIPISR_CURRBK_BANK0 (0 << USBHS_HSTPIPISR_CURRBK_SHIFT)
# define USBHS_HSTPIPISR_CURRBK_BANK1 (1 << USBHS_HSTPIPISR_CURRBK_SHIFT)
# define USBHS_HSTPIPISR_CURRBK_BANK2 (2 << USBHS_HSTPIPISR_CURRBK_SHIFT)
#define USBHS_HSTPIPISR_RWALL (1 << 16)
#define USBHS_HSTPIPISR_CFGOK (1 << 18)
#define USBHS_HSTPIPISR_PBYCT_SHIFT (20)
#define USBHS_HSTPIPISR_PBYCT_MASK (0x7ff << USBHS_HSTPIPISR_PBYCT_SHIFT)
#define USBHS_HSTPIPINRQ_INRQ_SHIFT (0)
#define USBHS_HSTPIPINRQ_INRQ_MASK (0xff << USBHS_HSTPIPINRQ_INRQ_SHIFT)
# define USBHS_HSTPIPINRQ_INRQ(n) ((uint32_t)(n) << USBHS_HSTPIPINRQ_INRQ_SHIFT)
#define USBHS_HSTPIPINRQ_INMODE (1 << 8)
#define USBHS_HSTPIPERR_DATATGL (1 << 0)
#define USBHS_HSTPIPERR_DATAPID (1 << 1)
#define USBHS_HSTPIPERR_PID (1 << 2)
#define USBHS_HSTPIPERR_TIMEOUT (1 << 3)
#define USBHS_HSTPIPERR_CRC16 (1 << 4)
#define USBHS_HSTPIPERR_COUNTER_SHIFT (5)
#define USBHS_HSTPIPERR_COUNTER_MASK (3 << USBHS_HSTPIPERR_COUNTER_SHIFT)
# define USBHS_HSTPIPERR_COUNTER(n) ((uint32_t)(n) << USBHS_HSTPIPERR_COUNTER_SHIFT)
#define USBHS_HSTDMACTRL_CMD_SHIFT (0)
#define USBHS_HSTDMACTRL_CMD_MASK (3 << USBHS_HSTDMACTRL_CMD_SHIFT)
# define USBHS_HSTDMACTRL_CHANNENB (1 << 0)
# define USBHS_HSTDMACTRL_LDNXTDSC (1 << 1)
# define USBHS_HSTDMACTRL_STOPNOW (0 << USBHS_HSTDMACTRL_CMD_SHIFT)
# define USBHS_HSTDMACTRL_RUNSTOP (1 << USBHS_HSTDMACTRL_CMD_SHIFT)
# define USBHS_HSTDMACTRL_LOADNEXT (2 << USBHS_HSTDMACTRL_CMD_SHIFT)
# define USBHS_HSTDMACTRL_RUNLINK (3 << USBHS_HSTDMACTRL_CMD_SHIFT)
#define USBHS_HSTDMACTRL_ENDTREN (1 << 2)
#define USBHS_HSTDMACTRL_ENDBEN (1 << 3)
#define USBHS_HSTDMACTRL_ENDTRIT (1 << 4)
#define USBHS_HSTDMACTRL_ENDBUFFIT (1 << 5)
#define USBHS_HSTDMACTRL_DESCLDIT (1 << 6)
#define USBHS_HSTDMACTRL_BURSTLCK (1 << 7)
#define USBHS_HSTDMACTRL_BUFLEN_SHIFT (16)
#define USBHS_HSTDMACTRL_BUFLEN_MASK (0xffff << USBHS_HSTDMACTRL_BUFLEN_SHIFT)
# define USBHS_HSTDMACTRL_BUFLEN(n) ((uint32_t)(n) << USBHS_HSTDMACTRL_BUFLEN_SHIFT)
#define USBHS_HSTDMASTA_CHANNENB (1 << 0)
#define USBHS_HSTDMASTA_CHANNACT (1 << 1)
#define USBHS_HSTDMASTA_ENDTRST (1 << 4)
#define USBHS_HSTDMASTA_ENDBUFFST (1 << 5)
#define USBHS_HSTDMASTA_DESCLDST (1 << 6)
#define USBHS_HSTDMASTA_BUFCNT_SHIFT (16)
# define USBHS_HSTDMASTA_BUFCNT(n) ((uint32_t)(n) << USBHS_HSTDMASTA_BUFCNT_SHIFT)
#define USBHS_CTRL_RDERRE (1 << 4)
#define USBHS_CTRL_FRZCLK (1 << 14)
#define USBHS_CTRL_USBE (1 << 15)
#define USBHS_CTRL_UIDE (1 << 24)
# define USBHS_CTRL_UIDE_UIMOD (0 << 24)
# define USBHS_CTRL_UIDE_UOTGID (1 << 24)
#define USBHS_CTRL_UIMOD_MASK (1 << 25)
# define USBHS_CTRL_UIMOD_HOST (0 << 25)
# define USBHS_CTRL_UIMOD_DEVICE (1 << 25)
#define USBHS_SR_RDERRI (1 << 4)
#define USBHS_SR_VBUSRQ (1 << 9)
#define USBHS_SR_SPEED_SHIFT (12)
#define USBHS_SR_SPEED_MASK (3 << USBHS_SR_SPEED_SHIFT)
# define USBHS_SR_SPEED_FULL (0 << USBHS_SR_SPEED_SHIFT)
# define USBHS_SR_SPEED_HIGH (1 << USBHS_SR_SPEED_SHIFT)
# define USBHS_SR_SPEED_LOW (2 << USBHS_SR_SPEED_SHIFT)
#define USBHS_SR_CLKUSABLE (1 << 14)
#define USBHS_SCR_RDERRIC (1 << 4)
#define USBHS_SCR_VBUSRQC (1 << 9)
#define USBHS_SFR_RDERRIS (1 << 4)
#define USBHS_SFR_VBUSRQS (1 << 9)
* Public Types
****************************************************************************/
* Instances of DMA transfer descriptors must by aligned to 16-byte address
* boundaries.
*
* Each value contains the next value of each of three USBHS DMA registers.
* The first register value (USBHS_xxxDMANXTDSCx) is a link that can be
* used to chain sequences of DMA transfers.
*/
struct usbhs_dtd_s
{
uint32_t nxtd;
uint32_t addr;
uint32_t ctrl;
};
#define SIZEOF_USPHS_DTD_S 12
* Public Data
****************************************************************************/
* Public Functions Prototypes
****************************************************************************/
#endif