Home | History | Annotate | Line # | Download | only in imx
      1  1.1  matt /* $Id: imx23_usbphyreg.h,v 1.1 2013/10/07 17:36:40 matt Exp $ */
      2  1.1  matt 
      3  1.1  matt /*
      4  1.1  matt  * Copyright (c) 2013 The NetBSD Foundation, Inc.
      5  1.1  matt  * All rights reserved.
      6  1.1  matt  *
      7  1.1  matt  * This code is derived from software contributed to The NetBSD Foundation
      8  1.1  matt  * by Petri Laakso.
      9  1.1  matt  *
     10  1.1  matt  * Redistribution and use in source and binary forms, with or without
     11  1.1  matt  * modification, are permitted provided that the following conditions
     12  1.1  matt  * are met:
     13  1.1  matt  * 1. Redistributions of source code must retain the above copyright
     14  1.1  matt  *    notice, this list of conditions and the following disclaimer.
     15  1.1  matt  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1  matt  *    notice, this list of conditions and the following disclaimer in the
     17  1.1  matt  *    documentation and/or other materials provided with the distribution.
     18  1.1  matt  *
     19  1.1  matt  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  1.1  matt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  1.1  matt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  1.1  matt  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  1.1  matt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  1.1  matt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  1.1  matt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  1.1  matt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  1.1  matt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  1.1  matt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  1.1  matt  * POSSIBILITY OF SUCH DAMAGE.
     30  1.1  matt  */
     31  1.1  matt 
     32  1.1  matt #ifndef _ARM_IMX_IMX23_USBPHYREG_H_
     33  1.1  matt #define _ARM_IMX_IMX23_USBPHYREG_H_
     34  1.1  matt 
     35  1.1  matt #include <sys/cdefs.h>
     36  1.1  matt 
     37  1.1  matt #define HW_USBPHY_BASE	0x8007C000
     38  1.1  matt #define HW_USBPHY_SIZE	0x2000 /* 8 kB */
     39  1.1  matt 
     40  1.1  matt /*
     41  1.1  matt  * USB PHY Power-Down Register.
     42  1.1  matt  */
     43  1.1  matt #define HW_USBPHY_PWD		0x000
     44  1.1  matt #define HW_USBPHY_PWD_SET	0x004
     45  1.1  matt #define HW_USBPHY_PWD_CLR	0x008
     46  1.1  matt #define HW_USBPHY_PWD_TOG	0x00c
     47  1.1  matt 
     48  1.1  matt #define HW_USBPHY_PWD_RSVD2	__BITS(31, 21)
     49  1.1  matt #define HW_USBPHY_PWD_RXPWDRX	__BIT(20)
     50  1.1  matt #define HW_USBPHY_PWD_RXPWDDIFF	__BIT(19)
     51  1.1  matt #define HW_USBPHY_PWD_RXPWD1PT1	__BIT(18)
     52  1.1  matt #define HW_USBPHY_PWD_RXPWDENV	__BIT(17)
     53  1.1  matt #define HW_USBPHY_PWD_RSVD1	__BITS(16, 13)
     54  1.1  matt #define HW_USBPHY_PWD_TXPWDV2I	__BIT(12)
     55  1.1  matt #define HW_USBPHY_PWD_TXPWDIBIAS	__BIT(11)
     56  1.1  matt #define HW_USBPHY_PWD_TXPWDFS	__BIT(10)
     57  1.1  matt #define HW_USBPHY_PWD_RSVD0	__BITS(9, 0)
     58  1.1  matt 
     59  1.1  matt /*
     60  1.1  matt  * USB PHY Transmitter Control Register.
     61  1.1  matt  */
     62  1.1  matt #define HW_USBPHY_TX		0x010
     63  1.1  matt #define HW_USBPHY_TX_SET	0x014
     64  1.1  matt #define HW_USBPHY_TX_CLR	0x018
     65  1.1  matt #define HW_USBPHY_TX_TOG	0x01c
     66  1.1  matt 
     67  1.1  matt #define HW_USBPHY_TX_RSVD5			__BITS(31, 29)
     68  1.1  matt #define HW_USBPHY_TX_USBPHY_TX_EDGECTRL		__BITS(28, 26)
     69  1.1  matt #define HW_USBPHY_TX_USBPHY_TX_SYNC_INVERT	__BIT(25)
     70  1.1  matt #define HW_USBPHY_TX_USBPHY_TX_SYNC_MUX		__BIT(24)
     71  1.1  matt #define HW_USBPHY_TX_RSVD4		__BITS(23, 22)
     72  1.1  matt #define HW_USBPHY_TX_TXENCAL45DP	__BIT(21)
     73  1.1  matt #define HW_USBPHY_TX_RSVD3		__BIT(20)
     74  1.1  matt #define HW_USBPHY_TX_TXCAL45DP		__BITS(19, 16)
     75  1.1  matt #define HW_USBPHY_TX_RSVD2		__BITS(15, 14)
     76  1.1  matt #define HW_USBPHY_TX_TXENCAL45DN	__BIT(13)
     77  1.1  matt #define HW_USBPHY_TX_RSVD1		__BIT(12)
     78  1.1  matt #define HW_USBPHY_TX_TXCAL45DN		__BITS(11, 8)
     79  1.1  matt #define HW_USBPHY_TX_RSVD0		__BITS(7, 3)
     80  1.1  matt #define HW_USBPHY_TX_D_CAL		__BITS(3, 0)
     81  1.1  matt 
     82  1.1  matt /*
     83  1.1  matt  * USB PHY Receiver Control Register.
     84  1.1  matt  */
     85  1.1  matt #define HW_USBPHY_RX		0x020
     86  1.1  matt #define HW_USBPHY_RX_SET	0x024
     87  1.1  matt #define HW_USBPHY_RX_CLR	0x028
     88  1.1  matt #define HW_USBPHY_RX_TOG	0x02c
     89  1.1  matt 
     90  1.1  matt #define HW_USBPHY_RX_RSVD2	__BITS(31, 23)
     91  1.1  matt #define HW_USBPHY_RX_RXDBYPASS	__BIT(22)
     92  1.1  matt #define HW_USBPHY_RX_RSVD1	__BITS(21, 7)
     93  1.1  matt #define HW_USBPHY_RX_DISCONADJ	__BITS(6, 4)
     94  1.1  matt #define HW_USBPHY_RX_RSVD0	__BIT(3)
     95  1.1  matt #define HW_USBPHY_RX_ENVADJ	__BITS(2, 0)
     96  1.1  matt 
     97  1.1  matt /*
     98  1.1  matt  * USB PHY General Control Register.
     99  1.1  matt  */
    100  1.1  matt #define HW_USBPHY_CTRL		0x030
    101  1.1  matt #define HW_USBPHY_CTRL_SET	0x034
    102  1.1  matt #define HW_USBPHY_CTRL_CLR	0x038
    103  1.1  matt #define HW_USBPHY_CTRL_TOG	0x03c
    104  1.1  matt 
    105  1.1  matt #define HW_USBPHY_CTRL_SFTRST		__BIT(31)
    106  1.1  matt #define HW_USBPHY_CTRL_CLKGATE		__BIT(30)
    107  1.1  matt #define HW_USBPHY_CTRL_UTMI_SUSPENDM	__BIT(29)
    108  1.1  matt #define HW_USBPHY_CTRL_HOST_FORCE_LS_SE0	__BIT(28)
    109  1.1  matt #define HW_USBPHY_CTRL_RSVD3	_	_BITS(27, 14)
    110  1.1  matt #define HW_USBPHY_CTRL_DATA_ON_LRADC	__BIT(13)
    111  1.1  matt #define HW_USBPHY_CTRL_DEVPLUGIN_IRQ	__BIT(12)
    112  1.1  matt #define HW_USBPHY_CTRL_ENIRQDEVPLUGIN	__BIT(11)
    113  1.1  matt #define HW_USBPHY_CTRL_RESUME_IRQ	__BIT(10)
    114  1.1  matt #define HW_USBPHY_CTRL_ENIRQRESUMEDETECT	__BIT(9)
    115  1.1  matt #define HW_USBPHY_CTRL_RSVD2		__BIT(8)
    116  1.1  matt #define HW_USBPHY_CTRL_ENOTGIDDETECT	__BIT(7)
    117  1.1  matt #define HW_USBPHY_CTRL_RSVD1		__BIT(6)
    118  1.1  matt #define HW_USBPHY_CTRL_DEVPLUGIN_POLARITY	__BIT(5)
    119  1.1  matt #define HW_USBPHY_CTRL_ENDEVPLUGINDETECT	__BIT(4)
    120  1.1  matt #define HW_USBPHY_CTRL_HOSTDISCONDETECT_IRQ	__BIT(3)
    121  1.1  matt #define HW_USBPHY_CTRL_ENIRQHOSTDISCON		__BIT(2)
    122  1.1  matt #define HW_USBPHY_CTRL_ENHOSTDISCONDETECT	__BIT(1)
    123  1.1  matt #define HW_USBPHY_CTRL_RSVD0		__BIT(0)
    124  1.1  matt 
    125  1.1  matt /*
    126  1.1  matt  * USB PHY Status Register.
    127  1.1  matt  */
    128  1.1  matt #define HW_USBPHY_STATUS	0x040
    129  1.1  matt 
    130  1.1  matt #define HW_USBPHY_STATUS_RSVD4		__BITS(31, 11)
    131  1.1  matt #define HW_USBPHY_STATUS_RESUME_STATUS	__BIT(10)
    132  1.1  matt #define HW_USBPHY_STATUS_RSVD3		__BIT(9)
    133  1.1  matt #define HW_USBPHY_STATUS_OTGID_STATUS	__BIT(8)
    134  1.1  matt #define HW_USBPHY_STATUS_RSVD2		__BIT(7)
    135  1.1  matt #define HW_USBPHY_STATUS_DEVPLUGIN_STATUS	__BIT(6)
    136  1.1  matt #define HW_USBPHY_STATUS_RSVD1		__BITS(5, 4)
    137  1.1  matt #define HW_USBPHY_STATUS_HOSTDISCONDETECT_STATUS	__BIT(3)
    138  1.1  matt #define HW_USBPHY_STATUS_RSVD0		__BITS(2, 0)
    139  1.1  matt 
    140  1.1  matt /*
    141  1.1  matt  * USB PHY Debug Register.
    142  1.1  matt  */
    143  1.1  matt #define HW_USBPHY_DEBUG		0x050
    144  1.1  matt #define HW_USBPHY_DEBUG_SET	0x054
    145  1.1  matt #define HW_USBPHY_DEBUG_CLR	0x058
    146  1.1  matt #define HW_USBPHY_DEBUG_TOG	0x05c
    147  1.1  matt 
    148  1.1  matt #define HW_USBPHY_DEBUG_RSVD3		__BIT(31)
    149  1.1  matt #define HW_USBPHY_DEBUG_CLKGATE		__BIT(30)
    150  1.1  matt #define HW_USBPHY_DEBUG_HOST_RESUME_DEBUG	__BIT(29)
    151  1.1  matt #define HW_USBPHY_DEBUG_SQUELCHRESETLENGTH	__BITS(28, 25)
    152  1.1  matt #define HW_USBPHY_DEBUG_ENSQUELCHRESET		__BIT(24)
    153  1.1  matt #define HW_USBPHY_DEBUG_RSVD2			__BITS(23, 21)
    154  1.1  matt #define HW_USBPHY_DEBUG_SQUELCHRESETCOUNT	__BITS(20, 16)
    155  1.1  matt #define HW_USBPHY_DEBUG_RSVD1			__BITS(15, 13)
    156  1.1  matt #define HW_USBPHY_DEBUG_ENTX2RXCOUNT		__BIT(12)
    157  1.1  matt #define HW_USBPHY_DEBUG_TX2RXCOUNT		__BITS(11, 8)
    158  1.1  matt #define HW_USBPHY_DEBUG_RSVD0			__BITS(7, 6)
    159  1.1  matt #define HW_USBPHY_DEBUG_ENHSTPULLDOWN		__BITS(5, 4)
    160  1.1  matt #define HW_USBPHY_DEBUG_HSTPULLDOWN		__BITS(3, 2)
    161  1.1  matt #define HW_USBPHY_DEBUG_DEBUG_INTERFACE_HOLD	__BIT(1)
    162  1.1  matt #define HW_USBPHY_DEBUG_OTGIDPIOLOCK		__BIT(0)
    163  1.1  matt 
    164  1.1  matt /*
    165  1.1  matt  * UTMI Debug Status Register 0.
    166  1.1  matt  */
    167  1.1  matt #define HW_USBPHY_DEBUG0_STATUS	0x060
    168  1.1  matt 
    169  1.1  matt #define HW_USBPHY_DEBUG0_STATUS_SQUELCH_COUNT 		__BITS(31, 26)
    170  1.1  matt #define HW_USBPHY_DEBUG0_STATUS_UTMI_RXERROR_FAIL_COUNT	__BITS(25, 16)
    171  1.1  matt #define HW_USBPHY_DEBUG0_STATUS_LOOP_BACK_FAIL_COUNT	__BITS(15, 0)
    172  1.1  matt 
    173  1.1  matt /*
    174  1.1  matt  * UTMI Debug Status Register 1.
    175  1.1  matt  */
    176  1.1  matt #define HW_USBPHY_DEBUG1	0x070
    177  1.1  matt #define HW_USBPHY_DEBUG1_SET	0x074
    178  1.1  matt #define HW_USBPHY_DEBUG1_CLR	0x078
    179  1.1  matt #define HW_USBPHY_DEBUG1_TOG	0x07c
    180  1.1  matt 
    181  1.1  matt #define HW_USBPHY_DEBUG1_RSVD1		__BITS(31, 15)
    182  1.1  matt #define HW_USBPHY_DEBUG1_ENTAILADJVD	__BITS(14, 13)
    183  1.1  matt #define HW_USBPHY_DEBUG1_ENTX2TX	__BIT(12)
    184  1.1  matt #define HW_USBPHY_DEBUG1_RSVD0		__BITS(11, 4)
    185  1.1  matt #define HW_USBPHY_DEBUG1_DBG_ADDRESS	__BITS(3, 0)
    186  1.1  matt 
    187  1.1  matt /*
    188  1.1  matt  * UTMI RTL Version.
    189  1.1  matt  */
    190  1.1  matt #define HW_USBPHY_VERSION	0x080
    191  1.1  matt 
    192  1.1  matt #define HW_USBPHY_VERSION_MAJOR	__BITS(31, 24)
    193  1.1  matt #define HW_USBPHY_VERSION_MINOR	__BITS(23, 16)
    194  1.1  matt #define HW_USBPHY_VERSION_STEP	__BITS(15, 0)
    195  1.1  matt 
    196  1.1  matt /*
    197  1.1  matt  * USB PHY IP Block Register.
    198  1.1  matt  */
    199  1.1  matt #define HW_USBPHY_IP		0x090
    200  1.1  matt #define HW_USBPHY_IP_SET	0x094
    201  1.1  matt #define HW_USBPHY_IP_CLR	0x098
    202  1.1  matt #define HW_USBPHY_IP_TOG	0x09c
    203  1.1  matt 
    204  1.1  matt #define HW_USBPHY_IP_RSVD1	__BITS(31, 25)
    205  1.1  matt #define HW_USBPHY_IP_DIV_SEL	__BITS(24, 23)
    206  1.1  matt #define HW_USBPHY_IP_LFR_SEL	__BITS(22, 21)
    207  1.1  matt #define HW_USBPHY_IP_CP_SEL	__BITS(20, 19)
    208  1.1  matt #define HW_USBPHY_IP_TSTI_TX_DP	__BIT(18)
    209  1.1  matt #define HW_USBPHY_IP_TSTI_TX_DM	__BIT(17)
    210  1.1  matt #define HW_USBPHY_IP_ANALOG_TESTMODE	__BIT(16)
    211  1.1  matt #define HW_USBPHY_IP_RSVD0		__BITS(15, 3)
    212  1.1  matt #define HW_USBPHY_IP_EN_USB_CLKS	__BIT(2)
    213  1.1  matt #define HW_USBPHY_IP_PLL_LOCKED		__BIT(1)
    214  1.1  matt #define HW_USBPHY_IP_PLL_POWER		__BIT(0)
    215  1.1  matt 
    216  1.1  matt #endif /* !_ARM_IMX_IMX23_USBPHYREG_H_ */
    217