⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar531x.h

📁 atheros ar531x gpio driver
💻 H
📖 第 1 页 / 共 3 页
字号:
#define ARB_WLAN                    0x00000002      /* WLAN */#define ARB_MPEGTS_RSVD             0x00000004      /* MPEG-TS */#define ARB_LOCAL                   0x00000008      /* LOCAL */#define ARB_PCI                     0x00000010      /* PCI */#define ARB_ETHERNET                0x00000020      /* Ethernet */#define ARB_RETRY                   0x00000100      /* retry policy, debug only *//* * Config Register */#define AR5315_ENDIAN_CTL       (AR5315_DSLBASE + 0x000c)#define CONFIG_AHB                  0x00000001      /* EC - AHB bridge endianess */#define CONFIG_WLAN                 0x00000002      /* WLAN byteswap */#define CONFIG_MPEGTS_RSVD          0x00000004      /* MPEG-TS byteswap */#define CONFIG_PCI                  0x00000008      /* PCI byteswap */#define CONFIG_MEMCTL               0x00000010      /* Memory controller endianess */#define CONFIG_LOCAL                0x00000020      /* Local bus byteswap */#define CONFIG_ETHERNET             0x00000040      /* Ethernet byteswap */#define CONFIG_MERGE                0x00000200      /* CPU write buffer merge */#define CONFIG_CPU                  0x00000400      /* CPU big endian */#define CONFIG_PCIAHB               0x00000800#define CONFIG_PCIAHB_BRIDGE        0x00001000#define CONFIG_SPI                  0x00008000      /* SPI byteswap */#define CONFIG_CPU_DRAM             0x00010000#define CONFIG_CPU_PCI              0x00020000#define CONFIG_CPU_MMR              0x00040000#define CONFIG_BIG                  0x00000400      /* * NMI control */#define AR5315_NMI_CTL          (AR5315_DSLBASE + 0x0010)#define NMI_EN  1/* * Revision Register - Initial value is 0x3010 (WMAC 3.0, AR531X 1.0). */#define AR5315_SREV             (AR5315_DSLBASE + 0x0014)#define REV_MAJ                     0x00f0#define REV_MAJ_S                   4#define REV_MIN                     0x000f#define REV_MIN_S                   0#define REV_CHIP                    (REV_MAJ|REV_MIN)/* * Interface Enable */#define AR5315_IF_CTL           (AR5315_DSLBASE + 0x0018)#define IF_MASK                     0x00000007#define IF_DISABLED                 0#define IF_PCI                      1#define IF_TS_LOCAL                 2#define IF_ALL                      3   /* only for emulation with separate pins */#define IF_LOCAL_HOST               0x00000008#define IF_PCI_HOST                 0x00000010#define IF_PCI_INTR                 0x00000020#define IF_PCI_CLK_MASK             0x00030000#define IF_PCI_CLK_INPUT            0 #define IF_PCI_CLK_OUTPUT_LOW       1#define IF_PCI_CLK_OUTPUT_CLK       2#define IF_PCI_CLK_OUTPUT_HIGH      3#define IF_PCI_CLK_SHIFT            16                  /* Major revision numbers, bits 7..4 of Revision ID register */#define REV_MAJ_AR5311              0x01#define REV_MAJ_AR5312              0x04#define REV_MAJ_AR5315              0x0B/* * APB Interrupt control */#define AR5315_ISR              (AR5315_DSLBASE + 0x0020)#define AR5315_IMR              (AR5315_DSLBASE + 0x0024)#define AR5315_GISR             (AR5315_DSLBASE + 0x0028)#define ISR_UART0                   0x0001           /* high speed UART */#define ISR_I2C_RSVD                0x0002           /* I2C bus */#define ISR_SPI                     0x0004           /* SPI bus */#define ISR_AHB                     0x0008           /* AHB error */#define ISR_APB                     0x0010           /* APB error */#define ISR_TIMER                   0x0020           /* timer */#define ISR_GPIO                    0x0040           /* GPIO */#define ISR_WD                      0x0080           /* watchdog */#define ISR_IR_RSVD                 0x0100           /* IR */                                #define IMR_UART0                   ISR_UART0#define IMR_I2C_RSVD                ISR_I2C_RSVD#define IMR_SPI                     ISR_SPI#define IMR_AHB                     ISR_AHB#define IMR_APB                     ISR_APB#define IMR_TIMER                   ISR_TIMER#define IMR_GPIO                    ISR_GPIO#define IMR_WD                      ISR_WD#define IMR_IR_RSVD                 ISR_IR_RSVD#define GISR_MISC                   0x0001#define GISR_WLAN0                  0x0002#define GISR_MPEGTS_RSVD            0x0004#define GISR_LOCALPCI               0x0008#define GISR_WMACPOLL               0x0010#define GISR_TIMER                  0x0020#define GISR_ETHERNET               0x0040/* * Interrupt routing from IO to the processor IP bits * Define our inter mask and level */#define AR5315_INTR_MISCIO      SR_IBIT3#define AR5315_INTR_WLAN0       SR_IBIT4#define AR5315_INTR_ENET0       SR_IBIT5#define AR5315_INTR_LOCALPCI    SR_IBIT6#define AR5315_INTR_WMACPOLL    SR_IBIT7#define AR5315_INTR_COMPARE     SR_IBIT8/* * Timers */#define AR5315_TIMER            (AR5315_DSLBASE + 0x0030)#define AR5315_RELOAD           (AR5315_DSLBASE + 0x0034)#define AR5315_WD               (AR5315_DSLBASE + 0x0038)#define AR5315_WDC              (AR5315_DSLBASE + 0x003c)#define WDC_RESET                   0x00000002               /* reset on watchdog */#define WDC_NMI                     0x00000001               /* NMI on watchdog */#define WDC_IGNORE_EXPIRATION       0x00000000/* * Interface Debug */#define AR531X_FLASHDBG             (AR531X_RESETTMR + 0x0040)#define AR531X_MIIDBG               (AR531X_RESETTMR + 0x0044)/* * CPU Performance Counters */#define AR5315_PERFCNT0         (AR5315_DSLBASE + 0x0048)#define AR5315_PERFCNT1         (AR5315_DSLBASE + 0x004c)#define PERF_DATAHIT                0x0001  /* Count Data Cache Hits */#define PERF_DATAMISS               0x0002  /* Count Data Cache Misses */#define PERF_INSTHIT                0x0004  /* Count Instruction Cache Hits */#define PERF_INSTMISS               0x0008  /* Count Instruction Cache Misses */#define PERF_ACTIVE                 0x0010  /* Count Active Processor Cycles */#define PERF_WBHIT                  0x0020  /* Count CPU Write Buffer Hits */#define PERF_WBMISS                 0x0040  /* Count CPU Write Buffer Misses */                                #define PERF_EB_ARDY                0x0001  /* Count EB_ARdy signal */#define PERF_EB_AVALID              0x0002  /* Count EB_AValid signal */#define PERF_EB_WDRDY               0x0004  /* Count EB_WDRdy signal */#define PERF_EB_RDVAL               0x0008  /* Count EB_RdVal signal */#define PERF_VRADDR                 0x0010  /* Count valid read address cycles */#define PERF_VWADDR                 0x0020  /* Count valid write address cycles */#define PERF_VWDATA                 0x0040  /* Count valid write data cycles *//* * AHB Error Reporting. */#define AR5315_AHB_ERR0         (AR5315_DSLBASE + 0x0050)  /* error  */#define AR5315_AHB_ERR1         (AR5315_DSLBASE + 0x0054)  /* haddr  */#define AR5315_AHB_ERR2         (AR5315_DSLBASE + 0x0058)  /* hwdata */#define AR5315_AHB_ERR3         (AR5315_DSLBASE + 0x005c)  /* hrdata */#define AR5315_AHB_ERR4         (AR5315_DSLBASE + 0x0060)  /* status */#define AHB_ERROR_DET               1   /* AHB Error has been detected,          */                                        /* write 1 to clear all bits in ERR0     */#define AHB_ERROR_OVR               2   /* AHB Error overflow has been detected  */#define AHB_ERROR_WDT               4   /* AHB Error due to wdt instead of hresp */#define PROCERR_HMAST               0x0000000f#define PROCERR_HMAST_DFLT          0#define PROCERR_HMAST_WMAC          1#define PROCERR_HMAST_ENET          2#define PROCERR_HMAST_PCIENDPT      3#define PROCERR_HMAST_LOCAL         4#define PROCERR_HMAST_CPU           5#define PROCERR_HMAST_PCITGT        6                                    #define PROCERR_HMAST_S             0#define PROCERR_HWRITE              0x00000010#define PROCERR_HSIZE               0x00000060#define PROCERR_HSIZE_S             5#define PROCERR_HTRANS              0x00000180#define PROCERR_HTRANS_S            7#define PROCERR_HBURST              0x00000e00#define PROCERR_HBURST_S            9/* * Clock Control */#define AR5315_PLLC_CTL         (AR5315_DSLBASE + 0x0064)#define AR5315_PLLV_CTL         (AR5315_DSLBASE + 0x0068)#define AR5315_CPUCLK           (AR5315_DSLBASE + 0x006c)#define AR5315_AMBACLK          (AR5315_DSLBASE + 0x0070)#define AR5315_SYNCCLK          (AR5315_DSLBASE + 0x0074)#define AR5315_DSL_SLEEP_CTL    (AR5315_DSLBASE + 0x0080)#define AR5315_DSL_SLEEP_DUR    (AR5315_DSLBASE + 0x0084)/* PLLc Control fields */#define PLLC_REF_DIV_M              0x00000003#define PLLC_REF_DIV_S              0#define PLLC_FDBACK_DIV_M           0x0000007C#define PLLC_FDBACK_DIV_S           2#define PLLC_ADD_FDBACK_DIV_M       0x00000080#define PLLC_ADD_FDBACK_DIV_S       7#define PLLC_CLKC_DIV_M             0x0001c000#define PLLC_CLKC_DIV_S             14#define PLLC_CLKM_DIV_M             0x00700000#define PLLC_CLKM_DIV_S             20/* CPU CLK Control fields */#define CPUCLK_CLK_SEL_M            0x00000003#define CPUCLK_CLK_SEL_S            0#define CPUCLK_CLK_DIV_M            0x0000000c#define CPUCLK_CLK_DIV_S            2/* AMBA CLK Control fields */#define AMBACLK_CLK_SEL_M           0x00000003#define AMBACLK_CLK_SEL_S           0#define AMBACLK_CLK_DIV_M           0x0000000c#define AMBACLK_CLK_DIV_S           2#if defined(COBRA_EMUL)#define AR5315_AMBA_CLOCK_RATE  20000000#define AR5315_CPU_CLOCK_RATE   40000000#else#if defined(DEFAULT_PLL)#define AR5315_AMBA_CLOCK_RATE  40000000#define AR5315_CPU_CLOCK_RATE   40000000#else#define AR5315_AMBA_CLOCK_RATE  92000000#define AR5315_CPU_CLOCK_RATE   184000000#endif /* ! DEFAULT_PLL */#endif /* ! COBRA_EMUL */#define AR5315_UART_CLOCK_RATE  AR5315_AMBA_CLOCK_RATE#define AR5315_SDRAM_CLOCK_RATE AR5315_AMBA_CLOCK_RATE/* * The UART computes baud rate as: *   baud = clock / (16 * divisor) * where divisor is specified as a High Byte (DLM) and a Low Byte (DLL). */#define DESIRED_BAUD_RATE           38400/* * The WATCHDOG value is computed as *  10 seconds * AR531X_WATCHDOG_CLOCK_RATE */#define DESIRED_WATCHDOG_SECONDS    10#define AR531X_WATCHDOG_TIME \        (DESIRED_WATCHDOG_SECONDS * AR531X_WATCHDOG_CLOCK_RATE)#define CLOCKCTL_UART0  0x0010  /* enable UART0 external clock */ /* * Applicable "PCICFG" bits for WLAN(s).  Assoc status and LED mode. */#define AR531X_PCICFG               (AR531X_RESETTMR + 0x00b0)#define ASSOC_STATUS_M              0x00000003#define ASSOC_STATUS_NONE           0#define ASSOC_STATUS_PENDING        1   #define ASSOC_STATUS_ASSOCIATED     2#define LED_MODE_M                  0x0000001c#define LED_BLINK_THRESHOLD_M       0x000000e0#define LED_SLOW_BLINK_MODE         0x00000100/* * GPIO */#define AR5315_GPIO_DI          (AR5315_DSLBASE + 0x0088)#define AR5315_GPIO_DO          (AR5315_DSLBASE + 0x0090)#define AR5315_GPIO_CR          (AR5315_DSLBASE + 0x0098)#define AR5315_GPIO_INT         (AR5315_DSLBASE + 0x00a0)#define GPIO_CR_M(x)                (1 << (x))                  /* mask for i/o */#define GPIO_CR_O(x)                (1 << (x))                  /* output */#define GPIO_CR_I(x)                (0 << (x))                  /* input */#define GPIO_INT(x,Y)               ((x) << (8 * (Y)))          /* interrupt enable */#define GPIO_INT_M(Y)               ((0x3F) << (8 * (Y)))       /* mask for int */#define GPIO_INT_LVL(x,Y)           ((x) << (8 * (Y) + 6))      /* interrupt level */#define GPIO_INT_LVL_M(Y)           ((0x3) << (8 * (Y) + 6))    /* mask for int level */#define AR5315_RESET_GPIO       5#define AR5315_NUM_GPIO         22    /*  *  PCI Clock Control */      #define AR5315_PCICLK           (AR5315_DSLBASE + 0x00a4)#define PCICLK_INPUT_M              0x3#define PCICLK_INPUT_S              0                         #define PCICLK_PLLC_CLKM            0#define PCICLK_PLLC_CLKM1           1#define PCICLK_PLLC_CLKC            2#define PCICLK_REF_CLK              3 #define PCICLK_DIV_M                0xc#define PCICLK_DIV_S                2                         #define PCICLK_IN_FREQ              0#define PCICLK_IN_FREQ_DIV_6        1#define PCICLK_IN_FREQ_DIV_8        2#define PCICLK_IN_FREQ_DIV_10       3 /* * Observation Control Register */#define AR5315_OCR              (AR5315_DSLBASE + 0x00b0)#define OCR_GPIO0_IRIN              0x0040#define OCR_GPIO1_IROUT             0x0080#define OCR_GPIO3_RXCLR             0x0200/*  *  General Clock Control */      #define AR5315_MISCCLK          (AR5315_DSLBASE + 0x00b4)#define MISCCLK_PLLBYPASS_EN        0x00000001#define MISCCLK_PROCREFCLK          0x00000002/* * SDRAM Controller

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -