summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-05-19 20:25:13 -0700
committerKeith Packard <keithp@keithp.com>2013-05-19 20:39:19 -0700
commitb9bb088a36fd351809f4c378356327ffa663c974 (patch)
tree1b7897ab1650cde3b195406a3d9bbed91986dec0
parent397109139fb9ff27ec7cfb0cafa65d1dbea053bd (diff)
altos/lpc: Allow for alternate SPI SCLK0 pin usage
SPI SCLK0 can appear on three different pins; let the application configure which one it wants. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/easymini-v0.1/ao_pins.h1
-rw-r--r--src/lpc/ao_spi_lpc.c16
-rw-r--r--src/lpc/lpc.h4
3 files changed, 18 insertions, 3 deletions
diff --git a/src/easymini-v0.1/ao_pins.h b/src/easymini-v0.1/ao_pins.h
index 5bcd4673..2307d7d2 100644
--- a/src/easymini-v0.1/ao_pins.h
+++ b/src/easymini-v0.1/ao_pins.h
@@ -53,6 +53,7 @@
/* SPI */
#define HAS_SPI_0 1
+#define SPI_SCK0_P0_6 1
#define HAS_SPI_1 1
#define SPI_SCK1_P1_15 1
#define SPI_MISO1_P0_22 1
diff --git a/src/lpc/ao_spi_lpc.c b/src/lpc/ao_spi_lpc.c
index 7c830053..12d44872 100644
--- a/src/lpc/ao_spi_lpc.c
+++ b/src/lpc/ao_spi_lpc.c
@@ -125,7 +125,21 @@ ao_spi_init(void)
{
#if HAS_SPI_0
/* Configure pins */
- lpc_ioconf.pio0_6 = ao_lpc_alternate(LPC_IOCONF_FUNC_SCK0);
+#if SPI_SCK0_P0_6
+ lpc_ioconf.pio0_6 = ao_lpc_alternate(LPC_IOCONF_FUNC_PIO0_6_SCK0);
+#define HAS_SCK0
+#endif
+#if SPI_SCK0_P0_10
+ lpc_ioconf.pio0_10 = ao_lpc_alternate(LPC_IOCONF_FUNC_PIO0_10_SCK0);
+#define HAS_SCK0
+#endif
+#if SPI_SCK0_P1_29
+ lpc_ioconf.pio1_29 = ao_lpc_alternate(LPC_IOCONF_FUNC_PIO1_29_SCK0);
+#define HAS_SCK0
+#endif
+#ifndef HAS_SCK0
+#error "No pin specified for SCK0"
+#endif
lpc_ioconf.pio0_8 = ao_lpc_alternate(LPC_IOCONF_FUNC_MISO0);
lpc_ioconf.pio0_9 = ao_lpc_alternate(LPC_IOCONF_FUNC_MOSI0);
diff --git a/src/lpc/lpc.h b/src/lpc/lpc.h
index 1b48fcc9..49034c1c 100644
--- a/src/lpc/lpc.h
+++ b/src/lpc/lpc.h
@@ -131,7 +131,7 @@ extern struct lpc_ioconf lpc_ioconf;
/* PIO0_6 */
#define LPC_IOCONF_FUNC_PIO0_6 0
#define LPC_IOCONF_FUNC_USB_CONNECT 1
-#define LPC_IOCONF_FUNC_SCK0 2
+#define LPC_IOCONF_FUNC_PIO0_6_SCK0 2
/* PIO0_7 */
#define LPC_IOCONF_FUNC_PIO0_7 0
@@ -150,7 +150,7 @@ extern struct lpc_ioconf lpc_ioconf;
/* PIO0_10 */
#define LPC_IOCONF_FUNC_SWCLK 0
#define LPC_IOCONF_FUNC_PIO0_10 1
-#define LPC_IOCONF_FUNC_SCK0 2
+#define LPC_IOCONF_FUNC_PIO0_10_SCK0 2
#define LPC_IOCONF_FUNC_CT16B0_MAT2 3
/* PIO0_11 */