]> rtime.felk.cvut.cz Git - sysless.git/blobdiff - board/arm/ul_usb1/defines/system_def.h
It is 12 years after C99 standardization - switch to stdint.h and its types.
[sysless.git] / board / arm / ul_usb1 / defines / system_def.h
index 71a06fb0f9683f8d83ec3e39fd2f9728b2b0e7ea..34692f8f43edb24d5ad4144697decc59d8ce65ec 100644 (file)
 #ifndef _SYSTEM_DEF_H_
 #define _SYSTEM_DEF_H_
 
-#include <types.h>
+#include <stdint.h>
 #include <system_stub.h>
-#include <LPC21xx.h>
+#include <LPC214x.h>
+#include <bspbase.h>
 
 #ifndef NULL
 #define        NULL    0
 
 #define VER_CODE(major,minor,patch) (major*0x10000+minor*0x100+patch)
 /* Software version */
-#define SW_VER_ID      "MX_USBL"
+#define SW_VER_ID      "UL_USB"
 #define SW_VER_MAJOR   0
 #define SW_VER_MINOR   2
 #define SW_VER_PATCH   0
 #define SW_VER_CODE    VER_CODE(SW_VER_MAJOR,SW_VER_MINOR,SW_VER_PATCH)
 /* Hardware version */
-#define HW_VER_ID      "MX_CPU"
+#define HW_VER_ID      "UL_USB"
 #define HW_VER_MAJOR   1
 #define HW_VER_MINOR   0
 #define HW_VER_PATCH   0
 #define HW_VER_CODE    VER_CODE(HW_VER_MAJOR,HW_VER_MINOR,HW_VER_PATCH)
 /* Version of mechanical  */
-#define MECH_VER_ID     "MX_USBL"
+#define MECH_VER_ID     "UL_USB"
 #define MECH_VER_MAJOR  0
 #define MECH_VER_MINOR  0
 #define MECH_VER_PATCH  0
@@ -56,7 +57,7 @@
 #define PBSD                1           // MUST BE 1, 2, or 4
 #define PCLK                (CCLK / PBSD) // Pheripheal Bus Clock Freq.
 
-#define CPU_SYS_HZ         1000
+#define SYS_TIMER_HZ       1000
 
 #ifndef BIT
 #define BIT(n)              (1 << (n))
 // Port Bit Definitions & Macros:    Description - initial conditions
 #define TXD0_BIT            BIT(0)      // used by UART0
 #define RXD0_BIT            BIT(1)      // used by UART0
-#define P0_02_UNUSED_BIT    BIT(2)      // P0.02 unused - low output
-#define P0_03_UNUSED_BIT    BIT(3)      // P0.03 unused - low output
-#define P0_04_UNUSED_BIT    BIT(4)      // P0.04 unused - low output
-#define P0_05_UNUSED_BIT    BIT(5)      // P0.05 unused - low output
-#define P0_06_UNUSED_BIT    BIT(6)      // P0.06 unused - low output
-#define P0_07_UNUSED_BIT    BIT(7)      // P0.07 unused - low output
+#define P0_SCL0_PIN         BIT(2)      // I2C 0 SCL
+#define P0_SDA0_PIN         BIT(3)      // I2C 0 SDA
+#define P0_SCK0_PIN         BIT(4)      // SPI0 clocks
+#define P0_MISO0_PIN        BIT(5)      // SPI0 master input
+#define P0_MOSI0_PIN        BIT(6)      // SPI0 master output
+#define P0_SSEL0_PIN        BIT(7)      // SPI0 external select/ADS1218 DRDY
 #define TXD1_BIT            BIT(8)      // used by UART1
 #define RXD1_BIT            BIT(9)      // used by UART1
 #define RTS1_BIT            BIT(10)     // used by UART1
 #define CTS1_BIT            BIT(11)     // used by UART1
 #define DSR1_BIT            BIT(12)     // used by UART1
-#define P0_13_UNUSED_BIT    BIT(13)     // P0.13 unused - low output
+#define LED2_BIT            BIT(13)     // used by LED
 #define BOOT_BIT            BIT(14)     // SWITCH
-#define P0_15_UNUSED_BIT    BIT(15)     // P0.15 unused - low output
-#define P0_16_UNUSED_BIT    BIT(16)     // P0.16 unused - low output
-#define P0_17_UNUSED_BIT    BIT(17)     // P0.17 unused - low output
-#define P0_18_UNUSED_BIT    BIT(18)     // P0.18 unused - low output
-#define P0_19_UNUSED_BIT    BIT(19)     // P0.19 unused - low output
-#define P0_20_UNUSED_BIT    BIT(20)     // P0.20 unused - low output
-#define LED1_BIT            BIT(21)     // used by LED
-#define LED2_BIT            BIT(22)     // used by LED
-#define P0_23_UNUSED_BIT    BIT(23)     // P0.23 unused - low output
+#define LED1_BIT            BIT(15)     // used by LED
+#define P0_SWITCH1_PIN      BIT(16)     // pin connected to the switch 1
+#define P0_SCK1_PIN         BIT(17)     // SPI1 clocks
+#define P0_MISO1_PIN        BIT(18)     // SPI1 master input
+#define P0_MOSI1_PIN        BIT(19)     // SPI1 master output
+#define P0_SSEL1_PIN        BIT(20)     // SPI1 slave select/25VF016 chipselect
+#define P0_21_UNUSED_BIT    BIT(21)     // P0.21 unused - low output
+#define P0_22_UNUSED_BIT    BIT(22)     // P0.22 unused - low output
+#define P0_SJA1000_ALE_PIN  BIT(23)     // SJA1000 ALE
 #define P0_24_UNUSED_BIT    BIT(24)     // P0.24 unused - low output
-#define P0_25_UNUSED_BIT    BIT(25)     // P0.25 unused - low output
+#define P0_SJA1000_CS_PIN   BIT(25)     // SJA1000 CS
 #define P0_26_UNUSED_BIT    BIT(26)     // P0.26 unused - low output
 #define P0_27_UNUSED_BIT    BIT(27)     // P0.27 unused - low output
-#define P0_28_UNUSED_BIT    BIT(28)     // P0.28 unused - low output
-#define P0_29_UNUSED_BIT    BIT(29)     // P0.29 unused - low output
-#define P0_30_UNUSED_BIT    BIT(30)     // P0.30 unused - low output
-#define P0_31_UNUSED_BIT    BIT(31)     // P0.31 unused - low output
-
-
-#define P1_16_UNUSED_BIT    BIT(16)     // P1.16 unused - low output
-#define P1_17_UNUSED_BIT    BIT(17)     // P1.17 unused - low output
-#define P1_18_UNUSED_BIT    BIT(18)     // P1.18 unused - low output
-#define P1_19_UNUSED_BIT    BIT(19)     // P1.19 unused - low output
-#define P1_20_UNUSED_BIT    BIT(20)     // P1.20 unused - low output
-#define P1_21_UNUSED_BIT    BIT(21)     // P1.21 unused - low output
-#define P1_22_UNUSED_BIT    BIT(22)     // P1.22 unused - low output
-#define P1_23_UNUSED_BIT    BIT(23)     // P1.23 unused - low output
-#define P1_24_UNUSED_BIT    BIT(24)     // P1.24 unused - low output
-#define P1_25_UNUSED_BIT    BIT(25)     // P1.25 unused - low output
+#define P0_SJA1000_RD_PIN   BIT(28)     // SJA1000 RD
+#define P0_SJA1000_WR_PIN   BIT(29)     // SJA1000 WR
+#define P0_SJA1000_INT_PIN  BIT(30)     // SJA1000 INT
+#define P0_USB_CONNECT_PIN  BIT(31)     // USB Connect Control
+
+#define P1_SJA1000_D0_PIN   BIT(16)     // SJA1000 D0
+#define P1_SJA1000_D1_PIN   BIT(17)     // SJA1000 D1
+#define P1_SJA1000_D2_PIN   BIT(18)     // SJA1000 D2
+#define P1_SJA1000_D3_PIN   BIT(19)     // SJA1000 D3
+#define P1_SJA1000_D4_PIN   BIT(20)     // SJA1000 D4
+#define P1_SJA1000_D5_PIN   BIT(21)     // SJA1000 D5
+#define P1_SJA1000_D6_PIN   BIT(22)     // SJA1000 D6
+#define P1_SJA1000_D7_PIN   BIT(23)     // SJA1000 D7
+#define P1_OUT_PORT_CS_PIN  BIT(24)     // Chip select for 74HC574 chip
+#define P1_SJA1000_RST_PIN  BIT(25)     // SJA1000 RST
 #define P1_26_UNUSED_BIT    BIT(26)     // used by JTAG
 #define P1_27_UNUSED_BIT    BIT(27)     // used by JTAG
 #define P1_28_UNUSED_BIT    BIT(28)     // used by JTAG
 #define P1_30_UNUSED_BIT    BIT(30)     // used by JTAG
 #define P1_31_UNUSED_BIT    BIT(31)     // used by JTAG
 
+#define P1_SJA1000_DATA_PINS   (uint32_t) ( \
+                                         P1_SJA1000_D0_PIN | \
+                                         P1_SJA1000_D1_PIN | \
+                                         P1_SJA1000_D2_PIN | \
+                                         P1_SJA1000_D3_PIN | \
+                                         P1_SJA1000_D4_PIN | \
+                                         P1_SJA1000_D5_PIN | \
+                                         P1_SJA1000_D6_PIN | \
+                                         P1_SJA1000_D7_PIN | \
+                                         0 )
+
 #define P0IO_INPUT_BITS      (uint32_t) ( \
+                                         P0_SCL0_PIN | \
+                                         P0_SDA0_PIN | \
+                                         P0_MISO0_PIN | \
+                                         P0_SSEL0_PIN | \
+                                         P0_MISO1_PIN | \
                                         BOOT_BIT | \
+                                         P0_SWITCH1_PIN | \
+                                         P0_SJA1000_INT_PIN | \
                                          0 )
 
 #define P1IO_INPUT_BITS      (uint32_t) ( \
+                                         P1_26_UNUSED_BIT | \
+                                         P1_27_UNUSED_BIT | \
+                                         P1_28_UNUSED_BIT | \
+                                         P1_29_UNUSED_BIT | \
+                                         P1_30_UNUSED_BIT | \
+                                         P1_31_UNUSED_BIT | \
                                          0 )
 
 #define P0IO_ZERO_BITS       (uint32_t) ( \
-                                         P0_02_UNUSED_BIT | \
-                                         P0_03_UNUSED_BIT | \
-                                         P0_04_UNUSED_BIT | \
-                                         P0_05_UNUSED_BIT | \
-                                         P0_06_UNUSED_BIT | \
-                                         P0_07_UNUSED_BIT | \
-                                        P0_13_UNUSED_BIT | \
-                                        P0_15_UNUSED_BIT | \
-                                        P0_16_UNUSED_BIT | \
-                                        P0_17_UNUSED_BIT | \
-                                        P0_18_UNUSED_BIT | \
-                                        P0_19_UNUSED_BIT | \
-                                        P0_20_UNUSED_BIT | \
-                                         P0_23_UNUSED_BIT | \
+                                         P0_21_UNUSED_BIT | \
+                                         P0_22_UNUSED_BIT | \
                                          P0_24_UNUSED_BIT | \
-                                         P0_25_UNUSED_BIT | \
                                          P0_26_UNUSED_BIT | \
                                          P0_27_UNUSED_BIT | \
-                                         P0_28_UNUSED_BIT | \
-                                         P0_29_UNUSED_BIT | \
-                                         P0_30_UNUSED_BIT | \
-                                         P0_31_UNUSED_BIT | \
+                                         P0_USB_CONNECT_PIN | \
                                          0 )
 
 #define P1IO_ZERO_BITS       (uint32_t) ( \
-                                        P1_16_UNUSED_BIT | \
-                                        P1_17_UNUSED_BIT | \
-                                        P1_18_UNUSED_BIT | \
-                                        P1_19_UNUSED_BIT | \
-                                        P1_20_UNUSED_BIT | \
-                                        P1_21_UNUSED_BIT | \
-                                        P1_22_UNUSED_BIT | \
-                                         P1_23_UNUSED_BIT | \
-                                         P1_24_UNUSED_BIT | \
-                                         P1_25_UNUSED_BIT | \
-                                         P1_26_UNUSED_BIT | \
-                                         P1_27_UNUSED_BIT | \
-                                         P1_28_UNUSED_BIT | \
-                                         P1_29_UNUSED_BIT | \
-                                         P1_30_UNUSED_BIT | \
-                                         P1_31_UNUSED_BIT | \
+                                         P1_SJA1000_DATA_PINS | \
+                                         P1_SJA1000_RST_PIN | \
                                          0 )
 
 
 #define P0IO_ONE_BITS        (uint32_t) ( \
+                                         P0_SCK0_PIN | \
+                                         P0_MOSI0_PIN | \
                                          LED1_BIT | \
                                         BOOT_BIT | \
                                          LED2_BIT | \
+                                         P0_SCK1_PIN | \
+                                         P0_MOSI1_PIN | \
+                                         P0_SSEL1_PIN | \
+                                        P0_SJA1000_ALE_PIN | \
+                                         P0_SJA1000_CS_PIN | \
+                                         P0_SJA1000_RD_PIN | \
+                                         P0_SJA1000_WR_PIN | \
                                          0 )
 
 #define P1IO_ONE_BITS        (uint32_t) ( \
+                                         P1_OUT_PORT_CS_PIN | \
                                          0 )
 
 #define P0IO_OUTPUT_BITS     (uint32_t) ( \
                                          P1IO_ZERO_BITS | \
                                          P1IO_ONE_BITS )
 
+/***************************************************************************/
+/* io functions */
+#define LED_GP                 LED1_BIT  /* GENREAL PURPOSE LED */
+#define LED_ERR                        LED2_BIT
+
+#define LED_YELLOW             LED1_BIT
+#define LED_RED                        LED2_BIT
+
+/***************************************************************************/
+/* io functions */
+#define IN_PORT                        IO0
+#define LED_PORT               IO0
+#define OUT_PORT               IO1
+
+#define CREATE_PORT_NAME_PIN(port) port##PIN
+#define CREATE_PORT_NAME_CLR(port) port##CLR
+#define CREATE_PORT_NAME_SET(port) port##SET
+
+#define GET_IN_PIN(port,in)    ((CREATE_PORT_NAME_PIN(port) & in)?1:0) 
+#define SET_OUT_PIN(port,out)   (CREATE_PORT_NAME_SET(port)=out)
+#define CLR_OUT_PIN(port,out)   (CREATE_PORT_NAME_CLR(port)=out)
+
+/***************************************************************************/
+/* watchdog */
+//#define WATCHDOG_ENABLED
+#define WATCHDOG_TIMEOUT_MS    1000
+
 /***************************************************************************/
 /* uLan configuration */
 
 
 #define UL_DRV_SYSLESS_PORT 0xE0010000
 #define UL_DRV_SYSLESS_BAUD 19200
+#define UL_DRV_SYSLESS_IRQ HAL_INTERRUPT_UART1
 #define UL_DRV_SYSLESS_MY_ADR_DEFAULT 1
 
+#define watchdog_feed lpc_watchdog_feed
+#define kvpb_erase lpcisp_kvpb_erase
+#define kvpb_copy lpcisp_kvpb_copy
+#define kvpb_flush lpcisp_kvpb_flush
+#define KVPB_DEFAULT_FLAGS KVPB_DESC_DOUBLE|KVPB_DESC_CHUNKWO
+
+/***************************************************************************/
+/* USB configuration */
+#define USB_WITH_UDEV_FNC
+#define USB_EP_NUM          32
+#define USB_MAX_PACKET0     64
+#define USB_MAX_PACKET      8
+#define USB_DMA_EP          0x00000000
+
+/***************************************************************************/
+/* i2c0 configuration */
+#define I2C_DRV_SYSLESS_IRQ HAL_INTERRUPT_I2C0
+#define I2C_DRV_SYSLESS_PORT 0xE001C000
+#define I2C_DRV_SYSLESS_BITRATE 100000
+#define I2C_DRV_SYSLESS_SLADR 0
+
+/***************************************************************************/
+/* Constants for JTAG and supply control port pins: */
+#define JTAGIN         (IO0PIN)        // Control ports are on P5.x
+#define JTAGSET                (IO0SET)
+#define JTAGCLR                (IO0CLR)
+#define        JTAGDIR         (IO0DIR)
+#define        JTAGOUT_RDBACK  (IO0PIN)        // used to read actual TCLK output value
+#undef JTAGSEL
+#define TMS_PIN                (1<<20) // P0.20 JTAG TMS input pin
+#define TDI_PIN                (1<<19) // P0.19 JTAG TDI input pin  (SIMO1 if SPI mode)
+#define TDO_PIN                (1<<18) // P0.18 JTAG TDO output pin (SOMI1 if SPI mode) 
+#define TCK_PIN                (1<<17) // P0.17 JTAG TCK input pin  (UCLK1 if SPI mode) 
+#define TDICTRL2_PIN   0       // Px.x switch TDO to TDI
+#define TDICTRL1_PIN   0       // Px.x connects TDI
+#define TEST_PIN       0       // Px.x TEST pin (20 & 28-pin devices only)
+#define VCCTGT_PIN     0       // Px.x Supply voltage of target board
+#define TCLK_PIN       TDI_PIN // P7.3 TDI (former XOUT) receives TCLK
+
+#define ClrTMS()       do {(JTAGCLR) |= (TMS_PIN);} while(0);
+#define SetTMS()       do {(JTAGSET) |= (TMS_PIN);} while(0);
+#define ClrTDI()       do {(JTAGCLR) |= (TDI_PIN);} while(0);
+#define SetTDI()       do {(JTAGSET) |= (TDI_PIN);} while(0);
+#define ClrTCK()       do {(JTAGCLR) |= (TCK_PIN);} while(0);
+#define SetTCK()       do {(JTAGSET) |= (TCK_PIN);} while(0);
+#define ClrTCLK()      do {(JTAGCLR) |= (TCLK_PIN);} while(0);
+#define SetTCLK()      do {(JTAGSET) |= (TCLK_PIN);} while(0);
+#define StoreTCLK()    ((JTAGOUT_RDBACK & TCLK_PIN) ? 1:0)
+#define RestoreTCLK(x) (x == 0 ? (JTAGCLR |= TCLK_PIN) : (JTAGSET |= TCLK_PIN))
+#define ScanTDO()      ((JTAGIN & TDO_PIN))    // assumes TDO to be bit0
+
+#define JTAG_IODELAY() __asm__ __volatile__ ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n": : )
+
+/****************************************************************************/
+/* Define section for user, related to the controller used (here MSP430F149)*/
+/****************************************************************************/
+
+// Constants for Error LED control port:
+#define JTAGLEDSET     (IO0SET) // LED ports are P0.x
+#define JTAGLEDCLR     (IO0CLR) // LED ports are P0.x
+#define        JTAGLEDDIR      (IO0DIR)
+#undef JTAGLEDSEL      /*P1SEL*/
+#define JTAGLEDRED     (1<<13) // P0.13 Red LED (ERROR)
+#define JTAGLEDGREEN   (1<<15) // P0.15 Green LED (OK)
+
+/***************************************************************************/
+/* PBMaster configuration */
+#define PBM_8250_PORT   0xE0010000
+#define PBM_8250_BAUD   19200
+#define PBM_8250_IRQ    HAL_INTERRUPT_UART1
+
 #endif /* _SYSTEM_DEF_H_ */