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

📄 hal_sa11x0.h

📁 基于ecos的redboot
💻 H
📖 第 1 页 / 共 3 页
字号:
#define SA11X0_IRQ_CHANNEL_4_SERVICE_REQUEST     24
#define SA11X0_IRQ_CHANNEL_5_SERVICE_REQUEST     25
#define SA11X0_IRQ_OS_TIMER_MATCH_REG_0          26
#define SA11X0_IRQ_OS_TIMER_MATCH_REG_1          27
#define SA11X0_IRQ_OS_TIMER_MATCH_REG_2          28
#define SA11X0_IRQ_OS_TIMER_MATCH_REG_3          29
#define SA11X0_IRQ_ONE_HZ_CLOCK_TIC              30
#define SA11X0_IRQ_RTC_EQUALS_ALARM              31
                                                 
#define SA11X0_IRQ_MAX                           31
#define NUM_SA11X0_INTERRUPTS                    SA11X0_IRQ_MAX - SA11X0_IRQ_MIN + 1
#define SA11X0_IRQ_INTSRC_MASK(irq_nr)           (1 << (irq_nr))

/*
 * SA11X0 UART 1 Registers
 */
#define SA11X0_UART1_BASE                       SA11X0_REGISTER(0x10000)
#define SA11X0_UART1_CONTROL0                   SA11X0_REGISTER(0x10000)
#define SA11X0_UART1_CONTROL1                   SA11X0_REGISTER(0x10004)
#define SA11X0_UART1_CONTROL2                   SA11X0_REGISTER(0x10008)
#define SA11X0_UART1_CONTROL3                   SA11X0_REGISTER(0x1000C)
#define SA11X0_UART1_DATA                       SA11X0_REGISTER(0x10014)
#define SA11X0_UART1_STATUS0                    SA11X0_REGISTER(0x1001C)
#define SA11X0_UART1_STATUS1                    SA11X0_REGISTER(0x10020)

/*
 * SA11X0 UART 3 Registers
 */
#define SA11X0_UART3_BASE                       SA11X0_REGISTER(0x50000)
#define SA11X0_UART3_CONTROL0                   SA11X0_REGISTER(0x50000)
#define SA11X0_UART3_CONTROL1                   SA11X0_REGISTER(0x50004)
#define SA11X0_UART3_CONTROL2                   SA11X0_REGISTER(0x50008)
#define SA11X0_UART3_CONTROL3                   SA11X0_REGISTER(0x5000C)
#define SA11X0_UART3_DATA                       SA11X0_REGISTER(0x50014)
#define SA11X0_UART3_STATUS0                    SA11X0_REGISTER(0x5001C)
#define SA11X0_UART3_STATUS1                    SA11X0_REGISTER(0x50020)

/*
 * SA11X0 UART Control Register 0 Bit Fields.
 */
#define SA11X0_UART_PARITY_DISABLED              0x00
#define SA11X0_UART_PARITY_ENABLED               0x01
#define SA11X0_UART_PARITY_ENABLE_MASK           0x01
#define SA11X0_UART_PARITY_ODD                   0x00
#define SA11X0_UART_PARITY_EVEN                  0x02
#define SA11X0_UART_PARITY_MODE_MASK             0x02
#define SA11X0_UART_STOP_BITS_1                  0x00
#define SA11X0_UART_STOP_BITS_2                  0x04
#define SA11X0_UART_STOP_BITS_MASK               0x04
#define SA11X0_UART_DATA_BITS_7                  0x00
#define SA11X0_UART_DATA_BITS_8                  0x08
#define SA11X0_UART_DATA_BITS_MASK               0x08
#define SA11X0_UART_SAMPLE_CLOCK_DISABLED        0x00
#define SA11X0_UART_SAMPLE_CLOCK_ENABLED         0x10
#define SA11X0_UART_SAMPLE_CLOCK_ENABLE_MASK     0x10
#define SA11X0_UART_RX_RISING_EDGE_SELECT        0x00
#define SA11X0_UART_RX_FALLING_EDGE_SELECT       0x20
#define SA11X0_UART_RX_EDGE_SELECT_MASK          0x20
#define SA11X0_UART_TX_RISING_EDGE_SELECT        0x00
#define SA11X0_UART_TX_FALLING_EDGE_SELECT       0x40
#define SA11X0_UART_TX_EDGE_SELECT_MASK          0x20

/*
 * SA-1100 UART Baud Control Register bit masks
 */
#define SA11X0_UART_H_BAUD_RATE_DIVISOR_MASK     0x0000000F
#define SA11X0_UART_L_BAUD_RATE_DIVISOR_MASK     0x000000FF
#define SA11X0_UART_BAUD_RATE_DIVISOR(x)         ((3686400/(16*(x)))-1)

/*
 * SA-1100 UART Control Register 3 Bit Fields.
 */
#define SA11X0_UART_RX_DISABLED                  0x00
#define SA11X0_UART_RX_ENABLED                   0x01
#define SA11X0_UART_RX_ENABLE_MASK               0x01
#define SA11X0_UART_TX_DISABLED                  0x00
#define SA11X0_UART_TX_ENABLED                   0x02
#define SA11X0_UART_TX_ENABLE_MASK               0x02
#define SA11X0_UART_BREAK_DISABLED               0x00
#define SA11X0_UART_BREAK_ENABLED                0x04
#define SA11X0_UART_BREAK_MASK                   0x04
#define SA11X0_UART_RX_FIFO_INT_DISABLED         0x00
#define SA11X0_UART_RX_FIFO_INT_ENABLED          0x08
#define SA11X0_UART_RX_FIFO_INT_ENABLE_MASK      0x08
#define SA11X0_UART_TX_FIFO_INT_DISABLED         0x00
#define SA11X0_UART_TX_FIFO_INT_ENABLED          0x10
#define SA11X0_UART_TX_FIFO_INT_ENABLE_MASK      0x10
#define SA11X0_UART_NORMAL_OPERATION             0x00
#define SA11X0_UART_LOOPBACK_MODE                0x20

/*
 * SA-1100 UART Data Register bit masks
 */
#define SA11X0_UART_DATA_MASK                    0x000000FF

/*
 * SA-1100 UART Status Register 0 Bit Fields.
 */
#define SA11X0_UART_TX_SERVICE_REQUEST           0x01
#define SA11X0_UART_RX_SERVICE_REQUEST           0x02
#define SA11X0_UART_RX_IDLE                      0x04
#define SA11X0_UART_RX_BEGIN_OF_BREAK            0x08
#define SA11X0_UART_RX_END_OF_BREAK              0x10
#define SA11X0_UART_ERROR_IN_FIFO                0x20

/*
 * SA-1100 UART Status Register 1 Bit Fields.
 */
#define SA11X0_UART_TX_BUSY                      0x01
#define SA11X0_UART_RX_FIFO_NOT_EMPTY            0x02
#define SA11X0_UART_TX_FIFO_NOT_FULL             0x04
#define SA11X0_UART_PARITY_ERROR                 0x08
#define SA11X0_UART_FRAMING_ERROR                0x10
#define SA11X0_UART_RX_FIFO_OVERRUN              0x20

#define UART_BASE_0                              SA11X0_UART_CONTROL_0
#define UART_BASE_1                              SA11X0_UART_1_CONTROL_0

/*
 * SA11X0 IRQ Controller Register Definitions.
 */
#define SA11X0_ICIP                              SA11X0_REGISTER(0x10050000)
#define SA11X0_ICMR                              SA11X0_REGISTER(0x10050004)
#define SA11X0_ICLR                              SA11X0_REGISTER(0x10050008)
#define SA11X0_ICCR                              SA11X0_REGISTER(0x1005000C)
#define SA11X0_ICFP                              SA11X0_REGISTER(0x10050010)
#define SA11X0_ICPR                              SA11X0_REGISTER(0x10050020)

/*
 * SA11X0 IRQ Controller Control Register Bit Fields.
 */
#define SA11X0_ICCR_DISABLE_IDLE_MASK_ALL        0x0
#define SA11X0_ICCR_DISABLE_IDLE_MASK_ENABLED    0x1

/*
 * SA11X0 Timer/counter registers
 */
#define SA11X0_OSMR0                             SA11X0_REGISTER(0x10000000)
#define SA11X0_OSMR1                             SA11X0_REGISTER(0x10000004)
#define SA11X0_OSMR2                             SA11X0_REGISTER(0x10000008)
#define SA11X0_OSMR3                             SA11X0_REGISTER(0x1000000C)
#define SA11X0_OSCR                              SA11X0_REGISTER(0x10000010)
#define SA11X0_OSSR                              SA11X0_REGISTER(0x10000014)
#define SA11X0_OWER                              SA11X0_REGISTER(0x10000018)
#define SA11X0_OIER                              SA11X0_REGISTER(0x1000001C)
#define SA11X0_RCNR                              SA11X0_REGISTER(0x10010004)
#define SA11X0_RTTR                              SA11X0_REGISTER(0x10010008)
#define SA11X0_RTSR                              SA11X0_REGISTER(0x10010010)

// Timer status register
#define SA11X0_OSSR_TIMER0  (1<<0)   // Timer match register #0
#define SA11X0_OSSR_TIMER1  (1<<1)
#define SA11X0_OSSR_TIMER2  (1<<2)
#define SA11X0_OSSR_TIMER3  (1<<3)

// Timer interrupt enable register
#define SA11X0_OIER_TIMER0  (1<<0)
#define SA11X0_OIER_TIMER1  (1<<1)
#define SA11X0_OIER_TIMER2  (1<<2)
#define SA11X0_OIER_TIMER3  (1<<3)

// OS Timer Watchdog Match Enable Register
#define SA11X0_OWER_ENABLE  (1<<0) // write-once!

/*
 * SA-1100 Reset Controller Register Definition
 */
#define SA11X0_RESET_SOFTWARE_RESET              SA11X0_REGISTER(0x10030000)
#define SA11X0_RESET_STATUS                      SA11X0_REGISTER(0x10030004)
#define SA11X0_TUCR                              SA11X0_REGISTER(0x10030008)

#define SA11X0_TUCR_EXTERNAL_MEMORY_MASTER       (1<<10)
#define SA11X0_TUCR_RESERVED_BITS                0x1FFFF9FF

/*
 * SA-1100 Reset Controller Bit Field Definitions
 */
#define SA11X0_INVOKE_SOFTWARE_RESET             0x1

#define SA11X0_HARDWARE_RESET                    0x1
#define SA11X0_SOFTWARE_RESET                    0x2
#define SA11X0_WATCHDOG_RESET                    0x4
#define SA11X0_SLEEP_MODE_RESET                  0x8

/*
 * SA-1100 Power Manager Registers
 */
#define SA11X0_PWR_MGR_CONTROL                   SA11X0_REGISTER(0x10020000)
#define SA11X0_PWR_MGR_SLEEP_STATUS              SA11X0_REGISTER(0x10020004)
#define SA11X0_PWR_MGR_SCRATCHPAD                SA11X0_REGISTER(0x10020008)
#define SA11X0_PWR_MGR_WAKEUP_ENABLE             SA11X0_REGISTER(0x1002000C)
#define SA11X0_PWR_MGR_GENERAL_CONFIG            SA11X0_REGISTER(0x10020010)
#define SA11X0_PWR_MGR_PLL_CONFIG                SA11X0_REGISTER(0x10020014)
#define SA11X0_PWR_MGR_GPIO_SLEEP_STATE          SA11X0_REGISTER(0x10020018)
#define SA11X0_PWR_MGR_OSC_STATUS                SA11X0_REGISTER(0x1002001C)

/*
 * SA-1100 Control Register Bit Field Definitions
 */
#define SA11X0_NO_FORCE_SLEEP_MODE               0x00000000
#define SA11X0_FORCE_SLEEP_MODE                  0x00000001
#define SA11X0_SLEEP_MODE_MASK                   0x00000001

/*
 * SA-1100 Power Management Configuration Register Bit Field Definitions
 */
#define SA11X0_NO_STOP_OSC_DURING_SLEEP          0x00000000
#define SA11X0_STOP_OSC_DURING_SLEEP             0x00000001
#define SA11X0_OSC_DURING_SLEEP_MASK             0x00000001
#define SA11X0_DRIVE_PCMCIA_DURING_SLEEP         0x00000000
#define SA11X0_FLOAT_PCMCIA_DURING_SLEEP         0x00000002
#define SA11X0_PCMCIA_DURING_SLEEP_MASK          0x00000002
#define SA11X0_DRIVE_CHIPSEL_DURING_SLEEP        0x00000000
#define SA11X0_FLOAT_CHIPSEL_DURING_SLEEP        0x00000004
#define SA11X0_CHIPSEL_DURING_SLEEP_MASK         0x00000004
#define SA11X0_WAIT_OSC_STABLE                   0x00000000
#define SA11X0_FORCE_OSC_ENABLE_ON               0x00000008
#define SA11X0_OSC_STABLE_MASK                   0x00000008

/*
 * SA-1100 PLL Configuration Register Bit Field Definitions
 */
#define SA11X0_CLOCK_SPEED_59_0_MHz              0x00000000
#define SA11X0_CLOCK_SPEED_73_7_MHz              0x00000001
#define SA11X0_CLOCK_SPEED_88_5_MHz              0x00000002
#define SA11X0_CLOCK_SPEED_103_2_MHz             0x00000003
#define SA11X0_CLOCK_SPEED_118_0_MHz             0x00000004
#define SA11X0_CLOCK_SPEED_132_7_MHz             0x00000005
#define SA11X0_CLOCK_SPEED_147_5_MHz             0x00000006
#define SA11X0_CLOCK_SPEED_162_2_MHz             0x00000007
#define SA11X0_CLOCK_SPEED_176_9_MHz             0x00000008
#define SA11X0_CLOCK_SPEED_191_7_MHz             0x00000009
#define SA11X0_CLOCK_SPEED_206_4_MHz             0x0000000A
#define SA11X0_CLOCK_SPEED_221_2_MHz             0x0000000B

/*
 * SA-1100 Power Manager Wakeup Register Bit Field Definitions
 */

⌨️ 快捷键说明

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