xref: /openbsd/sys/arch/octeon/dev/octxctlreg.h (revision 036c4991)
1 /*	$OpenBSD: octxctlreg.h,v 1.2 2018/01/16 15:50:28 visa Exp $	*/
2 
3 /*
4  * Copyright (c) 2017 Visa Hankala
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #ifndef _OCTXCTLREG_H_
20 #define _OCTXCTLREG_H_
21 
22 #define XCTL_CTL			0x00
23 #define   XCTL_CTL_CLEAR_BIST			0x8000000000000000ull
24 #define   XCTL_CTL_START_BIST			0x4000000000000000ull
25 #define   XCTL_CTL_REFCLK_SEL			0x3000000000000000ull
26 #define   XCTL_CTL_REFCLK_SEL_SHIFT		60
27 #define   XCTL_CTL_SSC_EN			0x0800000000000000ull
28 #define   XCTL_CTL_SSC_RANG			0x0700000000000000ull
29 #define   XCTL_CTL_SSC_REFCLK_SEL		0x00ff800000000000ull
30 #define   XCTL_CTL_MPLL_MULT			0x00007f0000000000ull
31 #define   XCTL_CTL_MPLL_MULT_SHIFT		40
32 #define   XCTL_CTL_REFCLK_SSP_EN		0x0000008000000000ull
33 #define   XCTL_CTL_REFCLK_DIV2			0x0000004000000000ull
34 #define   XCTL_CTL_REFCLK_FSEL			0x0000003f00000000ull
35 #define   XCTL_CTL_REFCLK_FSEL_SHIFT		32
36 #define   XCTL_CTL_CLK_EN			0x0000000040000000ull
37 #define   XCTL_CTL_CLK_BYP_SEL			0x0000000020000000ull
38 #define   XCTL_CTL_CLKDIV_RST			0x0000000010000000ull
39 #define   XCTL_CTL_CLKDIV_SEL			0x0000000007000000ull
40 #define   XCTL_CTL_CLKDIV_SEL_SHIFT		24
41 #define   XCTL_CTL_USB3_PORT_PERM_ATTACH	0x0000000000200000ull
42 #define   XCTL_CTL_USB2_PORT_PERM_ATTACH	0x0000000000100000ull
43 #define   XCTL_CTL_USB3_PORT_DIS		0x0000000000040000ull
44 #define   XCTL_CTL_USB2_PORT_DIS		0x0000000000010000ull
45 #define   XCTL_CTL_SSPOWER_EN			0x0000000000004000ull
46 #define   XCTL_CTL_HSPOWER_EN			0x0000000000001000ull
47 #define   XCTL_CTL_CSCLK_EN			0x0000000000000010ull
48 #define   XCTL_CTL_DRD_MODE			0x0000000000000008ull
49 #define   XCTL_CTL_UPHY_RST			0x0000000000000004ull
50 #define   XCTL_CTL_UAHC_RST			0x0000000000000002ull
51 #define   XCTL_CTL_UCTL_RST			0x0000000000000001ull
52 
53 #define XCTL_HOST_CFG			0xe0
54 #define   XCTL_HOST_CFG_PPC_EN			0x0000000002000000ull
55 #define   XCTL_HOST_CFG_PPC_ACTIVE_HIGH_EN	0x0000000001000000ull
56 
57 #define XCTL_SHIM_CFG			0xe8
58 #define   XCTL_SHIM_CFG_DMA_BYTE_SWAP		0x0000000000000300ull
59 #define   XCTL_SHIM_CFG_DMA_BYTE_SWAP_SHIFT	8
60 #define   XCTL_SHIM_CFG_CSR_BYTE_SWAP		0x0000000000000003ull
61 #define   XCTL_SHIM_CFG_CSR_BYTE_SWAP_SHIFT	0
62 
63 /*
64  * DWC3 core control registers.
65  * These are relative to the xHCI register space.
66  */
67 
68 #define DWC3_GCTL			0xc110
69 #define   DWC3_GCTL_PRTCAP_MASK			0x00003000u
70 #define   DWC3_GCTL_PRTCAP_HOST			0x00001000u
71 #define   DWC3_GCTL_SOFITPSYNC			0x00000400u
72 #define   DWC3_GCTL_SCALEDOWN_MASK		0x00000030u
73 #define   DWC3_GCTL_DISSCRAMBLE			0x00000004u
74 #define   DWC3_GCTL_DSBLCLKGTNG			0x00000001u
75 
76 #define DWC3_GSNPSID			0xc120
77 
78 #define DWC3_GUSB2PHYCFG(n)		(0xc200 + ((n) * 0x04))
79 #define   DWC3_GUSB2PHYCFG_SUSPHY		0x00000040u
80 
81 #define DWC3_GUSB3PIPECTL(n)		(0xc2c0 + ((n) * 0x04))
82 #define   DWC3_GUSB3PIPECTL_UX_EXIT_PX		0x08000000u
83 #define   DWC3_GUSB3PIPECTL_SUSPHY		0x00020000u
84 
85 /* DWC3 revision numbers. */
86 #define DWC3_REV_210A			0x210a
87 #define DWC3_REV_250A			0x250a
88 
89 #endif /* !_OCTXCTLREG_H_ */
90