Module Name:    src
Committed By:   cliff
Date:           Mon Dec 14 07:19:17 UTC 2009

Modified Files:
        src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixlreg.h

Log Message:
- add bit defines for GPIO_RESET register
- add register defines for USB


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/arch/mips/rmi/rmixlreg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/mips/rmi/rmixlreg.h
diff -u src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.4 src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.5
--- src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.4	Mon Nov  9 10:07:44 2009
+++ src/sys/arch/mips/rmi/rmixlreg.h	Mon Dec 14 07:19:16 2009
@@ -1,11 +1,11 @@
-/*	$NetBSD: rmixlreg.h,v 1.1.2.4 2009/11/09 10:07:44 cliff Exp $	*/
+/*	$NetBSD: rmixlreg.h,v 1.1.2.5 2009/12/14 07:19:16 cliff Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
- * by CCCCCCCC NNNNNNNNNN
+ * by Cliff Neighbors
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -416,6 +416,49 @@
 #define RMIXL_GPIO_INT_TYP		_RMIXL_OFFSET(0x7)	/* Interrupt Type register */
 #define RMIXL_GPIO_RESET		_RMIXL_OFFSET(0x8)	/* XLS Soft Reset register */
 
+/*
+ * RMIXL_GPIO_RESET bits
+ */
+#define RMIXL_GPIO_RESET_RESa		__BITS(31,28)
+#define RMIXL_GPIO_RESET_PCIE_SRIO_SEL	__BITS(27,26)		/* PCIe or SRIO Select:
+								 * 00 = PCIe selected, SRIO not available
+								 * 01 = SRIO selected, 1.25 Gbaud (1.0 Gbps)
+								 * 10 = SRIO selected, 2.25 Gbaud (2.0 Gbps)
+								 * 11 = SRIO selected, 3.125 Gbaud (2.5 Gbps)
+								 */
+#define RMIXL_GPIO_RESET_XAUI_PORT1_SEL	__BIT(25)		/* XAUI Port 1 Select:
+								 *  0 = Disabled - Port is SGMII ports 4-7
+								 *  1 = Enabled -  Port is 4-lane XAUI Port 1
+								 */
+#define RMIXL_GPIO_RESET_XAUI_PORT0_SEL	__BIT(24)		/* XAUI Port 0 Select:
+								 *  0 = Disabled - Port is SGMII ports 0-3
+								 *  1 = Enabled -  Port is 4-lane XAUI Port 0
+								 */
+#define RMIXL_GPIO_RESET_RESb		__BIT(23)
+#define RMIXL_GPIO_RESET_USB_DEV	__BIT(22)		/* USB Device:
+								 *  0 = Device Mode
+								 *  1 = Host Mode
+								 */
+#define RMIXL_GPIO_RESET_PCIE_CFG	__BITS(21,20)		/* PCIe or SRIO configuration */
+#define RMIXL_GPIO_RESET_FLASH33_EN	__BIT(19)		/* Flash 33 MHZ Enable:
+								 *  0 = 66.67 MHz
+								 *  1 = 33.33 MHz
+								 */
+#define RMIXL_GPIO_RESET_BIST_DIAG_EN	__BIT(18)		/* BIST Diagnostics enable */
+#define RMIXL_GPIO_RESET_BIST_RUN_EN	__BIT(18)		/* BIST Run enable */
+#define RMIXL_GPIO_RESET_NOOT_NAND	__BIT(16)		/* Enable boot from NAND Flash */
+#define RMIXL_GPIO_RESET_BOOT_PCMCIA	__BIT(15)		/* Enable boot from PCMCIA */
+#define RMIXL_GPIO_RESET_FLASH_CFG	__BIT(14)		/* Flash 32-bit Data Configuration:
+								 *  0 = 32-bit address / 16-bit data
+								 *  1 = 32-bit address / 32-bit data
+								 */
+#define RMIXL_GPIO_RESET_PCMCIA_EN	__BIT(13)		/* PCMCIA Enable Status */
+#define RMIXL_GPIO_RESET_PARITY_EN	__BIT(12)		/* Parity Enable Status */
+#define RMIXL_GPIO_RESET_BIGEND		__BIT(11)		/* Big Endian Mode Enable Status */
+#define RMIXL_GPIO_RESET_PLL1_OUT_DIV	__BITS(10,8)		/* PLL1 (Core PLL) Output Divider */
+#define RMIXL_GPIO_RESET_PLL1_FB_DIV	__BITS(7,0)		/* PLL1 Feedback Divider */
+
+
 /* GPIO System Control Registers */
 #define RMIXL_GPIO_RESET_CFG		_RMIXL_OFFSET(0x15)	/* Reset Configuration register */
 #define RMIXL_GPIO_THERMAL_CSR		_RMIXL_OFFSET(0x16)	/* Thermal Control/Status register */
@@ -516,5 +559,174 @@
 #define RMIXL_PCIE_MSG_CREDIT_FIRST	_RMIXL_OFFSET(0x380)
 #define RMIXL_PCIE_MSG_CREDIT_LAST	_RMIXL_OFFSET(0x3ff)
 
+/*
+ * USB General Interface registers
+ * these are opffset from REGSPACE selected by __BIT(12) == 1
+ *	RMIXL_IOREG_VADDR(RMIXL_IO_DEV_USB_B + reg)
+ * see Tables 18-7 and 18-14 in the XLS PRM
+ */
+#define RMIXL_USB_GEN_CTRL1		0x00
+#define RMIXL_USB_GEN_CTRL2		0x04
+#define RMIXL_USB_GEN_CTRL3		0x08
+#define RMIXL_USB_IOBM_TIMER		0x0C
+#define RMIXL_USB_VBUS_TIMER		0x10
+#define RMIXL_USB_BYTESWAP_EN		0x14
+#define RMIXL_USB_COHERENT_MEM_BASE	0x40
+#define RMIXL_USB_COHERENT_MEM_LIMIT	0x44
+#define RMIXL_USB_L2ALLOC_MEM_BASE	0x48
+#define RMIXL_USB_L2ALLOC_MEM_LIMIT	0x4C
+#define RMIXL_USB_READEX_MEM_BASE	0x50
+#define RMIXL_USB_READEX_MEM_LIMIT	0x54
+#define RMIXL_USB_PHY_STATUS		0xC0
+#define RMIXL_USB_INTERRUPT_STATUS	0xC4
+#define RMIXL_USB_INTERRUPT_ENABLE	0xC8
+
+/*
+ * RMIXL_USB_GEN_CTRL1 bits
+ */
+#define RMIXL_UG_CTRL1_RESV		__BITS(31,2)
+#define RMIXL_UG_CTRL1_HOST_RST		__BIT(1)	/* Resets the Host Controller
+							 *  0: reset
+							 *  1: normal operation
+							 */
+#define RMIXL_UG_CTRL1_DEV_RST		__BIT(0)	/* Resets the Device Controller
+							 *  0: reset
+							 *  1: normal operation
+							 */
+
+/*
+ * RMIXL_USB_GEN_CTRL2 bits
+ */
+#define RMIXL_UG_CTRL2_RESa		__BITS(31,20)
+#define RMIXL_UG_CTRL2_TX_TUNE_1	__BITS(19,18)	/* Port_1 Transmitter Tuning for High-Speed Operation.
+							 *  00: ~-4.5%
+							 *  01: Design default
+							 *  10: ~+4.5%
+							 *  11: ~+9% = Recommended Operating setting
+							 */
+#define RMIXL_UG_CTRL2_TX_TUNE_0	__BITS(17,16)	/* Port_0 Transmitter Tuning for High-Speed Operation
+							 *  11:  Recommended Operating condition
+							 */
+#define RMIXL_UG_CTRL2_RESb		__BIT(15)
+#define RMIXL_UG_CTRL2_WEAK_PDEN	__BIT(14)	/* 500kOhm Pull-Down Resistor on D+ and D- Enable */
+#define RMIXL_UG_CTRL2_DP_PULLUP_ESD	__BIT(13)	/* D+ Pull-Up Resistor Enable */
+#define RMIXL_UG_CTRL2_ESD_TEST_MODE	__BIT(12)	/* D+ Pull-Up Resistor Control Select */
+#define RMIXL_UG_CTRL2_TX_BIT_STUFF_EN_H_1	\
+					__BIT(11)	/* Port_1 High-Byte Transmit Bit-Stuffing Enable */
+#define RMIXL_UG_CTRL2_TX_BIT_STUFF_EN_H_0	\
+					__BIT(10)	/* Port_0 High-Byte Transmit Bit-Stuffing Enable */
+#define RMIXL_UG_CTRL2_TX_BIT_STUFF_EN_L_1	\
+					__BIT(9)	/* Port_1 Low-Byte Transmit Bit-Stuffing Enable */
+#define RMIXL_UG_CTRL2_TX_BIT_STUFF_EN_L_0	\
+					__BIT(8)	/* Port_0 Low-Byte Transmit Bit-Stuffing Enable */
+#define RMIXL_UG_CTRL2_RESc		__BITS(7,6)
+#define RMIXL_UG_CTRL2_LOOPBACK_ENB_1	__BIT(5)	/* Port_1 Loopback Test Enable */
+#define RMIXL_UG_CTRL2_LOOPBACK_ENB_0	__BIT(4)	/* Port_0 Loopback Test Enable */
+#define RMIXL_UG_CTRL2_DEVICE_VBUS	__BIT(3)	/* VBUS detected (Device mode only) */
+#define RMIXL_UG_CTRL2_PHY_PORT_RST_1	__BIT(2)	/* Resets Port_1 of the PHY
+							 *  1: normal operation
+							 *  0: reset
+							 */
+#define RMIXL_UG_CTRL2_PHY_PORT_RST_0	__BIT(1)	/* Resets Port_0 of the PHY
+							 *  1: normal operation
+							 *  0: reset
+							 */
+#define RMIXL_UG_CTRL2_PHY_RST		__BIT(0)	/* Resets the PHY
+							 *  1: normal operation
+							 *  0: reset
+							 */
+#define RMIXL_UG_CTRL2_RESV	\
+	(RMIXL_UG_CTRL2_RESa | RMIXL_UG_CTRL2_RESb | RMIXL_UG_CTRL2_RESc)
+
+
+/*
+ * RMIXL_USB_GEN_CTRL3 bits
+ */
+#define RMIXL_UG_CTRL3_RESa		__BITS(31,11)
+#define RMIXL_UG_CTRL3_PREFETCH_SIZE	__BITS(10,8)	/* The pre-fetch size for a memory read transfer
+							 * between USB Interface and DI station.
+							 * Valid value ranges is from 1 to 4.
+							 */
+#define RMIXL_UG_CTRL3_RESb		__BIT(7)
+#define RMIXL_UG_CTRL3_DEV_UPPERADDR	__BITS(6,1)	/* Device controller address space selector */
+#define RMIXL_UG_CTRL3_USB_FLUSH	__BIT(0)	/* Flush the USB interface */
+
+/*
+ * RMIXL_USB_PHY_STATUS bits
+ */
+#define RMIXL_UB_PHY_STATUS_RESV	__BITS(31,1)
+#define RMIXL_UB_PHY_STATUS_VBUS	__BIT(0)	/* USB VBUS status */
+
+/*
+ * RMIXL_USB_INTERRUPT_STATUS and RMIXL_USB_INTERRUPT_ENABLE bits
+ */
+#define RMIXL_UB_INTERRUPT_RESV		__BITS(31,6)
+#define RMIXL_UB_INTERRUPT_FORCE	__BIT(5)	/* USB force interrupt */
+#define RMIXL_UB_INTERRUPT_PHY		__BIT(4)	/* USB PHY interrupt */
+#define RMIXL_UB_INTERRUPT_DEV		__BIT(3)	/* USB Device Controller interrupt */
+#define RMIXL_UB_INTERRUPT_EHCI		__BIT(2)	/* USB EHCI interrupt */
+#define RMIXL_UB_INTERRUPT_OHCI_1	__BIT(1)	/* USB OHCI #1 interrupt */
+#define RMIXL_UB_INTERRUPT_OHCI_0	__BIT(0)	/* USB OHCI #0 interrupt */
+#define RMIXL_UB_INTERRUPT_MAX		5
+
+
+/*
+ * USB Device Controller registers
+ * these are opffset from REGSPACE selected by __BIT(12) == 0
+ *	RMIXL_IOREG_VADDR(RMIXL_IO_DEV_USB_A + reg)
+ * see Table 18-7 in the XLS PRM
+ */
+#define RMIXL_USB_UDC_GAHBCFG		0x008	/* UDC Configuration A (UDC_GAHBCFG) */
+#define RMIXL_USB_UDC_GUSBCFG		0x00C	/* UDC Configuration B (UDC_GUSBCFG) */
+#define RMIXL_USB_UDC_GRSTCTL		0x010	/* UDC Reset */
+#define RMIXL_USB_UDC_GINTSTS		0x014	/* UDC Interrupt Register */
+#define RMIXL_USB_UDC_GINTMSK		0x018	/* UDC Interrupt Mask Register */
+#define RMIXL_USB_UDC_GRXSTSP		0x020	/* UDC Receive Status Read /Pop Register (Read Only) */
+#define RMIXL_USB_UDC_GRXFSIZ		0x024	/* UDC Receive FIFO Size Register */
+#define RMIXL_USB_UDC_GNPTXFSIZ		0x028	/* UDC Non-periodic Transmit FIFO Size Register */
+#define RMIXL_USB_UDC_GUID		0x03C	/* UDC User ID Register (UDC_GUID) */
+#define RMIXL_USB_UDC_GSNPSID		0x040	/* UDC ID Register (Read Only) */
+#define RMIXL_USB_UDC_GHWCFG1		0x044	/* UDC User HW Config1 Register (Read Only) */
+#define RMIXL_USB_UDC_GHWCFG2		0x048	/* UDC User HW Config2 Register (Read Only) */
+#define RMIXL_USB_UDC_GHWCFG3		0x04C	/* UDC User HW Config3 Register (Read Only) */
+#define RMIXL_USB_UDC_GHWCFG4		0x050	/* UDC User HW Config4 Register (Read Only) */
+#define RMIXL_USB_UDC_DPTXFSIZ0		0x104
+#define RMIXL_USB_UDC_DPTXFSIZ1		0x108
+#define RMIXL_USB_UDC_DPTXFSIZ2		0x10c
+#define RMIXL_USB_UDC_DPTXFSIZn(n)	(0x104 + (4 * (n)))
+						/* UDC Device IN Endpoint Transmit FIFO-n
+						   Size Registers (UDC_DPTXFSIZn) */
+#define RMIXL_USB_UDC_DCFG		0x800	/* UDC Configuration C */
+#define RMIXL_USB_UDC_DCTL		0x804	/* UDC Control Register */
+#define RMIXL_USB_UDC_DSTS		0x808	/* UDC Status Register (Read Only) */
+#define RMIXL_USB_UDC_DIEPMSK		0x810	/* UDC Device IN Endpoint Common
+						   Interrupt Mask Register (UDC_DIEPMSK) */
+#define RMIXL_USB_UDC_DOEPMSK		0x814	/* UDC Device OUT Endpoint Common Interrupt Mask register */
+#define RMIXL_USB_UDC_DAINT		0x818	/* UDC Device All Endpoints Interrupt Register */
+#define RMIXL_USB_UDC_DAINTMSK		0x81C	/* UDC Device All Endpoints Interrupt Mask Register */
+#define RMIXL_USB_UDC_DTKNQR3		0x830	/* Device Threshold Control Register */
+#define RMIXL_USB_UDC_DTKNQR4		0x834	/* Device IN Endpoint FIFO Empty Interrupt Mask Register */
+#define RMIXL_USB_UDC_DIEPCTL		0x900	/* Device Control IN Endpoint 0 Control Register */
+#define RMIXL_USB_UDC_DIEPINT		0x908	/* Device IN Endpoint 0 Interrupt Register */
+#define RMIXL_USB_UDC_DIEPTSIZ		0x910	/* Device IN Endpoint 0 Transfer Size Register */
+#define RMIXL_USB_UDC_DIEPDMA		0x914	/* Device IN Endpoint 0 DMA Address Register */
+#define RMIXL_USB_UDC_DTXFSTS		0x918	/* Device IN Endpoint Transmit FIFO Status Register */
+#define RMIXL_USB_DEV_IN_ENDPT(d,n)	(0x920 + ((d) * 0x20) + ((n) * 4))
+						/* Device IN Endpoint #d Register #n */
+
+/*
+ * USB Host Controller register base addrs
+ * these are offset from REGSPACE selected by __BIT(12) == 0
+ *	RMIXL_IOREG_VADDR(RMIXL_IO_DEV_USB_A + reg)
+ * see Table 18-14 in the XLS PRM
+ * specific Host Controller is selected by __BITS(11,10)
+ */
+#define RMIXL_USB_HOST_EHCI_BASE	0x000
+#define RMIXL_USB_HOST_0HCI0_BASE	0x400
+#define RMIXL_USB_HOST_0HCI1_BASE	0x800
+#define RMIXL_USB_HOST_RESV		0xc00
+#define RMIXL_USB_HOST_MASK		0xc00
+
+
 #endif	/* _MIPS_RMI_RMIRMIXLEGS_H_ */
 

Reply via email to