/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
/*
 * Imported from the Linux kernel file drivers/usb/dwc2/hw.h, commit
 * a89bae709b3492b478480a2c9734e7e9393b279c ("usb: dwc2: Move
 * UTMI_PHY_DATA defines closer")
 *
 * hw.h - DesignWare HS OTG Controller hardware definitions
 *
 * Copyright 2004-2013 Synopsys, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions, and the following disclaimer,
 *    without modification.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The names of the above-listed copyright holders may not be used
 *    to endorse or promote products derived from this software without
 *    specific prior written permission.
 *
 * ALTERNATIVELY, this software may be distributed under the terms of the
 * GNU General Public License ("GPL") as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any
 * later version.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef DWC2_REGS_H
#define DWC2_REGS_H

#define HSOTG_REG(x)    (x)

#define GOTGCTL                         HSOTG_REG(0x000)
#define GOTGCTL_CHIRPEN                 BIT(27)
#define GOTGCTL_MULT_VALID_BC_MASK      (0x1f << 22)
#define GOTGCTL_MULT_VALID_BC_SHIFT     22
#define GOTGCTL_OTGVER                  BIT(20)
#define GOTGCTL_BSESVLD                 BIT(19)
#define GOTGCTL_ASESVLD                 BIT(18)
#define GOTGCTL_DBNC_SHORT              BIT(17)
#define GOTGCTL_CONID_B                 BIT(16)
#define GOTGCTL_DBNCE_FLTR_BYPASS       BIT(15)
#define GOTGCTL_DEVHNPEN                BIT(11)
#define GOTGCTL_HSTSETHNPEN             BIT(10)
#define GOTGCTL_HNPREQ                  BIT(9)
#define GOTGCTL_HSTNEGSCS               BIT(8)
#define GOTGCTL_SESREQ                  BIT(1)
#define GOTGCTL_SESREQSCS               BIT(0)

#define GOTGINT                         HSOTG_REG(0x004)
#define GOTGINT_DBNCE_DONE              BIT(19)
#define GOTGINT_A_DEV_TOUT_CHG          BIT(18)
#define GOTGINT_HST_NEG_DET             BIT(17)
#define GOTGINT_HST_NEG_SUC_STS_CHNG    BIT(9)
#define GOTGINT_SES_REQ_SUC_STS_CHNG    BIT(8)
#define GOTGINT_SES_END_DET             BIT(2)

#define GAHBCFG                         HSOTG_REG(0x008)
#define GAHBCFG_AHB_SINGLE              BIT(23)
#define GAHBCFG_NOTI_ALL_DMA_WRIT       BIT(22)
#define GAHBCFG_REM_MEM_SUPP            BIT(21)
#define GAHBCFG_P_TXF_EMP_LVL           BIT(8)
#define GAHBCFG_NP_TXF_EMP_LVL          BIT(7)
#define GAHBCFG_DMA_EN                  BIT(5)
#define GAHBCFG_HBSTLEN_MASK            (0xf << 1)
#define GAHBCFG_HBSTLEN_SHIFT           1
#define GAHBCFG_HBSTLEN_SINGLE          0
#define GAHBCFG_HBSTLEN_INCR            1
#define GAHBCFG_HBSTLEN_INCR4           3
#define GAHBCFG_HBSTLEN_INCR8           5
#define GAHBCFG_HBSTLEN_INCR16          7
#define GAHBCFG_GLBL_INTR_EN            BIT(0)
#define GAHBCFG_CTRL_MASK               (GAHBCFG_P_TXF_EMP_LVL | \
                                         GAHBCFG_NP_TXF_EMP_LVL | \
                                         GAHBCFG_DMA_EN | \
                                         GAHBCFG_GLBL_INTR_EN)

#define GUSBCFG                         HSOTG_REG(0x00C)
#define GUSBCFG_FORCEDEVMODE            BIT(30)
#define GUSBCFG_FORCEHOSTMODE           BIT(29)
#define GUSBCFG_TXENDDELAY              BIT(28)
#define GUSBCFG_ICTRAFFICPULLREMOVE     BIT(27)
#define GUSBCFG_ICUSBCAP                BIT(26)
#define GUSBCFG_ULPI_INT_PROT_DIS       BIT(25)
#define GUSBCFG_INDICATORPASSTHROUGH    BIT(24)
#define GUSBCFG_INDICATORCOMPLEMENT     BIT(23)
#define GUSBCFG_TERMSELDLPULSE          BIT(22)
#define GUSBCFG_ULPI_INT_VBUS_IND       BIT(21)
#define GUSBCFG_ULPI_EXT_VBUS_DRV       BIT(20)
#define GUSBCFG_ULPI_CLK_SUSP_M         BIT(19)
#define GUSBCFG_ULPI_AUTO_RES           BIT(18)
#define GUSBCFG_ULPI_FS_LS              BIT(17)
#define GUSBCFG_OTG_UTMI_FS_SEL         BIT(16)
#define GUSBCFG_PHY_LP_CLK_SEL          BIT(15)
#define GUSBCFG_USBTRDTIM_MASK          (0xf << 10)
#define GUSBCFG_USBTRDTIM_SHIFT         10
#define GUSBCFG_HNPCAP                  BIT(9)
#define GUSBCFG_SRPCAP                  BIT(8)
#define GUSBCFG_DDRSEL                  BIT(7)
#define GUSBCFG_PHYSEL                  BIT(6)
#define GUSBCFG_FSINTF                  BIT(5)
#define GUSBCFG_ULPI_UTMI_SEL           BIT(4)
#define GUSBCFG_PHYIF16                 BIT(3)
#define GUSBCFG_PHYIF8                  (0 << 3)
#define GUSBCFG_TOUTCAL_MASK            (0x7 << 0)
#define GUSBCFG_TOUTCAL_SHIFT           0
#define GUSBCFG_TOUTCAL_LIMIT           0x7
#define GUSBCFG_TOUTCAL(_x)             ((_x) << 0)

#define GRSTCTL                         HSOTG_REG(0x010)
#define GRSTCTL_AHBIDLE                 BIT(31)
#define GRSTCTL_DMAREQ                  BIT(30)
#define GRSTCTL_TXFNUM_MASK             (0x1f << 6)
#define GRSTCTL_TXFNUM_SHIFT            6
#define GRSTCTL_TXFNUM_LIMIT            0x1f
#define GRSTCTL_TXFNUM(_x)              ((_x) << 6)
#define GRSTCTL_TXFFLSH                 BIT(5)
#define GRSTCTL_RXFFLSH                 BIT(4)
#define GRSTCTL_IN_TKNQ_FLSH            BIT(3)
#define GRSTCTL_FRMCNTRRST              BIT(2)
#define GRSTCTL_HSFTRST                 BIT(1)
#define GRSTCTL_CSFTRST                 BIT(0)

#define GINTSTS                         HSOTG_REG(0x014)
#define GINTMSK                         HSOTG_REG(0x018)
#define GINTSTS_WKUPINT                 BIT(31)
#define GINTSTS_SESSREQINT              BIT(30)
#define GINTSTS_DISCONNINT              BIT(29)
#define GINTSTS_CONIDSTSCHNG            BIT(28)
#define GINTSTS_LPMTRANRCVD             BIT(27)
#define GINTSTS_PTXFEMP                 BIT(26)
#define GINTSTS_HCHINT                  BIT(25)
#define GINTSTS_PRTINT                  BIT(24)
#define GINTSTS_RESETDET                BIT(23)
#define GINTSTS_FET_SUSP                BIT(22)
#define GINTSTS_INCOMPL_IP              BIT(21)
#define GINTSTS_INCOMPL_SOOUT           BIT(21)
#define GINTSTS_INCOMPL_SOIN            BIT(20)
#define GINTSTS_OEPINT                  BIT(19)
#define GINTSTS_IEPINT                  BIT(18)
#define GINTSTS_EPMIS                   BIT(17)
#define GINTSTS_RESTOREDONE             BIT(16)
#define GINTSTS_EOPF                    BIT(15)
#define GINTSTS_ISOUTDROP               BIT(14)
#define GINTSTS_ENUMDONE                BIT(13)
#define GINTSTS_USBRST                  BIT(12)
#define GINTSTS_USBSUSP                 BIT(11)
#define GINTSTS_ERLYSUSP                BIT(10)
#define GINTSTS_I2CINT                  BIT(9)
#define GINTSTS_ULPI_CK_INT             BIT(8)
#define GINTSTS_GOUTNAKEFF              BIT(7)
#define GINTSTS_GINNAKEFF               BIT(6)
#define GINTSTS_NPTXFEMP                BIT(5)
#define GINTSTS_RXFLVL                  BIT(4)
#define GINTSTS_SOF                     BIT(3)
#define GINTSTS_OTGINT                  BIT(2)
#define GINTSTS_MODEMIS                 BIT(1)
#define GINTSTS_CURMODE_HOST            BIT(0)

#define GRXSTSR                         HSOTG_REG(0x01C)
#define GRXSTSP                         HSOTG_REG(0x020)
#define GRXSTS_FN_MASK                  (0x7f << 25)
#define GRXSTS_FN_SHIFT                 25
#define GRXSTS_PKTSTS_MASK              (0xf << 17)
#define GRXSTS_PKTSTS_SHIFT             17
#define GRXSTS_PKTSTS_GLOBALOUTNAK      1
#define GRXSTS_PKTSTS_OUTRX             2
#define GRXSTS_PKTSTS_HCHIN             2
#define GRXSTS_PKTSTS_OUTDONE           3
#define GRXSTS_PKTSTS_HCHIN_XFER_COMP   3
#define GRXSTS_PKTSTS_SETUPDONE         4
#define GRXSTS_PKTSTS_DATATOGGLEERR     5
#define GRXSTS_PKTSTS_SETUPRX           6
#define GRXSTS_PKTSTS_HCHHALTED         7
#define GRXSTS_HCHNUM_MASK              (0xf << 0)
#define GRXSTS_HCHNUM_SHIFT             0
#define GRXSTS_DPID_MASK                (0x3 << 15)
#define GRXSTS_DPID_SHIFT               15
#define GRXSTS_BYTECNT_MASK             (0x7ff << 4)
#define GRXSTS_BYTECNT_SHIFT            4
#define GRXSTS_EPNUM_MASK               (0xf << 0)
#define GRXSTS_EPNUM_SHIFT              0

#define GRXFSIZ                         HSOTG_REG(0x024)
#define GRXFSIZ_DEPTH_MASK              (0xffff << 0)
#define GRXFSIZ_DEPTH_SHIFT             0

#define GNPTXFSIZ                       HSOTG_REG(0x028)
/* Use FIFOSIZE_* constants to access this register */

#define GNPTXSTS                        HSOTG_REG(0x02C)
#define GNPTXSTS_NP_TXQ_TOP_MASK                (0x7f << 24)
#define GNPTXSTS_NP_TXQ_TOP_SHIFT               24
#define GNPTXSTS_NP_TXQ_SPC_AVAIL_MASK          (0xff << 16)
#define GNPTXSTS_NP_TXQ_SPC_AVAIL_SHIFT         16
#define GNPTXSTS_NP_TXQ_SPC_AVAIL_GET(_v)       (((_v) >> 16) & 0xff)
#define GNPTXSTS_NP_TXF_SPC_AVAIL_MASK          (0xffff << 0)
#define GNPTXSTS_NP_TXF_SPC_AVAIL_SHIFT         0
#define GNPTXSTS_NP_TXF_SPC_AVAIL_GET(_v)       (((_v) >> 0) & 0xffff)

#define GI2CCTL                         HSOTG_REG(0x0030)
#define GI2CCTL_BSYDNE                  BIT(31)
#define GI2CCTL_RW                      BIT(30)
#define GI2CCTL_I2CDATSE0               BIT(28)
#define GI2CCTL_I2CDEVADDR_MASK         (0x3 << 26)
#define GI2CCTL_I2CDEVADDR_SHIFT        26
#define GI2CCTL_I2CSUSPCTL              BIT(25)
#define GI2CCTL_ACK                     BIT(24)
#define GI2CCTL_I2CEN                   BIT(23)
#define GI2CCTL_ADDR_MASK               (0x7f << 16)
#define GI2CCTL_ADDR_SHIFT              16
#define GI2CCTL_REGADDR_MASK            (0xff << 8)
#define GI2CCTL_REGADDR_SHIFT           8
#define GI2CCTL_RWDATA_MASK             (0xff << 0)
#define GI2CCTL_RWDATA_SHIFT            0

#define GPVNDCTL                        HSOTG_REG(0x0034)
#define GGPIO                           HSOTG_REG(0x0038)
#define GGPIO_STM32_OTG_GCCFG_PWRDWN    BIT(16)

#define GUID                            HSOTG_REG(0x003c)
#define GSNPSID                         HSOTG_REG(0x0040)
#define GHWCFG1                         HSOTG_REG(0x0044)
#define GSNPSID_ID_MASK                 GENMASK(31, 16)

#define GHWCFG2                         HSOTG_REG(0x0048)
#define GHWCFG2_OTG_ENABLE_IC_USB               BIT(31)
#define GHWCFG2_DEV_TOKEN_Q_DEPTH_MASK          (0x1f << 26)
#define GHWCFG2_DEV_TOKEN_Q_DEPTH_SHIFT         26
#define GHWCFG2_HOST_PERIO_TX_Q_DEPTH_MASK      (0x3 << 24)
#define GHWCFG2_HOST_PERIO_TX_Q_DEPTH_SHIFT     24
#define GHWCFG2_NONPERIO_TX_Q_DEPTH_MASK        (0x3 << 22)
#define GHWCFG2_NONPERIO_TX_Q_DEPTH_SHIFT       22
#define GHWCFG2_MULTI_PROC_INT                  BIT(20)
#define GHWCFG2_DYNAMIC_FIFO                    BIT(19)
#define GHWCFG2_PERIO_EP_SUPPORTED              BIT(18)
#define GHWCFG2_NUM_HOST_CHAN_MASK              (0xf << 14)
#define GHWCFG2_NUM_HOST_CHAN_SHIFT             14
#define GHWCFG2_NUM_DEV_EP_MASK                 (0xf << 10)
#define GHWCFG2_NUM_DEV_EP_SHIFT                10
#define GHWCFG2_FS_PHY_TYPE_MASK                (0x3 << 8)
#define GHWCFG2_FS_PHY_TYPE_SHIFT               8
#define GHWCFG2_FS_PHY_TYPE_NOT_SUPPORTED       0
#define GHWCFG2_FS_PHY_TYPE_DEDICATED           1
#define GHWCFG2_FS_PHY_TYPE_SHARED_UTMI         2
#define GHWCFG2_FS_PHY_TYPE_SHARED_ULPI         3
#define GHWCFG2_HS_PHY_TYPE_MASK                (0x3 << 6)
#define GHWCFG2_HS_PHY_TYPE_SHIFT               6
#define GHWCFG2_HS_PHY_TYPE_NOT_SUPPORTED       0
#define GHWCFG2_HS_PHY_TYPE_UTMI                1
#define GHWCFG2_HS_PHY_TYPE_ULPI                2
#define GHWCFG2_HS_PHY_TYPE_UTMI_ULPI           3
#define GHWCFG2_POINT2POINT                     BIT(5)
#define GHWCFG2_ARCHITECTURE_MASK               (0x3 << 3)
#define GHWCFG2_ARCHITECTURE_SHIFT              3
#define GHWCFG2_SLAVE_ONLY_ARCH                 0
#define GHWCFG2_EXT_DMA_ARCH                    1
#define GHWCFG2_INT_DMA_ARCH                    2
#define GHWCFG2_OP_MODE_MASK                    (0x7 << 0)
#define GHWCFG2_OP_MODE_SHIFT                   0
#define GHWCFG2_OP_MODE_HNP_SRP_CAPABLE         0
#define GHWCFG2_OP_MODE_SRP_ONLY_CAPABLE        1
#define GHWCFG2_OP_MODE_NO_HNP_SRP_CAPABLE      2
#define GHWCFG2_OP_MODE_SRP_CAPABLE_DEVICE      3
#define GHWCFG2_OP_MODE_NO_SRP_CAPABLE_DEVICE   4
#define GHWCFG2_OP_MODE_SRP_CAPABLE_HOST        5
#define GHWCFG2_OP_MODE_NO_SRP_CAPABLE_HOST     6
#define GHWCFG2_OP_MODE_UNDEFINED               7

#define GHWCFG3                         HSOTG_REG(0x004c)
#define GHWCFG3_DFIFO_DEPTH_MASK                (0xffff << 16)
#define GHWCFG3_DFIFO_DEPTH_SHIFT               16
#define GHWCFG3_OTG_LPM_EN                      BIT(15)
#define GHWCFG3_BC_SUPPORT                      BIT(14)
#define GHWCFG3_OTG_ENABLE_HSIC                 BIT(13)
#define GHWCFG3_ADP_SUPP                        BIT(12)
#define GHWCFG3_SYNCH_RESET_TYPE                BIT(11)
#define GHWCFG3_OPTIONAL_FEATURES               BIT(10)
#define GHWCFG3_VENDOR_CTRL_IF                  BIT(9)
#define GHWCFG3_I2C                             BIT(8)
#define GHWCFG3_OTG_FUNC                        BIT(7)
#define GHWCFG3_PACKET_SIZE_CNTR_WIDTH_MASK     (0x7 << 4)
#define GHWCFG3_PACKET_SIZE_CNTR_WIDTH_SHIFT    4
#define GHWCFG3_XFER_SIZE_CNTR_WIDTH_MASK       (0xf << 0)
#define GHWCFG3_XFER_SIZE_CNTR_WIDTH_SHIFT      0

#define GHWCFG4                         HSOTG_REG(0x0050)
#define GHWCFG4_DESC_DMA_DYN                    BIT(31)
#define GHWCFG4_DESC_DMA                        BIT(30)
#define GHWCFG4_NUM_IN_EPS_MASK                 (0xf << 26)
#define GHWCFG4_NUM_IN_EPS_SHIFT                26
#define GHWCFG4_DED_FIFO_EN                     BIT(25)
#define GHWCFG4_DED_FIFO_SHIFT          25
#define GHWCFG4_SESSION_END_FILT_EN             BIT(24)
#define GHWCFG4_B_VALID_FILT_EN                 BIT(23)
#define GHWCFG4_A_VALID_FILT_EN                 BIT(22)
#define GHWCFG4_VBUS_VALID_FILT_EN              BIT(21)
#define GHWCFG4_IDDIG_FILT_EN                   BIT(20)
#define GHWCFG4_NUM_DEV_MODE_CTRL_EP_MASK       (0xf << 16)
#define GHWCFG4_NUM_DEV_MODE_CTRL_EP_SHIFT      16
#define GHWCFG4_UTMI_PHY_DATA_WIDTH_MASK        (0x3 << 14)
#define GHWCFG4_UTMI_PHY_DATA_WIDTH_SHIFT       14
#define GHWCFG4_UTMI_PHY_DATA_WIDTH_8           0
#define GHWCFG4_UTMI_PHY_DATA_WIDTH_16          1
#define GHWCFG4_UTMI_PHY_DATA_WIDTH_8_OR_16     2
#define GHWCFG4_ACG_SUPPORTED                   BIT(12)
#define GHWCFG4_IPG_ISOC_SUPPORTED              BIT(11)
#define GHWCFG4_SERVICE_INTERVAL_SUPPORTED      BIT(10)
#define GHWCFG4_XHIBER                          BIT(7)
#define GHWCFG4_HIBER                           BIT(6)
#define GHWCFG4_MIN_AHB_FREQ                    BIT(5)
#define GHWCFG4_POWER_OPTIMIZ                   BIT(4)
#define GHWCFG4_NUM_DEV_PERIO_IN_EP_MASK        (0xf << 0)
#define GHWCFG4_NUM_DEV_PERIO_IN_EP_SHIFT       0

#define GLPMCFG                         HSOTG_REG(0x0054)
#define GLPMCFG_INVSELHSIC              BIT(31)
#define GLPMCFG_HSICCON                 BIT(30)
#define GLPMCFG_RSTRSLPSTS              BIT(29)
#define GLPMCFG_ENBESL                  BIT(28)
#define GLPMCFG_LPM_RETRYCNT_STS_MASK   (0x7 << 25)
#define GLPMCFG_LPM_RETRYCNT_STS_SHIFT  25
#define GLPMCFG_SNDLPM                  BIT(24)
#define GLPMCFG_RETRY_CNT_MASK          (0x7 << 21)
#define GLPMCFG_RETRY_CNT_SHIFT         21
#define GLPMCFG_LPM_REJECT_CTRL_CONTROL BIT(21)
#define GLPMCFG_LPM_ACCEPT_CTRL_ISOC    BIT(22)
#define GLPMCFG_LPM_CHNL_INDX_MASK      (0xf << 17)
#define GLPMCFG_LPM_CHNL_INDX_SHIFT     17
#define GLPMCFG_L1RESUMEOK              BIT(16)
#define GLPMCFG_SLPSTS                  BIT(15)
#define GLPMCFG_COREL1RES_MASK          (0x3 << 13)
#define GLPMCFG_COREL1RES_SHIFT         13
#define GLPMCFG_HIRD_THRES_MASK         (0x1f << 8)
#define GLPMCFG_HIRD_THRES_SHIFT        8
#define GLPMCFG_HIRD_THRES_EN           (0x10 << 8)
#define GLPMCFG_ENBLSLPM                BIT(7)
#define GLPMCFG_BREMOTEWAKE             BIT(6)
#define GLPMCFG_HIRD_MASK               (0xf << 2)
#define GLPMCFG_HIRD_SHIFT              2
#define GLPMCFG_APPL1RES                BIT(1)
#define GLPMCFG_LPMCAP                  BIT(0)

#define GPWRDN                          HSOTG_REG(0x0058)
#define GPWRDN_MULT_VAL_ID_BC_MASK      (0x1f << 24)
#define GPWRDN_MULT_VAL_ID_BC_SHIFT     24
#define GPWRDN_ADP_INT                  BIT(23)
#define GPWRDN_BSESSVLD                 BIT(22)
#define GPWRDN_IDSTS                    BIT(21)
#define GPWRDN_LINESTATE_MASK           (0x3 << 19)
#define GPWRDN_LINESTATE_SHIFT          19
#define GPWRDN_STS_CHGINT_MSK           BIT(18)
#define GPWRDN_STS_CHGINT               BIT(17)
#define GPWRDN_SRP_DET_MSK              BIT(16)
#define GPWRDN_SRP_DET                  BIT(15)
#define GPWRDN_CONNECT_DET_MSK          BIT(14)
#define GPWRDN_CONNECT_DET              BIT(13)
#define GPWRDN_DISCONN_DET_MSK          BIT(12)
#define GPWRDN_DISCONN_DET              BIT(11)
#define GPWRDN_RST_DET_MSK              BIT(10)
#define GPWRDN_RST_DET                  BIT(9)
#define GPWRDN_LNSTSCHG_MSK             BIT(8)
#define GPWRDN_LNSTSCHG                 BIT(7)
#define GPWRDN_DIS_VBUS                 BIT(6)
#define GPWRDN_PWRDNSWTCH               BIT(5)
#define GPWRDN_PWRDNRSTN                BIT(4)
#define GPWRDN_PWRDNCLMP                BIT(3)
#define GPWRDN_RESTORE                  BIT(2)
#define GPWRDN_PMUACTV                  BIT(1)
#define GPWRDN_PMUINTSEL                BIT(0)

#define GDFIFOCFG                       HSOTG_REG(0x005c)
#define GDFIFOCFG_EPINFOBASE_MASK       (0xffff << 16)
#define GDFIFOCFG_EPINFOBASE_SHIFT      16
#define GDFIFOCFG_GDFIFOCFG_MASK        (0xffff << 0)
#define GDFIFOCFG_GDFIFOCFG_SHIFT       0

#define ADPCTL                          HSOTG_REG(0x0060)
#define ADPCTL_AR_MASK                  (0x3 << 27)
#define ADPCTL_AR_SHIFT                 27
#define ADPCTL_ADP_TMOUT_INT_MSK        BIT(26)
#define ADPCTL_ADP_SNS_INT_MSK          BIT(25)
#define ADPCTL_ADP_PRB_INT_MSK          BIT(24)
#define ADPCTL_ADP_TMOUT_INT            BIT(23)
#define ADPCTL_ADP_SNS_INT              BIT(22)
#define ADPCTL_ADP_PRB_INT              BIT(21)
#define ADPCTL_ADPENA                   BIT(20)
#define ADPCTL_ADPRES                   BIT(19)
#define ADPCTL_ENASNS                   BIT(18)
#define ADPCTL_ENAPRB                   BIT(17)
#define ADPCTL_RTIM_MASK                (0x7ff << 6)
#define ADPCTL_RTIM_SHIFT               6
#define ADPCTL_PRB_PER_MASK             (0x3 << 4)
#define ADPCTL_PRB_PER_SHIFT            4
#define ADPCTL_PRB_DELTA_MASK           (0x3 << 2)
#define ADPCTL_PRB_DELTA_SHIFT          2
#define ADPCTL_PRB_DSCHRG_MASK          (0x3 << 0)
#define ADPCTL_PRB_DSCHRG_SHIFT         0

#define GREFCLK                             HSOTG_REG(0x0064)
#define GREFCLK_REFCLKPER_MASK              (0x1ffff << 15)
#define GREFCLK_REFCLKPER_SHIFT             15
#define GREFCLK_REF_CLK_MODE                BIT(14)
#define GREFCLK_SOF_CNT_WKUP_ALERT_MASK     (0x3ff)
#define GREFCLK_SOF_CNT_WKUP_ALERT_SHIFT    0

#define GINTMSK2                        HSOTG_REG(0x0068)
#define GINTMSK2_WKUP_ALERT_INT_MSK     BIT(0)

#define GINTSTS2                        HSOTG_REG(0x006c)
#define GINTSTS2_WKUP_ALERT_INT         BIT(0)

#define HPTXFSIZ                        HSOTG_REG(0x100)
/* Use FIFOSIZE_* constants to access this register */

#define DPTXFSIZN(_a)                   HSOTG_REG(0x104 + (((_a) - 1) * 4))
/* Use FIFOSIZE_* constants to access this register */

/* These apply to the GNPTXFSIZ, HPTXFSIZ and DPTXFSIZN registers */
#define FIFOSIZE_DEPTH_MASK             (0xffff << 16)
#define FIFOSIZE_DEPTH_SHIFT            16
#define FIFOSIZE_STARTADDR_MASK         (0xffff << 0)
#define FIFOSIZE_STARTADDR_SHIFT        0
#define FIFOSIZE_DEPTH_GET(_x)          (((_x) >> 16) & 0xffff)

/* Device mode registers */

#define DCFG                            HSOTG_REG(0x800)
#define DCFG_DESCDMA_EN                 BIT(23)
#define DCFG_EPMISCNT_MASK              (0x1f << 18)
#define DCFG_EPMISCNT_SHIFT             18
#define DCFG_EPMISCNT_LIMIT             0x1f
#define DCFG_EPMISCNT(_x)               ((_x) << 18)
#define DCFG_IPG_ISOC_SUPPORDED         BIT(17)
#define DCFG_PERFRINT_MASK              (0x3 << 11)
#define DCFG_PERFRINT_SHIFT             11
#define DCFG_PERFRINT_LIMIT             0x3
#define DCFG_PERFRINT(_x)               ((_x) << 11)
#define DCFG_DEVADDR_MASK               (0x7f << 4)
#define DCFG_DEVADDR_SHIFT              4
#define DCFG_DEVADDR_LIMIT              0x7f
#define DCFG_DEVADDR(_x)                ((_x) << 4)
#define DCFG_NZ_STS_OUT_HSHK            BIT(2)
#define DCFG_DEVSPD_MASK                (0x3 << 0)
#define DCFG_DEVSPD_SHIFT               0
#define DCFG_DEVSPD_HS                  0
#define DCFG_DEVSPD_FS                  1
#define DCFG_DEVSPD_LS                  2
#define DCFG_DEVSPD_FS48                3

#define DCTL                            HSOTG_REG(0x804)
#define DCTL_SERVICE_INTERVAL_SUPPORTED BIT(19)
#define DCTL_PWRONPRGDONE               BIT(11)
#define DCTL_CGOUTNAK                   BIT(10)
#define DCTL_SGOUTNAK                   BIT(9)
#define DCTL_CGNPINNAK                  BIT(8)
#define DCTL_SGNPINNAK                  BIT(7)
#define DCTL_TSTCTL_MASK                (0x7 << 4)
#define DCTL_TSTCTL_SHIFT               4
#define DCTL_GOUTNAKSTS                 BIT(3)
#define DCTL_GNPINNAKSTS                BIT(2)
#define DCTL_SFTDISCON                  BIT(1)
#define DCTL_RMTWKUPSIG                 BIT(0)

#define DSTS                            HSOTG_REG(0x808)
#define DSTS_SOFFN_MASK                 (0x3fff << 8)
#define DSTS_SOFFN_SHIFT                8
#define DSTS_SOFFN_LIMIT                0x3fff
#define DSTS_SOFFN(_x)                  ((_x) << 8)
#define DSTS_ERRATICERR                 BIT(3)
#define DSTS_ENUMSPD_MASK               (0x3 << 1)
#define DSTS_ENUMSPD_SHIFT              1
#define DSTS_ENUMSPD_HS                 0
#define DSTS_ENUMSPD_FS                 1
#define DSTS_ENUMSPD_LS                 2
#define DSTS_ENUMSPD_FS48               3
#define DSTS_SUSPSTS                    BIT(0)

#define DIEPMSK                         HSOTG_REG(0x810)
#define DIEPMSK_NAKMSK                  BIT(13)
#define DIEPMSK_BNAININTRMSK            BIT(9)
#define DIEPMSK_TXFIFOUNDRNMSK          BIT(8)
#define DIEPMSK_TXFIFOEMPTY             BIT(7)
#define DIEPMSK_INEPNAKEFFMSK           BIT(6)
#define DIEPMSK_INTKNEPMISMSK           BIT(5)
#define DIEPMSK_INTKNTXFEMPMSK          BIT(4)
#define DIEPMSK_TIMEOUTMSK              BIT(3)
#define DIEPMSK_AHBERRMSK               BIT(2)
#define DIEPMSK_EPDISBLDMSK             BIT(1)
#define DIEPMSK_XFERCOMPLMSK            BIT(0)

#define DOEPMSK                         HSOTG_REG(0x814)
#define DOEPMSK_BNAMSK                  BIT(9)
#define DOEPMSK_BACK2BACKSETUP          BIT(6)
#define DOEPMSK_STSPHSERCVDMSK          BIT(5)
#define DOEPMSK_OUTTKNEPDISMSK          BIT(4)
#define DOEPMSK_SETUPMSK                BIT(3)
#define DOEPMSK_AHBERRMSK               BIT(2)
#define DOEPMSK_EPDISBLDMSK             BIT(1)
#define DOEPMSK_XFERCOMPLMSK            BIT(0)

#define DAINT                           HSOTG_REG(0x818)
#define DAINTMSK                        HSOTG_REG(0x81C)
#define DAINT_OUTEP_SHIFT               16
#define DAINT_OUTEP(_x)                 (1 << ((_x) + 16))
#define DAINT_INEP(_x)                  (1 << (_x))

#define DTKNQR1                         HSOTG_REG(0x820)
#define DTKNQR2                         HSOTG_REG(0x824)
#define DTKNQR3                         HSOTG_REG(0x830)
#define DTKNQR4                         HSOTG_REG(0x834)
#define DIEPEMPMSK                      HSOTG_REG(0x834)

#define DVBUSDIS                        HSOTG_REG(0x828)
#define DVBUSPULSE                      HSOTG_REG(0x82C)

#define DIEPCTL0                        HSOTG_REG(0x900)
#define DIEPCTL(_a)                     HSOTG_REG(0x900 + ((_a) * 0x20))

#define DOEPCTL0                        HSOTG_REG(0xB00)
#define DOEPCTL(_a)                     HSOTG_REG(0xB00 + ((_a) * 0x20))

/* EP0 specialness:
 * bits[29..28] - reserved (no SetD0PID, SetD1PID)
 * bits[25..22] - should always be zero, this isn't a periodic endpoint
 * bits[10..0]  - MPS setting different for EP0
 */
#define D0EPCTL_MPS_MASK                (0x3 << 0)
#define D0EPCTL_MPS_SHIFT               0
#define D0EPCTL_MPS_64                  0
#define D0EPCTL_MPS_32                  1
#define D0EPCTL_MPS_16                  2
#define D0EPCTL_MPS_8                   3

#define DXEPCTL_EPENA                   BIT(31)
#define DXEPCTL_EPDIS                   BIT(30)
#define DXEPCTL_SETD1PID                BIT(29)
#define DXEPCTL_SETODDFR                BIT(29)
#define DXEPCTL_SETD0PID                BIT(28)
#define DXEPCTL_SETEVENFR               BIT(28)
#define DXEPCTL_SNAK                    BIT(27)
#define DXEPCTL_CNAK                    BIT(26)
#define DXEPCTL_TXFNUM_MASK             (0xf << 22)
#define DXEPCTL_TXFNUM_SHIFT            22
#define DXEPCTL_TXFNUM_LIMIT            0xf
#define DXEPCTL_TXFNUM(_x)              ((_x) << 22)
#define DXEPCTL_STALL                   BIT(21)
#define DXEPCTL_SNP                     BIT(20)
#define DXEPCTL_EPTYPE_MASK             (0x3 << 18)
#define DXEPCTL_EPTYPE_CONTROL          (0x0 << 18)
#define DXEPCTL_EPTYPE_ISO              (0x1 << 18)
#define DXEPCTL_EPTYPE_BULK             (0x2 << 18)
#define DXEPCTL_EPTYPE_INTERRUPT        (0x3 << 18)

#define DXEPCTL_NAKSTS                  BIT(17)
#define DXEPCTL_DPID                    BIT(16)
#define DXEPCTL_EOFRNUM                 BIT(16)
#define DXEPCTL_USBACTEP                BIT(15)
#define DXEPCTL_NEXTEP_MASK             (0xf << 11)
#define DXEPCTL_NEXTEP_SHIFT            11
#define DXEPCTL_NEXTEP_LIMIT            0xf
#define DXEPCTL_NEXTEP(_x)              ((_x) << 11)
#define DXEPCTL_MPS_MASK                (0x7ff << 0)
#define DXEPCTL_MPS_SHIFT               0
#define DXEPCTL_MPS_LIMIT               0x7ff
#define DXEPCTL_MPS(_x)                 ((_x) << 0)

#define DIEPINT(_a)                     HSOTG_REG(0x908 + ((_a) * 0x20))
#define DOEPINT(_a)                     HSOTG_REG(0xB08 + ((_a) * 0x20))
#define DXEPINT_SETUP_RCVD              BIT(15)
#define DXEPINT_NYETINTRPT              BIT(14)
#define DXEPINT_NAKINTRPT               BIT(13)
#define DXEPINT_BBLEERRINTRPT           BIT(12)
#define DXEPINT_PKTDRPSTS               BIT(11)
#define DXEPINT_BNAINTR                 BIT(9)
#define DXEPINT_TXFIFOUNDRN             BIT(8)
#define DXEPINT_OUTPKTERR               BIT(8)
#define DXEPINT_TXFEMP                  BIT(7)
#define DXEPINT_INEPNAKEFF              BIT(6)
#define DXEPINT_BACK2BACKSETUP          BIT(6)
#define DXEPINT_INTKNEPMIS              BIT(5)
#define DXEPINT_STSPHSERCVD             BIT(5)
#define DXEPINT_INTKNTXFEMP             BIT(4)
#define DXEPINT_OUTTKNEPDIS             BIT(4)
#define DXEPINT_TIMEOUT                 BIT(3)
#define DXEPINT_SETUP                   BIT(3)
#define DXEPINT_AHBERR                  BIT(2)
#define DXEPINT_EPDISBLD                BIT(1)
#define DXEPINT_XFERCOMPL               BIT(0)

#define DIEPTSIZ0                       HSOTG_REG(0x910)
#define DIEPTSIZ0_PKTCNT_MASK           (0x3 << 19)
#define DIEPTSIZ0_PKTCNT_SHIFT          19
#define DIEPTSIZ0_PKTCNT_LIMIT          0x3
#define DIEPTSIZ0_PKTCNT(_x)            ((_x) << 19)
#define DIEPTSIZ0_XFERSIZE_MASK         (0x7f << 0)
#define DIEPTSIZ0_XFERSIZE_SHIFT        0
#define DIEPTSIZ0_XFERSIZE_LIMIT        0x7f
#define DIEPTSIZ0_XFERSIZE(_x)          ((_x) << 0)

#define DOEPTSIZ0                       HSOTG_REG(0xB10)
#define DOEPTSIZ0_SUPCNT_MASK           (0x3 << 29)
#define DOEPTSIZ0_SUPCNT_SHIFT          29
#define DOEPTSIZ0_SUPCNT_LIMIT          0x3
#define DOEPTSIZ0_SUPCNT(_x)            ((_x) << 29)
#define DOEPTSIZ0_PKTCNT                BIT(19)
#define DOEPTSIZ0_XFERSIZE_MASK         (0x7f << 0)
#define DOEPTSIZ0_XFERSIZE_SHIFT        0

#define DIEPTSIZ(_a)                    HSOTG_REG(0x910 + ((_a) * 0x20))
#define DOEPTSIZ(_a)                    HSOTG_REG(0xB10 + ((_a) * 0x20))
#define DXEPTSIZ_MC_MASK                (0x3 << 29)
#define DXEPTSIZ_MC_SHIFT               29
#define DXEPTSIZ_MC_LIMIT               0x3
#define DXEPTSIZ_MC(_x)                 ((_x) << 29)
#define DXEPTSIZ_PKTCNT_MASK            (0x3ff << 19)
#define DXEPTSIZ_PKTCNT_SHIFT           19
#define DXEPTSIZ_PKTCNT_LIMIT           0x3ff
#define DXEPTSIZ_PKTCNT_GET(_v)         (((_v) >> 19) & 0x3ff)
#define DXEPTSIZ_PKTCNT(_x)             ((_x) << 19)
#define DXEPTSIZ_XFERSIZE_MASK          (0x7ffff << 0)
#define DXEPTSIZ_XFERSIZE_SHIFT         0
#define DXEPTSIZ_XFERSIZE_LIMIT         0x7ffff
#define DXEPTSIZ_XFERSIZE_GET(_v)       (((_v) >> 0) & 0x7ffff)
#define DXEPTSIZ_XFERSIZE(_x)           ((_x) << 0)

#define DIEPDMA(_a)                     HSOTG_REG(0x914 + ((_a) * 0x20))
#define DOEPDMA(_a)                     HSOTG_REG(0xB14 + ((_a) * 0x20))

#define DTXFSTS(_a)                     HSOTG_REG(0x918 + ((_a) * 0x20))

#define PCGCTL                          HSOTG_REG(0x0e00)
#define PCGCTL_IF_DEV_MODE              BIT(31)
#define PCGCTL_P2HD_PRT_SPD_MASK        (0x3 << 29)
#define PCGCTL_P2HD_PRT_SPD_SHIFT       29
#define PCGCTL_P2HD_DEV_ENUM_SPD_MASK   (0x3 << 27)
#define PCGCTL_P2HD_DEV_ENUM_SPD_SHIFT  27
#define PCGCTL_MAC_DEV_ADDR_MASK        (0x7f << 20)
#define PCGCTL_MAC_DEV_ADDR_SHIFT       20
#define PCGCTL_MAX_TERMSEL              BIT(19)
#define PCGCTL_MAX_XCVRSELECT_MASK      (0x3 << 17)
#define PCGCTL_MAX_XCVRSELECT_SHIFT     17
#define PCGCTL_PORT_POWER               BIT(16)
#define PCGCTL_PRT_CLK_SEL_MASK         (0x3 << 14)
#define PCGCTL_PRT_CLK_SEL_SHIFT        14
#define PCGCTL_ESS_REG_RESTORED         BIT(13)
#define PCGCTL_EXTND_HIBER_SWITCH       BIT(12)
#define PCGCTL_EXTND_HIBER_PWRCLMP      BIT(11)
#define PCGCTL_ENBL_EXTND_HIBER         BIT(10)
#define PCGCTL_RESTOREMODE              BIT(9)
#define PCGCTL_RESETAFTSUSP             BIT(8)
#define PCGCTL_DEEP_SLEEP               BIT(7)
#define PCGCTL_PHY_IN_SLEEP             BIT(6)
#define PCGCTL_ENBL_SLEEP_GATING        BIT(5)
#define PCGCTL_RSTPDWNMODULE            BIT(3)
#define PCGCTL_PWRCLMP                  BIT(2)
#define PCGCTL_GATEHCLK                 BIT(1)
#define PCGCTL_STOPPCLK                 BIT(0)

#define PCGCCTL1                        HSOTG_REG(0xe04)
#define PCGCCTL1_TIMER                  (0x3 << 1)
#define PCGCCTL1_GATEEN                 BIT(0)

#define EPFIFO(_a)                      HSOTG_REG(0x1000 + ((_a) * 0x1000))

/* Host Mode Registers */

#define HCFG                            HSOTG_REG(0x0400)
#define HCFG_MODECHTIMEN                BIT(31)
#define HCFG_PERSCHEDENA                BIT(26)
#define HCFG_FRLISTEN_MASK              (0x3 << 24)
#define HCFG_FRLISTEN_SHIFT             24
#define HCFG_FRLISTEN_8                         (0 << 24)
#define FRLISTEN_8_SIZE                         8
#define HCFG_FRLISTEN_16                        BIT(24)
#define FRLISTEN_16_SIZE                        16
#define HCFG_FRLISTEN_32                        (2 << 24)
#define FRLISTEN_32_SIZE                        32
#define HCFG_FRLISTEN_64                        (3 << 24)
#define FRLISTEN_64_SIZE                        64
#define HCFG_DESCDMA                    BIT(23)
#define HCFG_RESVALID_MASK              (0xff << 8)
#define HCFG_RESVALID_SHIFT             8
#define HCFG_ENA32KHZ                   BIT(7)
#define HCFG_FSLSSUPP                   BIT(2)
#define HCFG_FSLSPCLKSEL_MASK           (0x3 << 0)
#define HCFG_FSLSPCLKSEL_SHIFT          0
#define HCFG_FSLSPCLKSEL_30_60_MHZ      0
#define HCFG_FSLSPCLKSEL_48_MHZ         1
#define HCFG_FSLSPCLKSEL_6_MHZ          2

#define HFIR                            HSOTG_REG(0x0404)
#define HFIR_FRINT_MASK                 (0xffff << 0)
#define HFIR_FRINT_SHIFT                0
#define HFIR_RLDCTRL                    BIT(16)

#define HFNUM                           HSOTG_REG(0x0408)
#define HFNUM_FRREM_MASK                (0xffff << 16)
#define HFNUM_FRREM_SHIFT               16
#define HFNUM_FRNUM_MASK                (0xffff << 0)
#define HFNUM_FRNUM_SHIFT               0
#define HFNUM_MAX_FRNUM                 0x3fff

#define HPTXSTS                         HSOTG_REG(0x0410)
#define TXSTS_QTOP_ODD                  BIT(31)
#define TXSTS_QTOP_CHNEP_MASK           (0xf << 27)
#define TXSTS_QTOP_CHNEP_SHIFT          27
#define TXSTS_QTOP_TOKEN_MASK           (0x3 << 25)
#define TXSTS_QTOP_TOKEN_SHIFT          25
#define TXSTS_QTOP_TERMINATE            BIT(24)
#define TXSTS_QSPCAVAIL_MASK            (0xff << 16)
#define TXSTS_QSPCAVAIL_SHIFT           16
#define TXSTS_FSPCAVAIL_MASK            (0xffff << 0)
#define TXSTS_FSPCAVAIL_SHIFT           0

#define HAINT                           HSOTG_REG(0x0414)
#define HAINTMSK                        HSOTG_REG(0x0418)
#define HFLBADDR                        HSOTG_REG(0x041c)

#define HPRT0                           HSOTG_REG(0x0440)
#define HPRT0_SPD_MASK                  (0x3 << 17)
#define HPRT0_SPD_SHIFT                 17
#define HPRT0_SPD_HIGH_SPEED            0
#define HPRT0_SPD_FULL_SPEED            1
#define HPRT0_SPD_LOW_SPEED             2
#define HPRT0_TSTCTL_MASK               (0xf << 13)
#define HPRT0_TSTCTL_SHIFT              13
#define HPRT0_PWR                       BIT(12)
#define HPRT0_LNSTS_MASK                (0x3 << 10)
#define HPRT0_LNSTS_SHIFT               10
#define HPRT0_RST                       BIT(8)
#define HPRT0_SUSP                      BIT(7)
#define HPRT0_RES                       BIT(6)
#define HPRT0_OVRCURRCHG                BIT(5)
#define HPRT0_OVRCURRACT                BIT(4)
#define HPRT0_ENACHG                    BIT(3)
#define HPRT0_ENA                       BIT(2)
#define HPRT0_CONNDET                   BIT(1)
#define HPRT0_CONNSTS                   BIT(0)

#define HCCHAR(_ch)                     HSOTG_REG(0x0500 + 0x20 * (_ch))
#define HCCHAR_CHENA                    BIT(31)
#define HCCHAR_CHDIS                    BIT(30)
#define HCCHAR_ODDFRM                   BIT(29)
#define HCCHAR_DEVADDR_MASK             (0x7f << 22)
#define HCCHAR_DEVADDR_SHIFT            22
#define HCCHAR_MULTICNT_MASK            (0x3 << 20)
#define HCCHAR_MULTICNT_SHIFT           20
#define HCCHAR_EPTYPE_MASK              (0x3 << 18)
#define HCCHAR_EPTYPE_SHIFT             18
#define HCCHAR_LSPDDEV                  BIT(17)
#define HCCHAR_EPDIR                    BIT(15)
#define HCCHAR_EPNUM_MASK               (0xf << 11)
#define HCCHAR_EPNUM_SHIFT              11
#define HCCHAR_MPS_MASK                 (0x7ff << 0)
#define HCCHAR_MPS_SHIFT                0

#define HCSPLT(_ch)                     HSOTG_REG(0x0504 + 0x20 * (_ch))
#define HCSPLT_SPLTENA                  BIT(31)
#define HCSPLT_COMPSPLT                 BIT(16)
#define HCSPLT_XACTPOS_MASK             (0x3 << 14)
#define HCSPLT_XACTPOS_SHIFT            14
#define HCSPLT_XACTPOS_MID              0
#define HCSPLT_XACTPOS_END              1
#define HCSPLT_XACTPOS_BEGIN            2
#define HCSPLT_XACTPOS_ALL              3
#define HCSPLT_HUBADDR_MASK             (0x7f << 7)
#define HCSPLT_HUBADDR_SHIFT            7
#define HCSPLT_PRTADDR_MASK             (0x7f << 0)
#define HCSPLT_PRTADDR_SHIFT            0

#define HCINT(_ch)                      HSOTG_REG(0x0508 + 0x20 * (_ch))
#define HCINTMSK(_ch)                   HSOTG_REG(0x050c + 0x20 * (_ch))
#define HCINTMSK_RESERVED14_31          (0x3ffff << 14)
#define HCINTMSK_FRM_LIST_ROLL          BIT(13)
#define HCINTMSK_XCS_XACT               BIT(12)
#define HCINTMSK_BNA                    BIT(11)
#define HCINTMSK_DATATGLERR             BIT(10)
#define HCINTMSK_FRMOVRUN               BIT(9)
#define HCINTMSK_BBLERR                 BIT(8)
#define HCINTMSK_XACTERR                BIT(7)
#define HCINTMSK_NYET                   BIT(6)
#define HCINTMSK_ACK                    BIT(5)
#define HCINTMSK_NAK                    BIT(4)
#define HCINTMSK_STALL                  BIT(3)
#define HCINTMSK_AHBERR                 BIT(2)
#define HCINTMSK_CHHLTD                 BIT(1)
#define HCINTMSK_XFERCOMPL              BIT(0)

#define HCTSIZ(_ch)                     HSOTG_REG(0x0510 + 0x20 * (_ch))
#define TSIZ_DOPNG                      BIT(31)
#define TSIZ_SC_MC_PID_MASK             (0x3 << 29)
#define TSIZ_SC_MC_PID_SHIFT            29
#define TSIZ_SC_MC_PID_DATA0            0
#define TSIZ_SC_MC_PID_DATA2            1
#define TSIZ_SC_MC_PID_DATA1            2
#define TSIZ_SC_MC_PID_MDATA            3
#define TSIZ_SC_MC_PID_SETUP            3
#define TSIZ_PKTCNT_MASK                (0x3ff << 19)
#define TSIZ_PKTCNT_SHIFT               19
#define TSIZ_NTD_MASK                   (0xff << 8)
#define TSIZ_NTD_SHIFT                  8
#define TSIZ_SCHINFO_MASK               (0xff << 0)
#define TSIZ_SCHINFO_SHIFT              0
#define TSIZ_XFERSIZE_MASK              (0x7ffff << 0)
#define TSIZ_XFERSIZE_SHIFT             0

#define HCDMA(_ch)                      HSOTG_REG(0x0514 + 0x20 * (_ch))

#define HCDMAB(_ch)                     HSOTG_REG(0x051c + 0x20 * (_ch))

#define HCFIFO(_ch)                     HSOTG_REG(0x1000 + 0x1000 * (_ch))

/**
 * struct dwc2_dma_desc - DMA descriptor structure,
 * used for both host and gadget modes
 *
 * @status: DMA descriptor status quadlet
 * @buf:    DMA descriptor data buffer pointer
 *
 * DMA Descriptor structure contains two quadlets:
 * Status quadlet and Data buffer pointer.
 */
struct dwc2_dma_desc {
        uint32_t status;
        uint32_t buf;
} __packed;

/* Host Mode DMA descriptor status quadlet */

#define HOST_DMA_A                      BIT(31)
#define HOST_DMA_STS_MASK               (0x3 << 28)
#define HOST_DMA_STS_SHIFT              28
#define HOST_DMA_STS_PKTERR             BIT(28)
#define HOST_DMA_EOL                    BIT(26)
#define HOST_DMA_IOC                    BIT(25)
#define HOST_DMA_SUP                    BIT(24)
#define HOST_DMA_ALT_QTD                BIT(23)
#define HOST_DMA_QTD_OFFSET_MASK        (0x3f << 17)
#define HOST_DMA_QTD_OFFSET_SHIFT       17
#define HOST_DMA_ISOC_NBYTES_MASK       (0xfff << 0)
#define HOST_DMA_ISOC_NBYTES_SHIFT      0
#define HOST_DMA_NBYTES_MASK            (0x1ffff << 0)
#define HOST_DMA_NBYTES_SHIFT           0
#define HOST_DMA_NBYTES_LIMIT           131071

/* Device Mode DMA descriptor status quadlet */

#define DEV_DMA_BUFF_STS_MASK           (0x3 << 30)
#define DEV_DMA_BUFF_STS_SHIFT          30
#define DEV_DMA_BUFF_STS_HREADY         0
#define DEV_DMA_BUFF_STS_DMABUSY        1
#define DEV_DMA_BUFF_STS_DMADONE        2
#define DEV_DMA_BUFF_STS_HBUSY          3
#define DEV_DMA_STS_MASK                (0x3 << 28)
#define DEV_DMA_STS_SHIFT               28
#define DEV_DMA_STS_SUCC                0
#define DEV_DMA_STS_BUFF_FLUSH          1
#define DEV_DMA_STS_BUFF_ERR            3
#define DEV_DMA_L                       BIT(27)
#define DEV_DMA_SHORT                   BIT(26)
#define DEV_DMA_IOC                     BIT(25)
#define DEV_DMA_SR                      BIT(24)
#define DEV_DMA_MTRF                    BIT(23)
#define DEV_DMA_ISOC_PID_MASK           (0x3 << 23)
#define DEV_DMA_ISOC_PID_SHIFT          23
#define DEV_DMA_ISOC_PID_DATA0          0
#define DEV_DMA_ISOC_PID_DATA2          1
#define DEV_DMA_ISOC_PID_DATA1          2
#define DEV_DMA_ISOC_PID_MDATA          3
#define DEV_DMA_ISOC_FRNUM_MASK         (0x7ff << 12)
#define DEV_DMA_ISOC_FRNUM_SHIFT        12
#define DEV_DMA_ISOC_TX_NBYTES_MASK     (0xfff << 0)
#define DEV_DMA_ISOC_TX_NBYTES_LIMIT    0xfff
#define DEV_DMA_ISOC_RX_NBYTES_MASK     (0x7ff << 0)
#define DEV_DMA_ISOC_RX_NBYTES_LIMIT    0x7ff
#define DEV_DMA_ISOC_NBYTES_SHIFT       0
#define DEV_DMA_NBYTES_MASK             (0xffff << 0)
#define DEV_DMA_NBYTES_SHIFT            0
#define DEV_DMA_NBYTES_LIMIT            0xffff

#define MAX_DMA_DESC_NUM_GENERIC        64
#define MAX_DMA_DESC_NUM_HS_ISOC        256

#endif /* DWC2_REGS_H */
