avr: Use enumerations for buses and reserve pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
1ab02e5225
commit
7765653d83
|
@ -111,7 +111,7 @@ config SERIAL
|
|||
default y
|
||||
choice
|
||||
depends on SERIAL
|
||||
prompt "Serial Port" if LOW_LEVEL_OPTIONS && (MACH_atmega2560 || MACH_atmega1280 || MACH_atmega1284p)
|
||||
prompt "Serial Port" if LOW_LEVEL_OPTIONS && (MACH_atmega2560 || MACH_atmega1280 || MACH_atmega644p || MACH_atmega1284p)
|
||||
help
|
||||
Select the serial device to use on the AVR chip. This is
|
||||
almost always UART0.
|
||||
|
|
|
@ -12,14 +12,19 @@
|
|||
#include "internal.h" // GPIO
|
||||
#include "sched.h" // sched_shutdown
|
||||
|
||||
DECL_ENUMERATION("i2c_bus", "twi", 0);
|
||||
|
||||
#if CONFIG_MACH_atmega168 || CONFIG_MACH_atmega328 || CONFIG_MACH_atmega328p
|
||||
static const uint8_t SCL = GPIO('C', 5), SDA = GPIO('C', 4);
|
||||
DECL_CONSTANT_STR("BUS_PINS_twi", "PC5,PC4");
|
||||
#elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p
|
||||
static const uint8_t SCL = GPIO('C', 0), SDA = GPIO('C', 1);
|
||||
DECL_CONSTANT_STR("BUS_PINS_twi", "PC0,PC1");
|
||||
#elif CONFIG_MACH_at90usb1286 || CONFIG_MACH_at90usb646 \
|
||||
|| CONFIG_MACH_atmega32u4 || CONFIG_MACH_atmega1280 \
|
||||
|| CONFIG_MACH_atmega2560
|
||||
static const uint8_t SCL = GPIO('D', 0), SDA = GPIO('D', 1);
|
||||
DECL_CONSTANT_STR("BUS_PINS_twi", "PD0,PD1");
|
||||
#endif
|
||||
|
||||
static void
|
||||
|
|
|
@ -7,8 +7,24 @@
|
|||
#include <avr/interrupt.h> // USART_RX_vect
|
||||
#include "autoconf.h" // CONFIG_SERIAL_BAUD
|
||||
#include "board/serial_irq.h" // serial_rx_byte
|
||||
#include "command.h" // DECL_CONSTANT_STR
|
||||
#include "sched.h" // DECL_INIT
|
||||
|
||||
// Reserve serial pins
|
||||
#if CONFIG_SERIAL_PORT == 0
|
||||
#if CONFIG_MACH_atmega1280 || CONFIG_MACH_atmega2560
|
||||
DECL_CONSTANT_STR("RESERVE_PINS_serial", "PE0,PE1");
|
||||
#else
|
||||
DECL_CONSTANT_STR("RESERVE_PINS_serial", "PD0,PD1");
|
||||
#endif
|
||||
#elif CONFIG_SERIAL_PORT == 1
|
||||
DECL_CONSTANT_STR("RESERVE_PINS_serial", "PD2,PD3");
|
||||
#elif CONFIG_SERIAL_PORT == 2
|
||||
DECL_CONSTANT_STR("RESERVE_PINS_serial", "PH0,PH1");
|
||||
#else
|
||||
DECL_CONSTANT_STR("RESERVE_PINS_serial", "PJ0,PJ1");
|
||||
#endif
|
||||
|
||||
// Helper macros for defining serial port aliases
|
||||
#define AVR_SERIAL_REG1(prefix, id, suffix) prefix ## id ## suffix
|
||||
#define AVR_SERIAL_REG(prefix, id, suffix) AVR_SERIAL_REG1(prefix, id, suffix)
|
||||
|
|
|
@ -11,17 +11,22 @@
|
|||
#include "pgm.h" // READP
|
||||
#include "sched.h" // sched_shutdown
|
||||
|
||||
DECL_ENUMERATION("spi_bus", "spi", 0);
|
||||
|
||||
#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);
|
||||
static const uint8_t MISO = GPIO('B', 4), MOSI = GPIO('B', 3);
|
||||
static const uint8_t SCK = GPIO('B', 5), SS = GPIO('B', 2);
|
||||
DECL_CONSTANT_STR("BUS_PINS_spi", "PB4,PB3,PB5");
|
||||
#elif CONFIG_MACH_atmega644p || CONFIG_MACH_atmega1284p
|
||||
static const uint8_t SS = GPIO('B', 4), SCK = GPIO('B', 7);
|
||||
static const uint8_t MOSI = GPIO('B', 5), MISO = GPIO('B', 6);
|
||||
static const uint8_t MISO = GPIO('B', 6), MOSI = GPIO('B', 5);
|
||||
static const uint8_t SCK = GPIO('B', 7), SS = GPIO('B', 4);
|
||||
DECL_CONSTANT_STR("BUS_PINS_spi", "PB6,PB5,PB7");
|
||||
#elif CONFIG_MACH_at90usb1286 || CONFIG_MACH_at90usb646 \
|
||||
|| CONFIG_MACH_atmega32u4 || CONFIG_MACH_atmega1280 \
|
||||
|| CONFIG_MACH_atmega2560
|
||||
static const uint8_t SS = GPIO('B', 0), SCK = GPIO('B', 1);
|
||||
static const uint8_t MOSI = GPIO('B', 2), MISO = GPIO('B', 3);
|
||||
static const uint8_t MISO = GPIO('B', 3), MOSI = GPIO('B', 2);
|
||||
static const uint8_t SCK = GPIO('B', 1), SS = GPIO('B', 0);
|
||||
DECL_CONSTANT_STR("BUS_PINS_spi", "PB3,PB2,PB1");
|
||||
#endif
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue