xref: /openbsd-src/sys/arch/octeon/dev/octxctlreg.h (revision 036c499134f08ada693a64467119672ae325349d)
1*036c4991Svisa /*	$OpenBSD: octxctlreg.h,v 1.2 2018/01/16 15:50:28 visa Exp $	*/
2029876c0Svisa 
3029876c0Svisa /*
4029876c0Svisa  * Copyright (c) 2017 Visa Hankala
5029876c0Svisa  *
6029876c0Svisa  * Permission to use, copy, modify, and distribute this software for any
7029876c0Svisa  * purpose with or without fee is hereby granted, provided that the above
8029876c0Svisa  * copyright notice and this permission notice appear in all copies.
9029876c0Svisa  *
10029876c0Svisa  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11029876c0Svisa  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12029876c0Svisa  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13029876c0Svisa  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14029876c0Svisa  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15029876c0Svisa  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16029876c0Svisa  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17029876c0Svisa  */
18029876c0Svisa 
19029876c0Svisa #ifndef _OCTXCTLREG_H_
20029876c0Svisa #define _OCTXCTLREG_H_
21029876c0Svisa 
22029876c0Svisa #define XCTL_CTL			0x00
23029876c0Svisa #define   XCTL_CTL_CLEAR_BIST			0x8000000000000000ull
24029876c0Svisa #define   XCTL_CTL_START_BIST			0x4000000000000000ull
25029876c0Svisa #define   XCTL_CTL_REFCLK_SEL			0x3000000000000000ull
26029876c0Svisa #define   XCTL_CTL_REFCLK_SEL_SHIFT		60
27029876c0Svisa #define   XCTL_CTL_SSC_EN			0x0800000000000000ull
28029876c0Svisa #define   XCTL_CTL_SSC_RANG			0x0700000000000000ull
29029876c0Svisa #define   XCTL_CTL_SSC_REFCLK_SEL		0x00ff800000000000ull
30029876c0Svisa #define   XCTL_CTL_MPLL_MULT			0x00007f0000000000ull
31029876c0Svisa #define   XCTL_CTL_MPLL_MULT_SHIFT		40
32029876c0Svisa #define   XCTL_CTL_REFCLK_SSP_EN		0x0000008000000000ull
33029876c0Svisa #define   XCTL_CTL_REFCLK_DIV2			0x0000004000000000ull
34029876c0Svisa #define   XCTL_CTL_REFCLK_FSEL			0x0000003f00000000ull
35029876c0Svisa #define   XCTL_CTL_REFCLK_FSEL_SHIFT		32
36029876c0Svisa #define   XCTL_CTL_CLK_EN			0x0000000040000000ull
37029876c0Svisa #define   XCTL_CTL_CLK_BYP_SEL			0x0000000020000000ull
38029876c0Svisa #define   XCTL_CTL_CLKDIV_RST			0x0000000010000000ull
39029876c0Svisa #define   XCTL_CTL_CLKDIV_SEL			0x0000000007000000ull
40029876c0Svisa #define   XCTL_CTL_CLKDIV_SEL_SHIFT		24
41029876c0Svisa #define   XCTL_CTL_USB3_PORT_PERM_ATTACH	0x0000000000200000ull
42029876c0Svisa #define   XCTL_CTL_USB2_PORT_PERM_ATTACH	0x0000000000100000ull
43029876c0Svisa #define   XCTL_CTL_USB3_PORT_DIS		0x0000000000040000ull
44029876c0Svisa #define   XCTL_CTL_USB2_PORT_DIS		0x0000000000010000ull
45029876c0Svisa #define   XCTL_CTL_SSPOWER_EN			0x0000000000004000ull
46029876c0Svisa #define   XCTL_CTL_HSPOWER_EN			0x0000000000001000ull
47029876c0Svisa #define   XCTL_CTL_CSCLK_EN			0x0000000000000010ull
48029876c0Svisa #define   XCTL_CTL_DRD_MODE			0x0000000000000008ull
49029876c0Svisa #define   XCTL_CTL_UPHY_RST			0x0000000000000004ull
50029876c0Svisa #define   XCTL_CTL_UAHC_RST			0x0000000000000002ull
51029876c0Svisa #define   XCTL_CTL_UCTL_RST			0x0000000000000001ull
52029876c0Svisa 
53029876c0Svisa #define XCTL_HOST_CFG			0xe0
54029876c0Svisa #define   XCTL_HOST_CFG_PPC_EN			0x0000000002000000ull
55029876c0Svisa #define   XCTL_HOST_CFG_PPC_ACTIVE_HIGH_EN	0x0000000001000000ull
56029876c0Svisa 
57029876c0Svisa #define XCTL_SHIM_CFG			0xe8
58029876c0Svisa #define   XCTL_SHIM_CFG_DMA_BYTE_SWAP		0x0000000000000300ull
59029876c0Svisa #define   XCTL_SHIM_CFG_DMA_BYTE_SWAP_SHIFT	8
60029876c0Svisa #define   XCTL_SHIM_CFG_CSR_BYTE_SWAP		0x0000000000000003ull
61029876c0Svisa #define   XCTL_SHIM_CFG_CSR_BYTE_SWAP_SHIFT	0
62029876c0Svisa 
63029876c0Svisa /*
64029876c0Svisa  * DWC3 core control registers.
65029876c0Svisa  * These are relative to the xHCI register space.
66029876c0Svisa  */
67029876c0Svisa 
68029876c0Svisa #define DWC3_GCTL			0xc110
69029876c0Svisa #define   DWC3_GCTL_PRTCAP_MASK			0x00003000u
70029876c0Svisa #define   DWC3_GCTL_PRTCAP_HOST			0x00001000u
71029876c0Svisa #define   DWC3_GCTL_SOFITPSYNC			0x00000400u
72029876c0Svisa #define   DWC3_GCTL_SCALEDOWN_MASK		0x00000030u
73029876c0Svisa #define   DWC3_GCTL_DISSCRAMBLE			0x00000004u
74029876c0Svisa #define   DWC3_GCTL_DSBLCLKGTNG			0x00000001u
75029876c0Svisa 
76029876c0Svisa #define DWC3_GSNPSID			0xc120
77029876c0Svisa 
78029876c0Svisa #define DWC3_GUSB2PHYCFG(n)		(0xc200 + ((n) * 0x04))
79*036c4991Svisa #define   DWC3_GUSB2PHYCFG_SUSPHY		0x00000040u
80029876c0Svisa 
81029876c0Svisa #define DWC3_GUSB3PIPECTL(n)		(0xc2c0 + ((n) * 0x04))
82029876c0Svisa #define   DWC3_GUSB3PIPECTL_UX_EXIT_PX		0x08000000u
83029876c0Svisa #define   DWC3_GUSB3PIPECTL_SUSPHY		0x00020000u
84029876c0Svisa 
85029876c0Svisa /* DWC3 revision numbers. */
86029876c0Svisa #define DWC3_REV_210A			0x210a
87029876c0Svisa #define DWC3_REV_250A			0x250a
88029876c0Svisa 
89029876c0Svisa #endif /* !_OCTXCTLREG_H_ */
90