X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fsamd21%2Fsamd21.h;h=b101c6b9f3e97c100d803a3c3d938f88a254bb56;hb=560767497057c08a6fc3bc24aaba23a8d6192259;hp=91ad52bf0f24718d25320f8d2d5b0407ce2f9a53;hpb=7bcde16c96f05595969bceef76905aa2e285c66b;p=fw%2Faltos diff --git a/src/samd21/samd21.h b/src/samd21/samd21.h index 91ad52bf..b101c6b9 100644 --- a/src/samd21/samd21.h +++ b/src/samd21/samd21.h @@ -777,6 +777,16 @@ samd21_port_pmux_set(struct samd21_port *port, uint8_t pin, uint8_t func) (1 << SAMD21_PORT_PINCFG_PMUXEN)); } +static inline uint8_t +samd21_port_pmux_get(struct samd21_port *port, uint8_t pin) +{ + uint8_t byte = pin >> 1; + uint8_t bit = (pin & 1) << 2; + uint8_t mask = 0xf << bit; + uint8_t value = (uint8_t) ((port->pmux[byte] & mask) >> bit); + return value; +} + static inline void samd21_port_pmux_clr(struct samd21_port *port, uint8_t pin) { @@ -1600,7 +1610,14 @@ extern struct samd21_sercom samd21_sercom5; #define SAMD21_SERCOM_CTRLA_IBON 8 #define SAMD21_SERCOM_CTRLA_SAMPR 13 #define SAMD21_SERCOM_CTRLA_TXPO 16 +#define SAMD21_SERCOM_CTRLA_TXPO_TX_0 0 +#define SAMD21_SERCOM_CTRLA_TXPO_TX_2 1 +#define SAMD21_SERCOM_CTRLA_TXPO_TX_0_RTS_2_CTS_3 2 #define SAMD21_SERCOM_CTRLA_RXPO 20 +#define SAMD21_SERCOM_CTRLA_RXPO_RX_0 0 +#define SAMD21_SERCOM_CTRLA_RXPO_RX_1 1 +#define SAMD21_SERCOM_CTRLA_RXPO_RX_2 2 +#define SAMD21_SERCOM_CTRLA_RXPO_RX_3 3 #define SAMD21_SERCOM_CTRLA_SAMPA 22 #define SAMD21_SERCOM_CTRLA_FORM 24 #define SAMD21_SERCOM_CTRLA_CMODE 28