diff --git a/cpu/atmega1284p/Makefile.dep b/cpu/atmega1284p/Makefile.dep new file mode 100644 index 0000000000..41c8200b07 --- /dev/null +++ b/cpu/atmega1284p/Makefile.dep @@ -0,0 +1,6 @@ +# additional PCINTs for atmega1284p +ifneq (,$(filter atmega_pcint,$(USEMODULE))) + USEMODULE += atmega_pcint1 atmega_pcint2 atmega_pcint3 +endif + +include $(RIOTCPU)/atmega_common/Makefile.dep diff --git a/cpu/atmega1284p/Makefile.features b/cpu/atmega1284p/Makefile.features index 008260685b..caffb80aa2 100644 --- a/cpu/atmega1284p/Makefile.features +++ b/cpu/atmega1284p/Makefile.features @@ -1 +1,4 @@ --include $(RIOTCPU)/atmega_common/Makefile.features +# additional PCINTs for atmega1284p +FEATURES_PROVIDED += atmega_pcint1 atmega_pcint2 atmega_pcint3 + +include $(RIOTCPU)/atmega_common/Makefile.features diff --git a/cpu/atmega1284p/Makefile.include b/cpu/atmega1284p/Makefile.include index 985d14cf9e..6bd27a9343 100644 --- a/cpu/atmega1284p/Makefile.include +++ b/cpu/atmega1284p/Makefile.include @@ -4,5 +4,10 @@ USEMODULE += atmega_common RAM_LEN = 16K ROM_LEN = 128K +# expand atmega_pcint for atmega1284p +ifneq (,$(filter atmega_pcint,$(USEMODULE))) + USEMODULE += atmega_pcint1 atmega_pcint2 atmega_pcint3 +endif + # CPU depends on the atmega common module, so include it include $(RIOTCPU)/atmega_common/Makefile.include diff --git a/cpu/atmega1284p/include/atmega_pcint.h b/cpu/atmega1284p/include/atmega_pcint.h new file mode 100644 index 0000000000..36f30beb12 --- /dev/null +++ b/cpu/atmega1284p/include/atmega_pcint.h @@ -0,0 +1,17 @@ +#ifndef ATMEGA_PCINT_H +#define ATMEGA_PCINT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define ATMEGA_PCINT_MAP_PCINT0 GPIO_PIN(PORT_A, 0), GPIO_PIN(PORT_A, 1), GPIO_PIN(PORT_A, 2), GPIO_PIN(PORT_A, 3), GPIO_PIN(PORT_A, 4), GPIO_PIN(PORT_A, 5), GPIO_PIN(PORT_A, 6), GPIO_PIN(PORT_A, 7) +#define ATMEGA_PCINT_MAP_PCINT1 GPIO_PIN(PORT_B, 0), GPIO_PIN(PORT_B, 1), GPIO_PIN(PORT_B, 2), GPIO_PIN(PORT_B, 3), GPIO_PIN(PORT_B, 4), GPIO_PIN(PORT_B, 5), GPIO_PIN(PORT_B, 6), GPIO_PIN(PORT_B, 7) +#define ATMEGA_PCINT_MAP_PCINT2 GPIO_PIN(PORT_C, 0), GPIO_PIN(PORT_C, 1), GPIO_PIN(PORT_C, 2), GPIO_PIN(PORT_C, 3), GPIO_PIN(PORT_C, 4), GPIO_PIN(PORT_C, 5), GPIO_PIN(PORT_C, 6), GPIO_PIN(PORT_C, 7) +#define ATMEGA_PCINT_MAP_PCINT3 GPIO_PIN(PORT_D, 0), GPIO_PIN(PORT_D, 1), GPIO_PIN(PORT_D, 2), GPIO_PIN(PORT_D, 3), GPIO_PIN(PORT_D, 4), GPIO_PIN(PORT_D, 5), GPIO_PIN(PORT_D, 6), GPIO_PIN(PORT_D, 7) + +#ifdef __cplusplus +} +#endif + +#endif /* ATMEGA_PCINT_H */