RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
bsp.h
Go to the documentation of this file.
1
9/*
10 * Philips LPC22XX/LPC21xx BSP header file
11 *
12 * by Ray,Xu <Rayx.cn@gmail.com>
13 *
14 * The license and distribution terms for this file may be
15 * found in the file LICENSE in this distribution or at
16 * http://www.rtems.org/license/LICENSE.
17*/
18#ifndef LIBBSP_ARM_RTL22XX_BSP_H
19#define LIBBSP_ARM_RTL22XX_BSP_H
20
31#include <bspopts.h>
33
34#include <rtems.h>
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40#define BSP_FEATURE_IRQ_EXTENSION
41
42#define CONFIG_ARM_CLK 60000000L
43/* cclk=cco/(2*P) */
44/* cco = cclk*2*P */
45
47#define LPC22xx_Fcclk CONFIG_ARM_CLK
48
49/* Fcco 156M~320Mhz*/
51#define LPC22xx_Fcclk CONFIG_ARM_CLK
52#define LPC22xx_Fcco LPC22xx_Fcclk * 4
54#define LPC22xx_Fpclk (LPC22xx_Fcclk /4) *1
55
56
57
63#define Fcclk_MIN 10000000L
64#define Fcclk_MAX 60000000L
65
73#define Fcco_MIN 156000000L
74#define Fcco_MAX 320000000L
75
78#define PLLFEED_DATA1 0xAA
79#define PLLFEED_DATA2 0x55
80
86#define PLLCON_ENABLE_BIT 0
87#define PLLCON_CONNECT_BIT 1
88
96#define PLLSTAT_ENABLE_BIT 8
97#define PLLSTAT_CONNECT_BIT 9
98#define PLLSTAT_LOCK_BIT 10
99
107#define PC_TIMER0 0x2
108#define PC_TIMER1 0x4
109#define PC_UART0 0x8
110#define PC_UART1 0x10
111#define PC_PWM0 0x20
112#define PC_I2C 0x80
113#define PC_SPI0 0x100
114#define PC_RTC 0x200
115
119#define FOSC 11059200
121#define FCCLK FOSC<<2
122
129#define Fosc 11059200
131#define Fcclk (Fosc << 2)
133#define Fcco (Fcclk <<2)
135#define Fpclk (Fcclk >>2) * 1
136/* This was M. That is a BAD BAD public constant. I renamed it to
137 * JOEL_M so it wouldn't conflict with user code. If you can find
138 * a better name, fix this. But nothing I found uses it.
139 */
140
143#define JOEL_M Fcclk / Fosc
144#define P_min Fcco_MIN / (2*Fcclk) + 1;
145#define P_max Fcco_MAX / (2*Fcclk);
146
147#define UART_BPS 115200
148
150#define TIMER_PRECISION 10
151
153#define I2CSPEED 20000 // 20 Kbit/s
154
160#define RXBUFSIZE 32
161#define TXBUFSIZE 32
162
166#define SPISPEED 1500000 // 1.5 Mbit/s
171#define SPI_CS_PIN P0_13
172#define SPI_CS_PIN_FUNC PINSEL0_bit.SPI_CS_PIN
173
179//#define RTL22XX_FLASH_SIZE (0x200000-RTL22XX_FLASH_BOOT) // Total area of Flash region in words 8 bit
181#define RTL22XX_FLASH_SIZE (0x80000-RTL22XX_FLASH_BOOT)
182//#define RTL22XX_FLASH_SIZE (0x80000-RTL22XX_FLASH_BOOT) // Total area of Flash region in words 8 bit
183#define RTL22XX_FLASH_BEGIN 0x80000000
185#define RTL22XX_FLASH_BASE (RTL22XX_FLASH_BEGIN+RTL22XX_FLASH_BOOT)
186
195#define SRAM_SIZE 0x100000
197#define SRAM_BASE 0x81000000
198
202#define CS8900A_BASE 0x82000000
204#define RTL8019AS_BASE 0x82000000
205
206struct rtems_bsdnet_ifconfig;
207int cs8900_driver_attach (struct rtems_bsdnet_ifconfig *config,
208 int attaching);
209
215#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
216#define RTEMS_BSP_NETWORK_DRIVER_ATTACH cs8900_driver_attach
217
220/*
221 * Prototypes for methods used across file boundaries in the BSP.
222 */
223extern void UART0_Ini(void);
224
225#ifdef __cplusplus
226}
227#endif
228
231#endif /* _BSP_H */
DEFAULT_INITIAL_EXTENSION Support.
Definition: deflate.c:115