From 8432f6f40c2a280b8214617e2ad5e4e8da2cceac Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 29 Oct 2018 11:55:15 -0400 Subject: [PATCH] avr: Add support for atmega328p The atmega328p is basically the same as the atmega328 - add explicit support for it so that avrdude doesn't complain while flashing. Signed-off-by: Kevin O'Connor --- klippy/pins.py | 4 +++- src/avr/Kconfig | 7 +++++-- src/avr/gpio.c | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/klippy/pins.py b/klippy/pins.py index bc8e0fff..d70e3834 100644 --- a/klippy/pins.py +++ b/klippy/pins.py @@ -38,7 +38,8 @@ def beaglebone_pins(): return gpios MCU_PINS = { - "atmega168": port_pins(5), "atmega328": port_pins(5), + "atmega168": port_pins(5), + "atmega328": port_pins(5), "atmega328p": port_pins(5), "atmega644p": port_pins(4), "atmega1284p": port_pins(4), "at90usb1286": port_pins(6), "at90usb646": port_pins(6), "atmega1280": port_pins(12), "atmega2560": port_pins(12), @@ -107,6 +108,7 @@ Arduino_Due_analog = [ Arduino_from_mcu = { "atmega168": (Arduino_standard, Arduino_analog_standard), "atmega328": (Arduino_standard, Arduino_analog_standard), + "atmega328p": (Arduino_standard, Arduino_analog_standard), "atmega644p": (Sanguino, Sanguino_analog), "atmega1280": (Arduino_mega, Arduino_analog_mega), "atmega2560": (Arduino_mega, Arduino_analog_mega), diff --git a/src/avr/Kconfig b/src/avr/Kconfig index 70115526..25e315a3 100644 --- a/src/avr/Kconfig +++ b/src/avr/Kconfig @@ -30,6 +30,8 @@ choice bool "atmega1284p" config MACH_atmega644p bool "atmega644p" + config MACH_atmega328p + bool "atmega328p" config MACH_atmega328 bool "atmega328" config MACH_atmega168 @@ -40,6 +42,7 @@ config MCU string default "atmega168" if MACH_atmega168 default "atmega328" if MACH_atmega328 + default "atmega328p" if MACH_atmega328p default "atmega1284p" if MACH_atmega1284p default "atmega644p" if MACH_atmega644p default "at90usb1286" if MACH_at90usb1286 @@ -58,7 +61,7 @@ choice prompt "Processor speed" config AVR_FREQ_20000000 bool "20Mhz" - depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p || MACH_atmega1284p + depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega328p || MACH_atmega644p || MACH_atmega1284p config AVR_FREQ_16000000 bool "16Mhz" config AVR_FREQ_8000000 @@ -133,7 +136,7 @@ config SERIAL_PORT default 0 config SIMULAVR - depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p || MACH_atmega1284p + depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega328p || 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 34de1af6..b611fdbc 100644 --- a/src/avr/gpio.c +++ b/src/avr/gpio.c @@ -159,7 +159,7 @@ static const struct gpio_pwm_info pwm_regs[] PROGMEM = { }; static const uint8_t pwm_pins[ARRAY_SIZE(pwm_regs)] PROGMEM = { -#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 +#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 || CONFIG_MACH_atmega328p GPIO('D', 6), GPIO('D', 5), GPIO('B', 1), GPIO('B', 2), GPIO('B', 3), GPIO('D', 3), @@ -264,7 +264,7 @@ gpio_pwm_write(struct gpio_pwm g, uint8_t val) ****************************************************************/ static const uint8_t adc_pins[] PROGMEM = { -#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 +#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 || CONFIG_MACH_atmega328p 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 || CONFIG_MACH_atmega1284p @@ -369,7 +369,7 @@ gpio_adc_cancel_sample(struct gpio_adc g) * Serial Peripheral Interface (SPI) hardware ****************************************************************/ -#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 +#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 || CONFIG_MACH_atmega328p static const uint8_t SS = GPIO('B', 2), SCK = GPIO('B', 5); static const uint8_t MOSI = GPIO('B', 3), MISO = GPIO('B', 4); #elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p