#ifndef _SYSTEM_DEF_H_
#define _SYSTEM_DEF_H_
-#include <types.h>
+#include <stdint.h>
#include <system_stub.h>
#include <LPC17xx.h>
#include <bspbase.h>
#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 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 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 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 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 | \