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.
Dependents: Seeed_Barometer_Sensor_Example
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) {
