diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-10-05 13:51:05 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-10-05 13:51:05 -0400 |
commit | fb0f34434624b06d69e1efaf4d928265aa83e99a (patch) | |
tree | 795eb16bd755b863ed1ecce12cad2da76e1aa106 /src | |
parent | afac81c1616018b6803e18ffcb19a85d3c516dd5 (diff) | |
download | kutter-fb0f34434624b06d69e1efaf4d928265aa83e99a.tar.gz kutter-fb0f34434624b06d69e1efaf4d928265aa83e99a.tar.xz kutter-fb0f34434624b06d69e1efaf4d928265aa83e99a.zip |
avr: Add support for atmega1284p
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/avr/Kconfig | 7 | ||||
-rw-r--r-- | src/avr/gpio.c | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/avr/Kconfig b/src/avr/Kconfig index 85967a38..77b0f45c 100644 --- a/src/avr/Kconfig +++ b/src/avr/Kconfig @@ -23,6 +23,8 @@ choice bool "atmega1280" config MACH_at90usb1286 bool "at90usb1286" + config MACH_atmega1284p + bool "atmega1284p" config MACH_atmega644p bool "atmega644p" config MACH_atmega328 @@ -35,6 +37,7 @@ config MCU string default "atmega168" if MACH_atmega168 default "atmega328" if MACH_atmega328 + default "atmega1284p" if MACH_atmega1284p default "atmega644p" if MACH_atmega644p default "at90usb1286" if MACH_at90usb1286 default "atmega1280" if MACH_atmega1280 @@ -44,7 +47,7 @@ choice prompt "Processor speed" config AVR_FREQ_20000000 bool "20Mhz" - depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p + depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p || MACH_atmega1284p config AVR_FREQ_16000000 bool "16Mhz" config AVR_FREQ_8000000 @@ -98,7 +101,7 @@ config SERIAL_BAUD_U2X default y config SIMULAVR - depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p + depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p || MACH_atmega1284p bool "Compile for simulavr software emulation" default n help diff --git a/src/avr/gpio.c b/src/avr/gpio.c index 53a57f95..f144cd64 100644 --- a/src/avr/gpio.c +++ b/src/avr/gpio.c @@ -126,6 +126,8 @@ static const struct gpio_pwm_info pwm_regs[] PROGMEM = { #ifdef OCR3A { &OCR3A, &TCCR3A, &TCCR3B, 1<<COM3A1, 0 }, { &OCR3B, &TCCR3A, &TCCR3B, 1<<COM3B1, 0 }, +#endif +#ifdef OCR3C { &OCR3C, &TCCR3A, &TCCR3B, 1<<COM3C1, 0 }, #endif #ifdef OCR4A @@ -143,10 +145,13 @@ static const uint8_t pwm_pins[ARRAY_SIZE(pwm_regs)] PROGMEM = { GPIO('D', 6), GPIO('D', 5), GPIO('B', 1), GPIO('B', 2), GPIO('B', 3), GPIO('D', 3), -#elif CONFIG_MACH_atmega644p +#elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p GPIO('B', 3), GPIO('B', 4), GPIO('D', 5), GPIO('D', 4), GPIO('D', 7), GPIO('D', 6), +# ifdef OCR3A + GPIO('B', 6), GPIO('B', 7), +# endif #elif CONFIG_MACH_at90usb1286 GPIO('B', 7), GPIO('D', 0), GPIO('B', 5), GPIO('B', 6), GPIO('B', 7), @@ -244,7 +249,7 @@ static const uint8_t adc_pins[] PROGMEM = { #if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 GPIO('C', 0), GPIO('C', 1), GPIO('C', 2), GPIO('C', 3), GPIO('C', 4), GPIO('C', 5), GPIO('E', 0), GPIO('E', 1), -#elif CONFIG_MACH_atmega644p +#elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p GPIO('A', 0), GPIO('A', 1), GPIO('A', 2), GPIO('A', 3), GPIO('A', 4), GPIO('A', 5), GPIO('A', 6), GPIO('A', 7), #elif CONFIG_MACH_at90usb1286 @@ -345,7 +350,7 @@ gpio_adc_cancel_sample(struct gpio_adc g) #if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 static const uint8_t SS = GPIO('B', 2), SCK = GPIO('B', 5), MOSI = GPIO('B', 3); -#elif CONFIG_MACH_atmega644p +#elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p static const uint8_t SS = GPIO('B', 4), SCK = GPIO('B', 7), MOSI = GPIO('B', 5); #elif CONFIG_MACH_at90usb1286 || CONFIG_MACH_atmega1280 || CONFIG_MACH_atmega2560 static const uint8_t SS = GPIO('B', 0), SCK = GPIO('B', 1), MOSI = GPIO('B', 2); |