📄 ixp4xx-regs.h
字号:
/* * include/asm-arm/arch-ixp4xx/ixp4xx-regs.h * * Register definitions for IXP4xx chipset. This file contains * register location and bit definitions only. Platform specific * definitions and helper function declarations are in platform.h * and machine-name.h. * * Copyright (C) 2002 Intel Corporation. * Copyright (C) 2003-2004 MontaVista Software, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * */#ifndef __ASM_ARCH_HARDWARE_H__#error "Do not include this directly, instead #include <asm/hardware.h>"#endif#ifndef _ASM_ARM_IXP4XX_H_#define _ASM_ARM_IXP4XX_H_/* * IXP4xx Linux Memory Map: * * Phy Size Virt Description * ========================================================================= * * 0x00000000 0x10000000(max) PAGE_OFFSET System RAM * * 0x48000000 0x04000000 ioremap'd PCI Memory Space * * 0x50000000 0x10000000 ioremap'd EXP BUS * * 0x6000000 0x00004000 ioremap'd QMgr * * 0xC0000000 0x00001000 0xffbfe000 PCI CFG * * 0xC4000000 0x00001000 0xffbfd000 EXP CFG * * 0xC8000000 0x0000C000 0xffbf2000 On-Chip Peripherals *//* * Expansion BUS Configuration registers */#define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000)#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFD000)#define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000)/* * PCI Config registers */#define IXP4XX_PCI_CFG_BASE_PHYS (0xC0000000)#define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFD000)#define IXP4XX_PCI_CFG_REGION_SIZE (0x00001000)/* * Peripheral space */#define IXP4XX_PERIPHERAL_BASE_PHYS (0xC8000000)#define IXP4XX_PERIPHERAL_BASE_VIRT (0xFFBF2000)#define IXP4XX_PERIPHERAL_REGION_SIZE (0x0000C000)#define IXP4XX_EXP_CS0_OFFSET 0x00#define IXP4XX_EXP_CS1_OFFSET 0x04#define IXP4XX_EXP_CS2_OFFSET 0x08#define IXP4XX_EXP_CS3_OFFSET 0x0C#define IXP4XX_EXP_CS4_OFFSET 0x10#define IXP4XX_EXP_CS5_OFFSET 0x14#define IXP4XX_EXP_CS6_OFFSET 0x18#define IXP4XX_EXP_CS7_OFFSET 0x1C#define IXP4XX_EXP_CFG0_OFFSET 0x20#define IXP4XX_EXP_CFG1_OFFSET 0x24#define IXP4XX_EXP_CFG2_OFFSET 0x28#define IXP4XX_EXP_CFG3_OFFSET 0x2C/* * Expansion Bus Controller registers. */#define IXP4XX_EXP_REG(x) ((volatile u32 *)(IXP4XX_EXP_CFG_BASE_VIRT+(x)))#define IXP4XX_EXP_CS0 IXP4XX_EXP_REG(IXP4XX_EXP_CS0_OFFSET)#define IXP4XX_EXP_CS1 IXP4XX_EXP_REG(IXP4XX_EXP_CS1_OFFSET)#define IXP4XX_EXP_CS2 IXP4XX_EXP_REG(IXP4XX_EXP_CS2_OFFSET) #define IXP4XX_EXP_CS3 IXP4XX_EXP_REG(IXP4XX_EXP_CS3_OFFSET)#define IXP4XX_EXP_CS4 IXP4XX_EXP_REG(IXP4XX_EXP_CS4_OFFSET)#define IXP4XX_EXP_CS5 IXP4XX_EXP_REG(IXP4XX_EXP_CS5_OFFSET)#define IXP4XX_EXP_CS6 IXP4XX_EXP_REG(IXP4XX_EXP_CS6_OFFSET) #define IXP4XX_EXP_CS7 IXP4XX_EXP_REG(IXP4XX_EXP_CS7_OFFSET)#define IXP4XX_EXP_CFG0 IXP4XX_EXP_REG(IXP4XX_EXP_CFG0_OFFSET) #define IXP4XX_EXP_CFG1 IXP4XX_EXP_REG(IXP4XX_EXP_CFG1_OFFSET) #define IXP4XX_EXP_CFG2 IXP4XX_EXP_REG(IXP4XX_EXP_CFG2_OFFSET) #define IXP4XX_EXP_CFG3 IXP4XX_EXP_REG(IXP4XX_EXP_CFG3_OFFSET)/* * Peripheral Space Register Region Base Addresses */#define IXP4XX_UART1_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x0000)#define IXP4XX_UART2_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x1000)#define IXP4XX_PMU_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x2000)#define IXP4XX_INTC_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x3000)#define IXP4XX_GPIO_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x4000)#define IXP4XX_TIMER_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x5000)#define IXP4XX_USB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x5000)#define IXP4XX_UART1_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x0000)#define IXP4XX_UART2_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x1000)#define IXP4XX_PMU_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x2000)#define IXP4XX_INTC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x3000)#define IXP4XX_GPIO_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x4000)#define IXP4XX_TIMER_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x5000)#define IXP4XX_USB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x5000)/* * Constants to make it easy to access Interrupt Controller registers */#define IXP4XX_ICPR_OFFSET 0x00 /* Interrupt Status */#define IXP4XX_ICMR_OFFSET 0x04 /* Interrupt Enable */#define IXP4XX_ICLR_OFFSET 0x08 /* Interrupt IRQ/FIQ Select */#define IXP4XX_ICIP_OFFSET 0x0C /* IRQ Status */#define IXP4XX_ICFP_OFFSET 0x10 /* FIQ Status */#define IXP4XX_ICHR_OFFSET 0x14 /* Interrupt Priority */#define IXP4XX_ICIH_OFFSET 0x18 /* IRQ Highest Pri Int */#define IXP4XX_ICFH_OFFSET 0x1C /* FIQ Highest Pri Int *//* * Interrupt Controller Register Definitions. */#define IXP4XX_INTC_REG(x) ((volatile u32 *)(IXP4XX_INTC_BASE_VIRT+(x)))#define IXP4XX_ICPR IXP4XX_INTC_REG(IXP4XX_ICPR_OFFSET)#define IXP4XX_ICMR IXP4XX_INTC_REG(IXP4XX_ICMR_OFFSET)#define IXP4XX_ICLR IXP4XX_INTC_REG(IXP4XX_ICLR_OFFSET)#define IXP4XX_ICIP IXP4XX_INTC_REG(IXP4XX_ICIP_OFFSET)#define IXP4XX_ICFP IXP4XX_INTC_REG(IXP4XX_ICFP_OFFSET)#define IXP4XX_ICHR IXP4XX_INTC_REG(IXP4XX_ICHR_OFFSET)#define IXP4XX_ICIH IXP4XX_INTC_REG(IXP4XX_ICIH_OFFSET) #define IXP4XX_ICFH IXP4XX_INTC_REG(IXP4XX_ICFH_OFFSET) /* * Constants to make it easy to access GPIO registers */#define IXP4XX_GPIO_GPOUTR_OFFSET 0x00#define IXP4XX_GPIO_GPOER_OFFSET 0x04#define IXP4XX_GPIO_GPINR_OFFSET 0x08#define IXP4XX_GPIO_GPISR_OFFSET 0x0C#define IXP4XX_GPIO_GPIT1R_OFFSET 0x10#define IXP4XX_GPIO_GPIT2R_OFFSET 0x14#define IXP4XX_GPIO_GPCLKR_OFFSET 0x18#define IXP4XX_GPIO_GPDBSELR_OFFSET 0x1C/* * GPIO Register Definitions. * [Only perform 32bit reads/writes] */#define IXP4XX_GPIO_REG(x) ((volatile u32 *)(IXP4XX_GPIO_BASE_VIRT+(x)))#define IXP4XX_GPIO_GPOUTR IXP4XX_GPIO_REG(IXP4XX_GPIO_GPOUTR_OFFSET)#define IXP4XX_GPIO_GPOER IXP4XX_GPIO_REG(IXP4XX_GPIO_GPOER_OFFSET)#define IXP4XX_GPIO_GPINR IXP4XX_GPIO_REG(IXP4XX_GPIO_GPINR_OFFSET)#define IXP4XX_GPIO_GPISR IXP4XX_GPIO_REG(IXP4XX_GPIO_GPISR_OFFSET)#define IXP4XX_GPIO_GPIT1R IXP4XX_GPIO_REG(IXP4XX_GPIO_GPIT1R_OFFSET)#define IXP4XX_GPIO_GPIT2R IXP4XX_GPIO_REG(IXP4XX_GPIO_GPIT2R_OFFSET)#define IXP4XX_GPIO_GPCLKR IXP4XX_GPIO_REG(IXP4XX_GPIO_GPCLKR_OFFSET)#define IXP4XX_GPIO_GPDBSELR IXP4XX_GPIO_REG(IXP4XX_GPIO_GPDBSELR_OFFSET)/* * GPIO register bit definitions *//* Interrupt styles */#define IXP4XX_GPIO_STYLE_ACTIVE_HIGH 0x0#define IXP4XX_GPIO_STYLE_ACTIVE_LOW 0x1#define IXP4XX_GPIO_STYLE_RISING_EDGE 0x2#define IXP4XX_GPIO_STYLE_FALLING_EDGE 0x3#define IXP4XX_GPIO_STYLE_TRANSITIONAL 0x4/* * Mask used to clear interrupt styles */#define IXP4XX_GPIO_STYLE_CLEAR 0x7#define IXP4XX_GPIO_STYLE_SIZE 3/* * Constants to make it easy to access Timer Control/Status registers */#define IXP4XX_OSTS_OFFSET 0x00 /* Continious TimeStamp */#define IXP4XX_OST1_OFFSET 0x04 /* Timer 1 Timestamp */#define IXP4XX_OSRT1_OFFSET 0x08 /* Timer 1 Reload */#define IXP4XX_OST2_OFFSET 0x0C /* Timer 2 Timestamp */#define IXP4XX_OSRT2_OFFSET 0x10 /* Timer 2 Reload */#define IXP4XX_OSWT_OFFSET 0x14 /* Watchdog Timer */#define IXP4XX_OSWE_OFFSET 0x18 /* Watchdog Enable */#define IXP4XX_OSWK_OFFSET 0x1C /* Watchdog Key */#define IXP4XX_OSST_OFFSET 0x20 /* Timer Status *//* * Operating System Timer Register Definitions. */#define IXP4XX_TIMER_REG(x) ((volatile u32 *)(IXP4XX_TIMER_BASE_VIRT+(x)))#define IXP4XX_OSTS IXP4XX_TIMER_REG(IXP4XX_OSTS_OFFSET)#define IXP4XX_OST1 IXP4XX_TIMER_REG(IXP4XX_OST1_OFFSET)#define IXP4XX_OSRT1 IXP4XX_TIMER_REG(IXP4XX_OSRT1_OFFSET)#define IXP4XX_OST2 IXP4XX_TIMER_REG(IXP4XX_OST2_OFFSET)#define IXP4XX_OSRT2 IXP4XX_TIMER_REG(IXP4XX_OSRT2_OFFSET)#define IXP4XX_OSWT IXP4XX_TIMER_REG(IXP4XX_OSWT_OFFSET)#define IXP4XX_OSWE IXP4XX_TIMER_REG(IXP4XX_OSWE_OFFSET)#define IXP4XX_OSWK IXP4XX_TIMER_REG(IXP4XX_OSWK_OFFSET)#define IXP4XX_OSST IXP4XX_TIMER_REG(IXP4XX_OSST_OFFSET)/* * Timer register values and bit definitions */#define IXP4XX_OST_ENABLE 0x00000001#define IXP4XX_OST_ONE_SHOT 0x00000002/* Low order bits of reload value ignored */#define IXP4XX_OST_RELOAD_MASK 0x00000003#define IXP4XX_OST_DISABLED 0x00000000#define IXP4XX_OSST_TIMER_1_PEND 0x00000001#define IXP4XX_OSST_TIMER_2_PEND 0x00000002#define IXP4XX_OSST_TIMER_TS_PEND 0x00000004#define IXP4XX_OSST_TIMER_WDOG_PEND 0x00000008#define IXP4XX_OSST_TIMER_WARM_RESET 0x00000010#define IXP4XX_WDT_KEY 0x0000482E#define IXP4XX_WDT_RESET_ENABLE 0x00000001#define IXP4XX_WDT_IRQ_ENABLE 0x00000002#define IXP4XX_WDT_COUNT_ENABLE 0x00000004/* * Constants to make it easy to access PCI Control/Status registers */#define PCI_NP_AD_OFFSET 0x00#define PCI_NP_CBE_OFFSET 0x04#define PCI_NP_WDATA_OFFSET 0x08#define PCI_NP_RDATA_OFFSET 0x0c#define PCI_CRP_AD_CBE_OFFSET 0x10#define PCI_CRP_WDATA_OFFSET 0x14#define PCI_CRP_RDATA_OFFSET 0x18#define PCI_CSR_OFFSET 0x1c#define PCI_ISR_OFFSET 0x20#define PCI_INTEN_OFFSET 0x24#define PCI_DMACTRL_OFFSET 0x28#define PCI_AHBMEMBASE_OFFSET 0x2c#define PCI_AHBIOBASE_OFFSET 0x30#define PCI_PCIMEMBASE_OFFSET 0x34#define PCI_AHBDOORBELL_OFFSET 0x38#define PCI_PCIDOORBELL_OFFSET 0x3C#define PCI_ATPDMA0_AHBADDR_OFFSET 0x40#define PCI_ATPDMA0_PCIADDR_OFFSET 0x44#define PCI_ATPDMA0_LENADDR_OFFSET 0x48#define PCI_ATPDMA1_AHBADDR_OFFSET 0x4C#define PCI_ATPDMA1_PCIADDR_OFFSET 0x50#define PCI_ATPDMA1_LENADDR_OFFSET 0x54/* * PCI Control/Status Registers */#define IXP4XX_PCI_CSR(x) ((volatile u32 *)(IXP4XX_PCI_CFG_BASE_VIRT+(x)))#define PCI_NP_AD IXP4XX_PCI_CSR(PCI_NP_AD_OFFSET)#define PCI_NP_CBE IXP4XX_PCI_CSR(PCI_NP_CBE_OFFSET)#define PCI_NP_WDATA IXP4XX_PCI_CSR(PCI_NP_WDATA_OFFSET)#define PCI_NP_RDATA IXP4XX_PCI_CSR(PCI_NP_RDATA_OFFSET)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -