summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoeycastillo <joeycastillo@utexas.edu>2023-02-01 16:07:59 -0600
committerjoeycastillo <joeycastillo@utexas.edu>2023-02-01 16:07:59 -0600
commit646643da159639ee2127aa87740a2865842fd09c (patch)
tree079c914b3c1c666d51b7d752b73fa7a15807b933
parentce3a14762878062d0ff1b240cbac33bc1bcca78d (diff)
downloadSensor-Watch-646643da159639ee2127aa87740a2865842fd09c.tar.gz
Sensor-Watch-646643da159639ee2127aa87740a2865842fd09c.tar.bz2
Sensor-Watch-646643da159639ee2127aa87740a2865842fd09c.zip
first crack at sensor watch pro board definition
-rw-r--r--boards/OSO-SWAT-C1-00/pins.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/boards/OSO-SWAT-C1-00/pins.h b/boards/OSO-SWAT-C1-00/pins.h
new file mode 100644
index 00000000..23c76dc3
--- /dev/null
+++ b/boards/OSO-SWAT-C1-00/pins.h
@@ -0,0 +1,118 @@
+#ifndef PINS_H_INCLUDED
+#define PINS_H_INCLUDED
+
+// Detects if we are on USB power.
+#define VBUS_DET GPIO(GPIO_PORTB, 5)
+
+// Buttons
+#define BTN_ALARM GPIO(GPIO_PORTA, 2)
+#define WATCH_BTN_ALARM_EIC_CHANNEL 2
+#define BTN_LIGHT GPIO(GPIO_PORTA, 30)
+#define WATCH_BTN_LIGHT_EIC_CHANNEL 10
+#define BTN_MODE GPIO(GPIO_PORTA, 31)
+#define WATCH_BTN_MODE_EIC_CHANNEL 11
+
+// Buzzer
+#define BUZZER GPIO(GPIO_PORTA, 27)
+#define WATCH_BUZZER_TCC_PINMUX PINMUX_PA27F_TCC0_WO5
+#define WATCH_BUZZER_TCC_CHANNEL 1
+
+// LEDs
+#define WATCH_INVERT_LED_POLARITY
+
+#define RED GPIO(GPIO_PORTA, 12)
+#define WATCH_RED_TCC_CHANNEL 2
+#define WATCH_RED_TCC_PINMUX PINMUX_PA12F_TCC0_WO6
+
+#define BLUE GPIO(GPIO_PORTA, 13)
+#define WATCH_BLUE_TCC_CHANNEL 3
+#define WATCH_BLUE_TCC_PINMUX PINMUX_PA13F_TCC0_WO7
+
+#define GREEN GPIO(GPIO_PORTA, 22)
+#define WATCH_GREEN_TCC_CHANNEL 0
+#define WATCH_GREEN_TCC_PINMUX PINMUX_PA22F_TCC0_WO4
+
+// Segment LCD
+#define SLCD0 GPIO(GPIO_PORTB, 6)
+#define SLCD1 GPIO(GPIO_PORTB, 7)
+#define SLCD2 GPIO(GPIO_PORTB, 8)
+#define SLCD3 GPIO(GPIO_PORTB, 9)
+#define SLCD4 GPIO(GPIO_PORTA, 5)
+#define SLCD5 GPIO(GPIO_PORTA, 6)
+#define SLCD6 GPIO(GPIO_PORTA, 7)
+#define SLCD7 GPIO(GPIO_PORTA, 8)
+#define SLCD8 GPIO(GPIO_PORTA, 9)
+#define SLCD9 GPIO(GPIO_PORTA, 10)
+#define SLCD10 GPIO(GPIO_PORTA, 11)
+#define SLCD11 GPIO(GPIO_PORTB, 11)
+#define SLCD12 GPIO(GPIO_PORTB, 12)
+#define SLCD13 GPIO(GPIO_PORTB, 13)
+#define SLCD14 GPIO(GPIO_PORTB, 14)
+#define SLCD15 GPIO(GPIO_PORTB, 15)
+#define SLCD16 GPIO(GPIO_PORTA, 14)
+#define SLCD17 GPIO(GPIO_PORTA, 15)
+#define SLCD18 GPIO(GPIO_PORTA, 16)
+#define SLCD19 GPIO(GPIO_PORTA, 17)
+#define SLCD20 GPIO(GPIO_PORTA, 18)
+#define SLCD21 GPIO(GPIO_PORTA, 19)
+#define SLCD22 GPIO(GPIO_PORTB, 16)
+#define SLCD23 GPIO(GPIO_PORTB, 17)
+#define SLCD24 GPIO(GPIO_PORTA, 20)
+#define SLCD25 GPIO(GPIO_PORTA, 21)
+#define SLCD26 GPIO(GPIO_PORTA, 23)
+// This board uses a slightly different pin mapping from the standard watch, and it's not enough to
+// just declare the pins. We also have to set the LCD Pin Enable register with the SLCD pins we're
+// using. These numbers are not port/pin numbers, but the "SLCD/LP[x]" numbers in the pinmux table.
+// If not defined in pins.h, the LCD driver will fall back to the pin mapping in hpl_slcd_config.h.
+// LPENL is for pins SLCD/LP[0..31].
+#define CONF_SLCD_LPENL (\
+ (uint32_t)1 << 0 | \
+ (uint32_t)1 << 1 | \
+ (uint32_t)1 << 2 | \
+ (uint32_t)1 << 3 | \
+ (uint32_t)1 << 5 | \
+ (uint32_t)1 << 6 | \
+ (uint32_t)1 << 7 | \
+ (uint32_t)1 << 11 | \
+ (uint32_t)1 << 12 | \
+ (uint32_t)1 << 13 | \
+ (uint32_t)1 << 14 | \
+ (uint32_t)1 << 21 | \
+ (uint32_t)1 << 22 | \
+ (uint32_t)1 << 23 | \
+ (uint32_t)1 << 24 | \
+ (uint32_t)1 << 25 | \
+ (uint32_t)1 << 30 | \
+ (uint32_t)1 << 31 | 0)
+// LPENH is for pins SLCD/LP[32..51], where bit 0 represents pin 32.
+#define CONF_SLCD_LPENH (\
+ (uint32_t)1 << (32 - 32) | \
+ (uint32_t)1 << (33 - 32) | \
+ (uint32_t)1 << (34 - 32) | \
+ (uint32_t)1 << (35 - 32) | \
+ (uint32_t)1 << (42 - 32) | \
+ (uint32_t)1 << (43 - 32) | \
+ (uint32_t)1 << (48 - 32) | \
+ (uint32_t)1 << (49 - 32) | \
+ (uint32_t)1 << (51 - 32) | 0)
+
+
+// 9-pin connector
+#define A0 GPIO(GPIO_PORTB, 4)
+#define WATCH_A0_EIC_CHANNEL 4
+#define A1 GPIO(GPIO_PORTB, 1)
+#define WATCH_A1_EIC_CHANNEL 1
+#define A2 GPIO(GPIO_PORTB, 2)
+#define WATCH_A2_EIC_CHANNEL 2
+#define A3 GPIO(GPIO_PORTB, 3)
+#define WATCH_A3_EIC_CHANNEL 3
+#define A4 GPIO(GPIO_PORTB, 0)
+#define WATCH_A4_EIC_CHANNEL 0
+#define SDA GPIO(GPIO_PORTB, 30)
+#define SCL GPIO(GPIO_PORTB, 31)
+
+// aliases for as A3/A4; these were mentioned as D0/D1 in early documentation.
+#define D0 GPIO(GPIO_PORTB, 3)
+#define D1 GPIO(GPIO_PORTB, 0)
+
+#endif // PINS_H_INCLUDED