mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-23 03:30:30 +08:00
d98d14d236
* Sensor Watch Pro board definition * Disable hot-plugging on SWCLK * Add rainbow test * Move interrupt mapping to board config * New color definition for Pro boards in makefile
128 lines
4.1 KiB
C
128 lines
4.1 KiB
C
#ifndef PINS_H_INCLUDED
|
|
#define PINS_H_INCLUDED
|
|
|
|
// Detects if we are on USB power.
|
|
#define VBUS_DET GPIO(GPIO_PORTA, 3)
|
|
|
|
// Buttons
|
|
#define BTN_ALARM GPIO(GPIO_PORTA, 2)
|
|
#define WATCH_BTN_ALARM_EIC_CHANNEL 2
|
|
#define BTN_LIGHT GPIO(GPIO_PORTB, 5)
|
|
#define WATCH_BTN_LIGHT_EIC_CHANNEL 5
|
|
#define BTN_MODE GPIO(GPIO_PORTA, 7)
|
|
#define WATCH_BTN_MODE_EIC_CHANNEL 7
|
|
|
|
// 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, 4)
|
|
#define WATCH_RED_TCC_CHANNEL 0
|
|
#define WATCH_RED_TCC_PINMUX PINMUX_PA04E_TCC0_WO0
|
|
|
|
#ifdef WATCH_IS_BLUE_BOARD
|
|
#define GREEN GPIO(GPIO_PORTB, 22)
|
|
#define WATCH_GREEN_TCC_CHANNEL 2
|
|
#define WATCH_GREEN_TCC_PINMUX PINMUX_PB22F_TCC0_WO2
|
|
#else
|
|
#define GREEN GPIO(GPIO_PORTB, 23)
|
|
#define WATCH_GREEN_TCC_CHANNEL 3
|
|
#define WATCH_GREEN_TCC_PINMUX PINMUX_PB23F_TCC0_WO3
|
|
#endif
|
|
|
|
|
|
// Segment LCD
|
|
// The LCD in this board can run comfortably at a lower voltage.
|
|
#define CONF_SLCD_CONTRAST_ADJUST 7
|
|
|
|
#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, 8)
|
|
#define SLCD7 GPIO(GPIO_PORTA, 9)
|
|
#define SLCD8 GPIO(GPIO_PORTA, 10)
|
|
#define SLCD9 GPIO(GPIO_PORTA, 11)
|
|
#define SLCD10 GPIO(GPIO_PORTB, 11)
|
|
#define SLCD11 GPIO(GPIO_PORTB, 12)
|
|
#define SLCD12 GPIO(GPIO_PORTB, 13)
|
|
#define SLCD13 GPIO(GPIO_PORTB, 14)
|
|
#define SLCD14 GPIO(GPIO_PORTB, 15)
|
|
#define SLCD15 GPIO(GPIO_PORTA, 14)
|
|
#define SLCD16 GPIO(GPIO_PORTA, 15)
|
|
#define SLCD17 GPIO(GPIO_PORTA, 16)
|
|
#define SLCD18 GPIO(GPIO_PORTA, 17)
|
|
#define SLCD19 GPIO(GPIO_PORTA, 18)
|
|
#define SLCD20 GPIO(GPIO_PORTA, 19)
|
|
#define SLCD21 GPIO(GPIO_PORTB, 16)
|
|
#define SLCD22 GPIO(GPIO_PORTB, 17)
|
|
#define SLCD23 GPIO(GPIO_PORTA, 20)
|
|
#define SLCD24 GPIO(GPIO_PORTA, 21)
|
|
#define SLCD25 GPIO(GPIO_PORTA, 22)
|
|
#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 << 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 << (50 - 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)
|
|
|
|
// interrupt mapping
|
|
#define EXT_IRQ_AMOUNT 6
|
|
#define CONFIG_EIC_EXTINT_MAP {0, PIN_PB00}, {1, PIN_PB01}, {2, PIN_PA02}, {3, PIN_PB03}, {5, PIN_PB05}, {7, PIN_PA07},
|
|
|
|
#endif // PINS_H_INCLUDED
|