]> rtime.felk.cvut.cz Git - sysless.git/blobdiff - board/arm/lpc17xx-common/defines/system_def-lmc1.h
It is 12 years after C99 standardization - switch to stdint.h and its types.
[sysless.git] / board / arm / lpc17xx-common / defines / system_def-lmc1.h
index ccc51baa1e8a8eef6bee3ab75af5afcfa1a7bd34..0dbee3091fb3cf833f61636e738ed7c611cde573 100644 (file)
 #ifndef _SYSTEM_DEF_H_
 #define _SYSTEM_DEF_H_
 
-#include <types.h>
+#include <stdint.h>
 #include <system_stub.h>
 #include <LPC17xx.h>
 #include <bspbase.h>
+#include <hal_gpio_def.h>
+
+#ifndef MACH_LPC17XX
+#define MACH_LPC17XX
+#endif
 
 #ifndef NULL
 #define        NULL    0
 #define CLKSRCSEL_Val         0x00000001        /* XTAL */
 
 #define PLL0_SETUP            1
-#define PLL0CFG_Val           0x0000000B        /* 324403200Hz - must be in the range 275HMz-550MHz */
+#define PLL0CFG_Val           0x0000000B        /* 288000000Hz - must be in the range 275HMz-550MHz */
 
 #define PLL1_SETUP            0
 #define PLL1CFG_Val           0x00000023
 
-#define CCLKCFG_Val           0x00000003        /* pplclk/(CCLKCFG_Val+1)=81100800Hz */
-#define USBCLKCFG_Val         0x00000000
+#define CCLKCFG_Val           0x00000003        /* ppl0clk/(CCLKCFG_Val+1)=72000000Hz */
+#define USBCLKCFG_Val         0x00000005       /* divide ppl0clk by 6 to 48MHz */
 
 //#define PCLKSEL0_Val          0x00000000        /* all peripherial sysclk/4 */
 //#define PCLKSEL1_Val          0x00000000
 #define CAN2_RX_BIT         BIT(4)      // CAN2 RX
 #define CAN2_TX_BIT         BIT(5)      // CAN2 TX
 #define LED2_BIT            BIT(6)      // active low/SSEL1
+#define LED2_PIN            PORT_PIN(0,6,PORT_CONF_GPIO_OUT_LO)
+#define SSP1_CS0_BIT        BIT(6)      // active low/ LMC_GRAD CS
+#define SSP1_CS0_PIN        PORT_PIN(0,6,PORT_CONF_GPIO_OUT_HI)
 #define SCK1_BIT            BIT(7)      // clock SSP1 to gradient valves
+#define SCK1_PIN            PORT_PIN(0,7,PORT_CONF_FNC_2|PORT_CONF_OUT_LO_NORM)
 #define MISO1_BIT           BIT(8)      // master input
+#define MISO1_PIN           PORT_PIN(0,8,PORT_CONF_FNC_2|PORT_CONF_IN_PU)
 #define MOSI1_BIT           BIT(9)      // master output
+#define MOSI1_PIN           PORT_PIN(0,9,PORT_CONF_FNC_2|PORT_CONF_OUT_LO_NORM)
 #define P0_10_UNUSED_BIT    BIT(10)     // P0.10 unused (SDA2/TXD2)
 #define P0_11_UNUSED_BIT    BIT(11)     // P0.11 unused (SCL2/RXD2)
 #define SCK0_BIT            BIT(15)     // clock SSP0 to display panel
+#define SCK0_PIN            PORT_PIN(0,15,PORT_CONF_FNC_2|PORT_CONF_OUT_LO_NORM)
 #define SSEL0_BIT           BIT(16)     // slave select SSP0
+#define SSP0_CS0_BIT        BIT(16)     // slave select SSP0 / display chip select
+#define SSP0_CS0_PIN        PORT_PIN(0,16,PORT_CONF_GPIO_OUT_HI)
 #define MISO0_BIT           BIT(17)     // master input SSP0
+#define MISO0_PIN           PORT_PIN(0,17,PORT_CONF_FNC_2|PORT_CONF_IN_PU)
 #define MOSI0_BIT           BIT(18)     // master output SSP0
+#define MOSI0_PIN           PORT_PIN(0,18,PORT_CONF_FNC_2|PORT_CONF_OUT_LO_NORM)
 #define SDA1_BIT            BIT(19)     // I2C data - memory/connector
 #define SCL1_BIT            BIT(20)     // I2C clock
-#define SSP0_CS0_BIT        BIT(21)     // chip select SSP0 for display
-#define SSP0_CS1_BIT        BIT(22)     // chip select SSP0/ A/D for display
+#define SSP0_CS1_BIT        BIT(21)     // chip select 1 SSP0/ A/D for display
+#define SSP0_CS1_PIN        PORT_PIN(0,21,PORT_CONF_GPIO_OUT_HI)
+#define SSP0_CS2_BIT        BIT(22)     // chip select 2 SSP0 for keyboard and LED
+#define SSP0_CS2_PIN        PORT_PIN(0,22,PORT_CONF_GPIO_OUT_HI)
 #define ADC0_BIT            BIT(23)     // ADC motor current
+#define ADC0_PIN            PORT_PIN(0,23,PORT_CONF_FNC_1|PORT_CONF_DIR_IN)
 #define ADC1_BIT            BIT(24)     // ADC motor current
+#define ADC1_PIN            PORT_PIN(0,24,PORT_CONF_FNC_1|PORT_CONF_DIR_IN)
 #define ADC2_BIT            BIT(25)     // ADC motor current
+#define ADC2_PIN            PORT_PIN(0,25,PORT_CONF_FNC_1|PORT_CONF_DIR_IN)
 #define ADC3_BIT            BIT(26)     // ADC motor current
+#define ADC3_PIN            PORT_PIN(0,26,PORT_CONF_FNC_1|PORT_CONF_DIR_IN)
 #define P0_27_UNUSED_BIT    BIT(27)     // P0.27 unused
 #define P0_28_UNUSED_BIT    BIT(28)     // P0.28 unused
 #define USBDPLUS_BIT        BIT(29)     // P0.29 USBD+
 #define P1_14_UNUSED_BIT    BIT(14)     // P1.14 unused - low output
 #define P1_15_UNUSED_BIT    BIT(15)     // P1.15 unused - low output
 #define PWM1_BIT            BIT(18)     // motor pwm 0 / ADC0
+#define PWM1_PIN            PORT_PIN(1,18,PORT_CONF_FNC_2|PORT_CONF_OUT_LO_NORM)
 #define BLDC_HAL_A_BIT      BIT(19)     // motor HAL input A
+#define BLDC_HAL_A_PIN      PORT_PIN(1,19,PORT_CONF_GPIO_IN_PU)
 #define IRC_A_BIT           BIT(20)     // motor IRC channel A (MCI0)
 #define IRC_M_BIT           BIT(21)     // motor IRC channel mark (GPIO)
+#define IRC_M_PIN           PORT_PIN(1,21,PORT_CONF_FNC_1|PORT_CONF_IN_PU)
 #define BLDC_HAL_B_BIT      BIT(22)     // motor HAL input B
+#define BLDC_HAL_B_PIN      PORT_PIN(1,22,PORT_CONF_GPIO_IN_PU)
 #define IRC_B_BIT           BIT(23)     // motor IRC channel B (MCI1)
 #define IRC_I_BIT           BIT(24)     // motor IRC index (MCI2)
 #define BLDC_HAL_C_BIT      BIT(25)     // motor HAL input C
+#define BLDC_HAL_C_PIN      PORT_PIN(1,25,PORT_CONF_GPIO_IN_PU)
 #define PWM1_EN_BIT         BIT(26)     // motor pwm 0 enable
+#define PWM1_EN_PIN         PORT_PIN(1,26,PORT_CONF_GPIO_OUT_LO)
 #define PWM2_EN_BIT         BIT(27)     // motor pwm 1 enable
+#define PWM2_EN_PIN         PORT_PIN(1,27,PORT_CONF_GPIO_OUT_LO)
 #define PWM4_EN_BIT         BIT(28)     // motor pwm 2 enable
+#define PWM4_EN_PIN         PORT_PIN(1,28,PORT_CONF_GPIO_OUT_LO)
 #define PWM6_EN_BIT         BIT(29)     // motor pwm 3 enable
+#define PWM6_EN_PIN         PORT_PIN(1,29,PORT_CONF_GPIO_OUT_LO)
 #define ADC4_BIT            BIT(30)     // ADC4 tensometer
+#define ADC4_PIN            PORT_PIN(1,30,PORT_CONF_FNC_3|PORT_CONF_DIR_IN)
 #define ADC5_BIT            BIT(31)     // ADC5 external input
+#define ADC5_PIN            PORT_PIN(1,31,PORT_CONF_FNC_3|PORT_CONF_DIR_IN)
 
 // Port Bit Definitions & Macros:    Description - initial conditions
 #define TXD1_BIT            BIT(0)      // P2.0 TXD
 #define RXD1_BIT            BIT(1)      // P2.1 RXD
 #define CTS1_BIT            BIT(2)     // P2.2 CTS connected to RXD1
 #define PWM4_BIT            BIT(3)      // P2.3 motor pwm 2 / ADC2
+#define PWM4_PIN            PORT_PIN(2,3,PORT_CONF_FNC_1|PORT_CONF_OUT_LO_NORM)
 #define DSR1_BIT            BIT(4)     // P2.4 DSR connected to TXD1
 #define PWM6_BIT            BIT(5)     // P2.5 motor pwm 3 / ADC3
+#define PWM6_PIN            PORT_PIN(2,5,PORT_CONF_FNC_1|PORT_CONF_OUT_LO_NORM)
 #define LED1_BIT            BIT(6)     // P2.6 LED1 - error
+#define LED1_PIN            PORT_PIN(2,6,PORT_CONF_GPIO_OUT_LO)
 #define RTS1_BIT            BIT(7)     // P2.7 RTS1 used as DIR1
 #define AUX_OUT2_BIT        BIT(8)     // P2.8 auxual TLL port
+#define AUX_OUT2_PIN        PORT_PIN(2,8,PORT_CONF_GPIO_OUT_HI)
 #define USB_CONNECT_BIT     BIT(9)      // P2.9 USB output for soft connect
 #define BOOT_BIT            BIT(10)     // P2.10 Boot input
 #define AUX_IN2_BIT         BIT(11)    // P2.11 auxual TLL port
+#define AUX_IN2_PIN         PORT_PIN(2,11,PORT_CONF_GPIO_IN_PU)
 #define AUX_OUT4_BIT        BIT(12)    // P2.12 auxual TLL port
+#define AUX_OUT4_PIN        PORT_PIN(2,12,PORT_CONF_GPIO_OUT_HI)
 #define ETH_PD_IRQ_BIT      BIT(13)    // P2.13 power down/int
 
 // Port Bit Definitions & Macros:    Description - initial conditions
 #define PWM2_BIT            BIT(25)     // P3.25 motor pwm 1 / ADC1
+#define PWM2_PIN            PORT_PIN(3,25,PORT_CONF_FNC_3|PORT_CONF_OUT_LO_NORM)
 #define AUX_OUT1_BIT        BIT(26)     // P3.26 auxual TLL port
+#define AUX_OUT1_PIN        PORT_PIN(3,26,PORT_CONF_GPIO_OUT_HI)
 
 // Port Bit Definitions & Macros:    Description - initial conditions
 #define AUX_OUT3_BIT        BIT(28)     // P4.28 auxual TLL port / TXD3
+#define AUX_OUT3_PIN        PORT_PIN(4,28,PORT_CONF_GPIO_OUT_HI)
 #define AUX_IN1_BIT         BIT(29)     // P4.29 auxual TLL port / RXD3
+#define AUX_IN1_PIN         PORT_PIN(4,29,PORT_CONF_GPIO_IN_PU)
 
 #define P0IO_INPUT_BITS      (uint32_t) ( \
                                          CAN1_RX_BIT | \
 #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
+
+#define USB_VBUS_PIN_USED   0
+
 /***************************************************************************/
 /* I2C1 configuration */
 #define I2C_DRV_SYSLESS_IRQ I2C1_IRQn