From 50d8d32b661995ff336c79ea7cda49b232cd8fb0 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 9 May 2019 09:54:48 +0200 Subject: bsp/lpc24xx: Use fast slew rate for EMC pins --- bsps/arm/lpc24xx/include/bsp/io.h | 147 ++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 84 deletions(-) (limited to 'bsps/arm/lpc24xx') diff --git a/bsps/arm/lpc24xx/include/bsp/io.h b/bsps/arm/lpc24xx/include/bsp/io.h index dd76368fab..07c5d51afd 100644 --- a/bsps/arm/lpc24xx/include/bsp/io.h +++ b/bsps/arm/lpc24xx/include/bsp/io.h @@ -250,11 +250,15 @@ typedef enum { #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f0, t, 0 } } #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \ { { p, i, f0, 0, 0 } }, { { p, j, f0, 0, 1 } } + #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \ + { { p, i, f0, t, 0 } }, { { p, j, f0, t, 1 } } #else #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f1, 0, 0 } } #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f1, t, 0 } } #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \ { { p, i, f1, 0, 0 } }, { { p, j, f1, 0, 1 } } + #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \ + { { p, i, f1, t, 0 } }, { { p, j, f1, t, 1 } } #endif #define LPC24XX_PIN_TERMINAL { { 0x7, 0x1f, 0x7, 0xf, 0x1 } } @@ -424,110 +428,85 @@ static inline unsigned lpc24xx_pin_get_first_index( * @{ */ -#define LPC24XX_PIN_EMC_CS_0 \ - LPC24XX_PIN(4, 30, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CS_1 \ - LPC24XX_PIN(4, 31, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CS_2 \ - LPC24XX_PIN(2, 14, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CS_3 \ - LPC24XX_PIN(2, 15, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_DYCS_0 \ - LPC24XX_PIN(2, 20, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DYCS_1 \ - LPC24XX_PIN(2, 21, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DYCS_2 \ - LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DYCS_3 \ - LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_OE \ - LPC24XX_PIN(4, 24, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_WE \ - LPC24XX_PIN(4, 25, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CAS \ - LPC24XX_PIN(2, 16, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_RAS \ - LPC24XX_PIN(2, 17, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_CLK_0 \ - LPC24XX_PIN(2, 18, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CLK_1 \ - LPC24XX_PIN(2, 19, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_CKE_0 \ - LPC24XX_PIN(2, 24, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CKE_1 \ - LPC24XX_PIN(2, 25, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CKE_2 \ - LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_CKE_3 \ - LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_DQM_0 \ - LPC24XX_PIN(2, 28, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DQM_1 \ - LPC24XX_PIN(2, 29, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DQM_2 \ - LPC24XX_PIN(2, 30, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_DQM_3 \ - LPC24XX_PIN(2, 31, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_BLS0 \ - LPC24XX_PIN(4, 26, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_BLS1 \ - LPC24XX_PIN(4, 27, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_BLS2 \ - LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_BLS3 \ - LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_D_0_15 \ - LPC24XX_PIN_RANGE(3, 0, 15, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_D_15_31 \ - LPC24XX_PIN_RANGE(3, 15, 31, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_D_0_31 \ - LPC24XX_PIN_RANGE(3, 0, 31, LPC24XX_PIN_FUNCTION_01, 1) - -#define LPC24XX_PIN_EMC_A_0_12 \ - LPC24XX_PIN_RANGE(4, 0, 12, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_A_0_13 \ - LPC24XX_PIN_RANGE(4, 0, 13, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_A_0_14 \ - LPC24XX_PIN_RANGE(4, 0, 14, LPC24XX_PIN_FUNCTION_01, 1) -#define LPC24XX_PIN_EMC_A_0_15 \ - LPC24XX_PIN_RANGE(4, 0, 15, LPC24XX_PIN_FUNCTION_01, 1) +#define LPC24XX_PIN_EMC(p, i) \ + LPC24XX_PIN_WITH_TYPE(p, i, LPC24XX_PIN_FUNCTION_01, 1, \ + LPC17XX_PIN_TYPE_FAST_SLEW_RATE) + +#define LPC24XX_PIN_EMC_RANGE(p, i, j) \ + LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, LPC24XX_PIN_FUNCTION_01, 1, \ + LPC17XX_PIN_TYPE_FAST_SLEW_RATE) + +#define LPC24XX_PIN_EMC_CS_0 LPC24XX_PIN_EMC(4, 30) +#define LPC24XX_PIN_EMC_CS_1 LPC24XX_PIN_EMC(4, 31) +#define LPC24XX_PIN_EMC_CS_2 LPC24XX_PIN_EMC(2, 14) +#define LPC24XX_PIN_EMC_CS_3 LPC24XX_PIN_EMC(2, 15) + +#define LPC24XX_PIN_EMC_DYCS_0 LPC24XX_PIN_EMC(2, 20) +#define LPC24XX_PIN_EMC_DYCS_1 LPC24XX_PIN_EMC(2, 21) +#define LPC24XX_PIN_EMC_DYCS_2 LPC24XX_PIN_EMC(2, 22) +#define LPC24XX_PIN_EMC_DYCS_3 LPC24XX_PIN_EMC(2, 23) + +#define LPC24XX_PIN_EMC_OE LPC24XX_PIN_EMC(4, 24) +#define LPC24XX_PIN_EMC_WE LPC24XX_PIN_EMC(4, 25) +#define LPC24XX_PIN_EMC_CAS LPC24XX_PIN_EMC(2, 16) +#define LPC24XX_PIN_EMC_RAS LPC24XX_PIN_EMC(2, 17) + +#define LPC24XX_PIN_EMC_CLK_0 LPC24XX_PIN_EMC(2, 18) +#define LPC24XX_PIN_EMC_CLK_1 LPC24XX_PIN_EMC(2, 19) + +#define LPC24XX_PIN_EMC_CKE_0 LPC24XX_PIN_EMC(2, 24) +#define LPC24XX_PIN_EMC_CKE_1 LPC24XX_PIN_EMC(2, 25) +#define LPC24XX_PIN_EMC_CKE_2 LPC24XX_PIN_EMC(2, 26) +#define LPC24XX_PIN_EMC_CKE_3 LPC24XX_PIN_EMC(2, 27) + +#define LPC24XX_PIN_EMC_DQM_0 LPC24XX_PIN_EMC(2, 28) +#define LPC24XX_PIN_EMC_DQM_1 LPC24XX_PIN_EMC(2, 29) +#define LPC24XX_PIN_EMC_DQM_2 LPC24XX_PIN_EMC(2, 30) +#define LPC24XX_PIN_EMC_DQM_3 LPC24XX_PIN_EMC(2, 31) + +#define LPC24XX_PIN_EMC_BLS0 LPC24XX_PIN_EMC(4, 26) +#define LPC24XX_PIN_EMC_BLS1 LPC24XX_PIN_EMC(4, 27) +#define LPC24XX_PIN_EMC_BLS2 LPC24XX_PIN_EMC(4, 28) +#define LPC24XX_PIN_EMC_BLS3 LPC24XX_PIN_EMC(4, 29) + +#define LPC24XX_PIN_EMC_D_0_15 LPC24XX_PIN_EMC_RANGE(3, 0, 15) +#define LPC24XX_PIN_EMC_D_15_31 LPC24XX_PIN_EMC_RANGE(3, 15, 31) +#define LPC24XX_PIN_EMC_D_0_31 LPC24XX_PIN_EMC_RANGE(3, 0, 31) + +#define LPC24XX_PIN_EMC_A_0_12 LPC24XX_PIN_EMC_RANGE(4, 0, 12) +#define LPC24XX_PIN_EMC_A_0_13 LPC24XX_PIN_EMC_RANGE(4, 0, 13) +#define LPC24XX_PIN_EMC_A_0_14 LPC24XX_PIN_EMC_RANGE(4, 0, 14) +#define LPC24XX_PIN_EMC_A_0_15 LPC24XX_PIN_EMC_RANGE(4, 0, 15) #define LPC24XX_PIN_EMC_A_0_16 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN(4, 16, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC(4, 16) #define LPC24XX_PIN_EMC_A_0_17 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 17, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 17) #define LPC24XX_PIN_EMC_A_0_18 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 18, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 18) #define LPC24XX_PIN_EMC_A_0_19 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 19, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 19) #define LPC24XX_PIN_EMC_A_0_20 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 20, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 20) #define LPC24XX_PIN_EMC_A_0_21 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 21, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 21) #define LPC24XX_PIN_EMC_A_0_22 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 22, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 22) #define LPC24XX_PIN_EMC_A_0_23 \ LPC24XX_PIN_EMC_A_0_15, \ - LPC24XX_PIN_RANGE(4, 16, 23, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(4, 16, 23) #define LPC24XX_PIN_EMC_A_0_24 \ LPC24XX_PIN_EMC_A_0_23, \ - LPC24XX_PIN(5, 24, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC(5, 24) #define LPC24XX_PIN_EMC_A_0_25 \ LPC24XX_PIN_EMC_A_0_23, \ - LPC24XX_PIN_RANGE(5, 24, 25, LPC24XX_PIN_FUNCTION_01, 1) + LPC24XX_PIN_EMC_RANGE(5, 24, 25) /** @} */ -- cgit v1.2.3