Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
Diff: targets/hal/TARGET_NXP/TARGET_LPC43XX/spi_api.c
- Revision:
- 283:bf0f62a62bf4
- Parent:
- 256:76fd9a263045
- Child:
- 285:31249416b6f9
--- a/targets/hal/TARGET_NXP/TARGET_LPC43XX/spi_api.c Tue Aug 12 10:30:08 2014 +0100
+++ b/targets/hal/TARGET_NXP/TARGET_LPC43XX/spi_api.c Wed Aug 13 09:00:06 2014 +0100
@@ -23,48 +23,51 @@
#include "pinmap.h"
#include "error.h"
+// SCU mode for SPI pins
+#define SCU_PINIO_SPI SCU_PINIO_FAST
+
static const PinMap PinMap_SPI_SCLK[] = {
- {P1_19, SPI_1, (SCU_PINIO_FAST | 1)},
- {P3_0, SPI_0, (SCU_PINIO_FAST | 4)},
- {P3_3, SPI_0, (SCU_PINIO_FAST | 2)},
- {PF_0, SPI_0, (SCU_PINIO_FAST | 0)},
- {PF_4, SPI_1, (SCU_PINIO_FAST | 0)},
+ {P1_19, SPI_1, (SCU_PINIO_SPI | 1)},
+ {P3_0, SPI_0, (SCU_PINIO_SPI | 4)},
+ {P3_3, SPI_0, (SCU_PINIO_SPI | 2)},
+ {PF_0, SPI_0, (SCU_PINIO_SPI | 0)},
+ {PF_4, SPI_1, (SCU_PINIO_SPI | 0)},
{NC, NC, 0}
};
static const PinMap PinMap_SPI_MOSI[] = {
- {P0_1, SPI_1, (SCU_PINIO_FAST | 1)},
- {P1_2, SPI_0, (SCU_PINIO_FAST | 5)},
- {P1_4, SPI_1, (SCU_PINIO_FAST | 5)},
- {P3_7, SPI_0, (SCU_PINIO_FAST | 5)},
- {P3_8, SPI_0, (SCU_PINIO_FAST | 2)},
- {P9_2, SPI_0, (SCU_PINIO_FAST | 7)},
- {PF_3, SPI_0, (SCU_PINIO_FAST | 2)},
- {PF_7, SPI_1, (SCU_PINIO_FAST | 2)},
+ {P0_1, SPI_1, (SCU_PINIO_SPI | 1)},
+ {P1_2, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P1_4, SPI_1, (SCU_PINIO_SPI | 5)},
+ {P3_7, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P3_8, SPI_0, (SCU_PINIO_SPI | 2)},
+ {P9_2, SPI_0, (SCU_PINIO_SPI | 7)},
+ {PF_3, SPI_0, (SCU_PINIO_SPI | 2)},
+ {PF_7, SPI_1, (SCU_PINIO_SPI | 2)},
{NC, NC, 0}
};
static const PinMap PinMap_SPI_MISO[] = {
- {P0_0, SPI_1, (SCU_PINIO_FAST | 1)},
- {P1_1, SPI_0, (SCU_PINIO_FAST | 5)},
- {P1_3, SPI_1, (SCU_PINIO_FAST | 5)},
- {P3_6, SPI_0, (SCU_PINIO_FAST | 5)},
- {P3_7, SPI_0, (SCU_PINIO_FAST | 2)},
- {P9_1, SPI_0, (SCU_PINIO_FAST | 7)},
- {PF_2, SPI_0, (SCU_PINIO_FAST | 2)},
- {PF_6, SPI_1, (SCU_PINIO_FAST | 2)},
+ {P0_0, SPI_1, (SCU_PINIO_SPI | 1)},
+ {P1_1, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P1_3, SPI_1, (SCU_PINIO_SPI | 5)},
+ {P3_6, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P3_7, SPI_0, (SCU_PINIO_SPI | 2)},
+ {P9_1, SPI_0, (SCU_PINIO_SPI | 7)},
+ {PF_2, SPI_0, (SCU_PINIO_SPI | 2)},
+ {PF_6, SPI_1, (SCU_PINIO_SPI | 2)},
{NC, NC, 0}
};
static const PinMap PinMap_SPI_SSEL[] = {
- {P1_0, SPI_0, (SCU_PINIO_FAST | 5)},
- {P1_5, SPI_1, (SCU_PINIO_FAST | 5)},
- {P1_20, SPI_1, (SCU_PINIO_FAST | 2)},
- {P3_6, SPI_0, (SCU_PINIO_FAST | 2)},
- {P3_8, SPI_0, (SCU_PINIO_FAST | 5)},
- {P9_0, SPI_0, (SCU_PINIO_FAST | 7)},
- {PF_1, SPI_0, (SCU_PINIO_FAST | 2)},
- {PF_5, SPI_1, (SCU_PINIO_FAST | 2)},
+ {P1_0, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P1_5, SPI_1, (SCU_PINIO_SPI | 5)},
+ {P1_20, SPI_1, (SCU_PINIO_SPI | 2)},
+ {P3_6, SPI_0, (SCU_PINIO_SPI | 2)},
+ {P3_8, SPI_0, (SCU_PINIO_SPI | 5)},
+ {P9_0, SPI_0, (SCU_PINIO_SPI | 7)},
+ {PF_1, SPI_0, (SCU_PINIO_SPI | 2)},
+ {PF_5, SPI_1, (SCU_PINIO_SPI | 2)},
{NC, NC, 0}
};
@@ -82,6 +85,12 @@
obj->spi = (LPC_SSP_T*)pinmap_merge(spi_data, spi_cntl);
MBED_ASSERT((int)obj->spi != NC);
+
+ // enable clocking
+ switch ((int)obj->spi) {
+ case SPI_0: LPC_CGU->BASE_CLK[CLK_BASE_SSP0] = (1 << 11) | (CLKIN_MAINPLL << 24); break;
+ case SPI_1: LPC_CGU->BASE_CLK[CLK_BASE_SSP1] = (1 << 11) | (CLKIN_MAINPLL << 24); break;
+ }
// set default format and frequency
if (ssel == NC) {
