📄 l7205-hardware.h
字号:
/* * linux/drivers/usbd/l7205_bi/hardware.h -- L7205 USB controller driver. * * Copyright (c) 2000, 2001, 2002 Lineo * * By: * Stuart Lynne <sl@lineo.com>, * Tom Rushworth <tbr@lineo.com>, * Bruce Balden <balden@lineo.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#define __IOA(x) ( (x) < IO_START_2 ? \ (volatile unsigned char*) (IO_BASE + (x) - IO_START) : \ (volatile unsigned char*) (IO_BASE_2 + (x) - IO_START_2) )/* * usb interrupt */#define IRQ_USBF 32/* * PMU Software */#define SYSTEM_BASE 0x80050000#if 0#define SYS_CONFIG_CURRENT (SYSTEM_BASE+0x000)#define SYS_CONFIG_NEXT (SYSTEM_BASE+0x004)#define SYS_CONFIG_RUN (SYSTEM_BASE+0x00c)#define SYS_CONFIG_COMM (SYSTEM_BASE+0x010)#define SYS_CONFIG_SDRAM (SYSTEM_BASE+0x014)#define IO_SYS_CONFIG_CURRENT __IOL(SYSTEM_BASE+0x000)#define IO_SYS_CONFIG_NEXT __IOL(SYSTEM_BASE+0x004)#define IO_SYS_CONFIG_RUN __IOL(SYSTEM_BASE+0x00c)#define IO_SYS_CONFIG_COMM __IOL(SYSTEM_BASE+0x010)#define IO_SYS_CONFIG_SDRAM __IOL(SYSTEM_BASE+0x014)#endif/* * Current Configuration Register - SYS_CONFIG_CURRENT */#define SYSC_CURR_NFASTBUS 0x00000001#define SYSC_CURR_DSRF_SEL 0x00000002#define SYSC_CURR_SDRB_SEL 0x00000004#define SYSC_CURR_BCLK_DIV 0x00000018#define SYSC_CURR_PLLMUX 0x00000080#define SYSC_CURR_PLLEN 0x00000100#define SYSC_CURR_PLLMUL 0x00007e00#define SYSC_CURR_OSCMUX 0x00080000#define SYSC_CURR_OSCEN 0x00100000#define SYSC_CURR_TRANSOP 0x06000000/* * Next Configuration Register - SYS_CONFIG_NEXT */#define SYSC_NEXT_NFASTBUS 0x00000001#define SYSC_NEXT_SDRF_SEL 0x00000002#define SYSC_NEXT_SDRB_SEL 0x00000004#define SYSC_NEXT_BCLK_DIV 0x00000018#define SYSC_NEXT_SYSCLKEN 0x00000020#define SYSC_NEXT_SDR_STOP 0x00000040#define SYSC_NEXT_PLLMUX 0x00000080#define SYSC_NEXT_PLLEN 0x00000100#define SYSC_NEXT_PLLMUL 0x00007e00#define SYSC_NEXT_OSCMUX 0x00008000#define SYSC_NEXT_OSCEN 0x00010000#define SYSC_NEXT_INTRET 0x00020000#define SYSC_NEXT_CLOCKRECOVERY 0x01fc0000#define SYSC_NEXT_TRANSOP 0x06000000/* * Run Configuration Register - SYS_CONFIG_RUN */#define SYSC_RUN_NFASTBUS 0x00000001#define SYSC_RUN_DSRF_SEL 0x00000002#define SYSC_RUN_SDRB_SEL 0x00000004#define SYSC_RUN_BCLK_DIV 0x00000018#define SYSC_RUN_PLLMUX 0x00000080#define SYSC_RUN_PLLEN 0x00000100#define SYSC_RUN_PLLMUL 0x00007e00#define SYSC_RUN_OSCMUX 0x00080000#define SYSC_RUN_OSCEN 0x00100000/* * System Control */#if 0#define SYS_CLOCK_ENABLE (SYSTEM_BASE+0x030)#define SYS_CLOCK_ESYNC (SYSTEM_BASE+0x034)#define SYS_CLOCK_SELECT (SYSTEM_BASE+0x038)#define IO_SYS_CLOCK_ENABLE __IOL(SYSTEM_BASE+0x030)#define IO_SYS_CLOCK_ESYNC __IOL(SYSTEM_BASE+0x034)#define IO_SYS_CLOCK_SELECT __IOL(SYSTEM_BASE+0x038)#endif#define SYS_CLOCK_AUX (SYSTEM_BASE+0x03c)#define IO_SYS_CLOCK_AUX __IOL(SYSTEM_BASE+0x03c)/* * Clock Enable Register - SYS_CLOCK_ENABLE */#define SYS_CLOCK_SYN_EN 0x00000001#define SYS_CLOCK_B18M_EN 0x00000002#define SYS_CLOCK_3M6_EN 0x00000004#define SYS_CLOCK_FIR_EN 0x00000020#define SYS_CLOCK_MIRM_EN 0x00000040#define SYS_CLOCK_UARTM_EN 0x00000080#define SYS_CLOCK_SIBADC_EN 0x00000100#define SYS_CLOCK_ALTD_EN 0x00000200#define SYS_CLOCK_CLCLK_EN 0x00000400#define SYS_CLOCK_STCLK_EN 0x00000800#define SYS_CLOCK_AUXPLL_EN 0x00001000#define SYS_CLOCK_AUXCLK_EN 0x00002000#define SYS_CLOCK_18SYN_EN 0x00004000#define SYS_CLOCK_SICSYN_EN 0x00008000#define SYS_CLOCK_NDMA_EN 0x00010000#define SYS_CLOCK_USBFUNC_EN 0x00020000#define SYS_CLOCK_USBHOST_EN 0x00080000/* * Clock Multiplexor and Divider Control Register - SYS_CLOCK_SELECT */#define SYS_CLOCK_18M_DIV 0x00000001#define SYS_CLOCK_MIR_SEL 0x00000002#define SYS_CLOCK_UART_SEL 0x0000000c#define SYS_CLOCK_ALT_CLCLK_SEL 0x00000010#define SYS_CLOCK_MM_DIV 0x00000020#define SYS_CLOCK_MM_SEL 0x00000030#define SYS_CLOCK_ADC_SEL 0x00001f80#define SYS_CLOCK_ALTD_SEL 0x00002000#define SYS_CLOCK_CL_SEL 0x00004000#define SYS_CLOCK_18SRC_SEL 0x00008000#define SYS_CLOCK_18BY_SEL 0x00010000#define SYS_CLOCK_SICDIV_SEL 0x000e0000#define SYS_CLOCK_SICBY_SEL 0x00100000#define SYS_CLOCK_SICSYN_SEL 0x00600000#define SYS_CLOCK_18_AUX_SEL 0x00800000#define SYS_CLOCK_FIRAUX_SEL 0x01000000#define SYS_CLOCK_SICAUX_SEL 0x02000000/* * Auxillary PLL Configuration Register - SYS_CLOCK_AUX */#define SYS_CLOCK_AUXOSCMUX 0x00000001#define SYS_CLOCK_AUXPLLMUX 0x00000002#define SYS_CLOCK_AUXPLLMUL 0x000000fc#define SYS_CLOCK_AUXPLLMUL_18 0x00000014#define SYS_CLOCK_AUXPLLMUL_48 0x00000034/* * USB Function Controller */#define USB_FUNCTION_BASE 0x8004b000#if 0#define USBF_REVISION (USB_FUNCTION_BASE+0x000)#define USBF_CONTROL (USB_FUNCTION_BASE+0x004)#define USBF_STATUS (USB_FUNCTION_BASE+0x008)#define USBF_RAWSTATUS (USB_FUNCTION_BASE+0x00c)#define USBF_INTENA (USB_FUNCTION_BASE+0x010)#define USBF_INTDIS (USB_FUNCTION_BASE+0x014)#define USBF_INTCLR (USB_FUNCTION_BASE+0x018)// reserved (USB_FUNCTION_BASE+0x01c)#define USBF_CONFIGBUF1 (USB_FUNCTION_BASE+0x020)#define USBF_ENDPTBUF0 (USB_FUNCTION_BASE+0x024)#define USBF_ENDPTBUF1 (USB_FUNCTION_BASE+0x028)#define USBF_ENDPTBUF2 (USB_FUNCTION_BASE+0x02c)#define USBF_ENDPTBUF3 (USB_FUNCTION_BASE+0x030)#define USBF_STRINGBUF0 (USB_FUNCTION_BASE+0x034)#define USBF_STRINGBUF1 (USB_FUNCTION_BASE+0x038)#define USBF_STRINGBUF2 (USB_FUNCTION_BASE+0x03c)#define USBF_STRINGBUF3 (USB_FUNCTION_BASE+0x040)#define USBF_STRINGBUF4 (USB_FUNCTION_BASE+0x044)#define USBF_F0BCNT (USB_FUNCTION_BASE+0x048)#define USBF_F1BCNT (USB_FUNCTION_BASE+0x04c)#define USBF_F1TOUT (USB_FUNCTION_BASE+0x050)#define USBF_F2BCNT (USB_FUNCTION_BASE+0x054)#define USBF_F3BCNT (USB_FUNCTION_BASE+0x058)#define USBF_F2TAIL (USB_FUNCTION_BASE+0x05c)#define USBF_DESCRIPTORS (USB_FUNCTION_BASE+0x100)#endif#define USBF_DESCRIPTORS_MAX 168#if 0#define USBF_FIFO0 (USB_FUNCTION_BASE+0x070)#define USBF_FIFO1 (USB_FUNCTION_BASE+0x080)#define USBF_FIFO2 (USB_FUNCTION_BASE+0x0a0)#define USBF_FIFO3 (USB_FUNCTION_BASE+0x0c0)#endif#define USBF_FIFOS (USBF_DESCRIPTORS+USBF_DESCRIPTORS_MAX)#define USBF_RFIFO0 (USBF_DESCRIPTORS+USBF_DESCRIPTORS_MAX+8)#define USBF_RFIFO1 (USBF_DESCRIPTORS+USBF_DESCRIPTORS_MAX+8+8)#define USBF_RFIFO2 (USBF_DESCRIPTORS+USBF_DESCRIPTORS_MAX+8+8+32)#define USBF_RFIFO3 (USBF_DESCRIPTORS+USBF_DESCRIPTORS_MAX+8+8+32+32)#define IO_USBF_REVISION __IOL(USB_FUNCTION_BASE+0x000)#define IO_USBF_CONTROL __IOL(USB_FUNCTION_BASE+0x004)#define IO_USBF_STATUS __IOL(USB_FUNCTION_BASE+0x008)#define IO_USBF_RAWSTATUS __IOL(USB_FUNCTION_BASE+0x00c)#define IO_USBF_INTENA __IOL(USB_FUNCTION_BASE+0x010)#define IO_USBF_INTDIS __IOL(USB_FUNCTION_BASE+0x014)#define IO_USBF_INTCLR __IOL(USB_FUNCTION_BASE+0x018)// reserved __IOL(USB_FUNCTION_BASE+0x01c)#define IO_USBF_CONFIGBUF1 __IOL(USB_FUNCTION_BASE+0x020)#define IO_USBF_ENDPTBUF0 __IOL(USB_FUNCTION_BASE+0x024)#define IO_USBF_ENDPTBUF1 __IOL(USB_FUNCTION_BASE+0x028)#define IO_USBF_ENDPTBUF2 __IOL(USB_FUNCTION_BASE+0x02c)#define IO_USBF_ENDPTBUF3 __IOL(USB_FUNCTION_BASE+0x030)#define IO_USBF_STRINGBUF0 __IOL(USB_FUNCTION_BASE+0x034)#define IO_USBF_STRINGBUF1 __IOL(USB_FUNCTION_BASE+0x038)#define IO_USBF_STRINGBUF2 __IOL(USB_FUNCTION_BASE+0x03c)#define IO_USBF_STRINGBUF3 __IOL(USB_FUNCTION_BASE+0x040)#define IO_USBF_STRINGBUF4 __IOL(USB_FUNCTION_BASE+0x044)#define IO_USBF_F0BCNT __IOL(USB_FUNCTION_BASE+0x048)#define IO_USBF_F1BCNT __IOL(USB_FUNCTION_BASE+0x04c)#define IO_USBF_F1TOUT __IOL(USB_FUNCTION_BASE+0x050)#define IO_USBF_F2BCNT __IOL(USB_FUNCTION_BASE+0x054)#define IO_USBF_F3BCNT __IOL(USB_FUNCTION_BASE+0x058)#define IO_USBF_F2TAIL __IOL(USB_FUNCTION_BASE+0x05c)#define IO_USBF_F2TAIL_1 __IOL(USB_FUNCTION_BASE+0x05c)#define IO_USBF_F2TAIL_2 __IOL(USB_FUNCTION_BASE+0x060)#define IO_USBF_F2TAIL_3 __IOL(USB_FUNCTION_BASE+0x064)#define IO_USBF_FIFO0 __IOL(USB_FUNCTION_BASE+0x070)#define IO_USBF_FIFO1 __IOL(USB_FUNCTION_BASE+0x080)#define IO_USBF_FIFO2 __IOL(USB_FUNCTION_BASE+0x0a0)#define IO_USBF_FIFO3 __IOL(USB_FUNCTION_BASE+0x0c0)#define IO_USBF_DESCRIPTORS __IOA(USB_FUNCTION_BASE+0x100)#define IO_USBF_FIFOS __IOA(USB_FUNCTION_BASE+0x100+USBF_DESCRIPTORS_MAX)#define IO_USBF_FIFO_RX __IOA(USB_FUNCTION_BASE+0x100+USBF_DESCRIPTORS_MAX+16)#define IO_USBF_FIFO_TX __IOA(USB_FUNCTION_BASE+0x100+USBF_DESCRIPTORS_MAX+48)/* * Revision Register - USBF_REVISION */#define USBF_REVISION_11 0x3/* * Control Register - USBF_CONTROL */#define USBF_CONTROL_ENBL 0x00000001#define USBF_CONTROL_INTD 0x00000002#define USBF_CONTROL_FRST 0x00000004
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -