// SDC-Controller Suska-III-B
#define BOARDTYPE "Suska-III-B"

//
#define INFOFLASHEND 
#define INFOBOOTLDRSIZE 0x800

#define NO_SHELL

// BootFlash
#define BOOT_REQ_PIN  PIND
#define BOOT_REQ      PD7
#define BOOT_ACK_DDR  DDRB
#define BOOT_ACK_PORT PORTB
#define BOOT_ACK      PB4

// Configure ticker
//#define _USE_DELAY_
#define SIGNALTICK
#define _USE_TIMER1_

// Configure mmc
#define _MMC_Write_        PORTC
#define _MMC_DDR_          DDRC
#define _MMC_Chip_Select_  PC3
//#define DEBUGMMC

// Configure SPI
#define USE_SoftSPI
#define SoftSPI_DDR    DDRB
#define SoftSPI_PORT   PORTB
#define SoftSPI_MOSI   PB5
#define SoftSPI_SCK    PB7
#define SoftSPI_PIN    PINB
#define SoftSPI_MISO   PB6
//#define SoftSPI_PIN    PIND
//#define SoftSPI_MISO   PD2

// Configure Suska SPI (FBoot)
#define SUSKAFLASH
#define USE_SUSKASPI
#define SUSKASPI_ACKSLOW
#define SuskaSPI_DDR    DDRB
#define SuskaSPI_PORT   PORTB
#define SuskaSPI_MOSI   PB5
#define SuskaSPI_SCK    PB7
#define SuskaSPI_PIN    PINB
#define SuskaSPI_MISO   PB6
#define USE_SSS
#define SuskaSSSPI_DDR    DDRC
#define SuskaSSSPI_PORT   PORTC
#define SuskaSPI_SS2    PC6
#define SuskaSPI_SS1    PC5
#define SuskaSPI_SS0    PC4



#define Suska_INT_DDR   DDRC
//#define Suska_INT_PORT  PORTC
//#define Suska_INT_BIT   PC0
//#define DEBUG

// Configure tff
#define MINIMIZE_LEVEL 1
#define FAT32 1
#define USE_STRFUNC 0
#define USE_LFN 1
#define _FF_
//#define get_fattime RTC_get_fattime

// Configure ASISP
#define AS_IDLETIMEOUT (1000)
#define AS_DDR         DDRA
#define AS_PORT        PORTA
#define AS_PIN         PINA
#define AS_FPGACE      (_BV(PA0))
#define AS_CONFDONE    (_BV(PA1))
#define AS_DCLK        (_BV(PA2))
#define AS_DO          (_BV(PA3))
#define AS_DATA        (_BV(PA4))
#define AS_CSO         (_BV(PA5))
#define AS_CONFIG      (_BV(PA6))

// Configure UART
#define UART_BAUDRATE   38400

#define UART_BUFSIZE_IN 50
#define _UART_IRQ_NOWAIT_EMPTY_
#define _UART_IRQ_EOL_D_OR_A_
#define _UART_IRQ_NOTIMEOUT_
#define _UART_IRQ_ONLY_RETURN_
#define USE_PRINTF

// Shell
#define __HAVE_FILESYSTEM__
#define DEBUGTRACELEVEL 0x00000001L
//#define SHELL_HAVE_LED   
//#define SHELL_LEDDDR      DDRB
//#define SHELL_LEDPORT     PORTB
//#define SHELL_LED         (_BV(PB0))
#define SHELL_POLL shell_poll
#define _SHELL_TITLE_ "*** Suska-III-B FPGA-Shell ***\r\n"
#define SHELL_PROMPT "B fpga-shell:> "
//#define SD_IMAGEFILE

// Power
#define EN_PS_DDR DDRD
#define EN_PS_PORT PORTD
#define EN_PS PD6
#define RESET_CORE_DDR DDRC
#define RESET_CORE_PORT PORTC
#define RESET_CORE PC0
#define RESET_DDR DDRC
#define RESET_PORT PORTC
#define RESET PC1
#define FPGA_CONFIG_DONE_PIN PINA
#define FPGA_CONFIG_DONE PA1
#define FPGA_INIT_DONE_PIN PINC
#define FPGA_INIT_DONE PC2

#define RESET_BUTTON_PINS PIND
#define POWER_RESET_BUTTON PD5
#define CORE_RESET_BUTTON PD4

// Joystick
//#define JOYDEBUGLOOP
#define JOYENABLEPORT  PORTB
#define JOYENABLEDDR   DDRB
#define JOYENABLE      PB3
//#define _PULL_UP_
#define JOYUPPORT  PORTC
#define JOYUPPIN   PINC
#define JOYUPDDR   DDRC
#define JOYUP      PC4
#define JOYDOWNPORT  PORTC
#define JOYDOWNPIN   PINC
#define JOYDOWNDDR   DDRC
#define JOYDOWN      PC5
#define JOYLEFTPORT  PORTC
#define JOYLEFTPIN   PINC
#define JOYLEFTDDR   DDRC
#define JOYLEFT      PC6
#define JOYRIGHTPORT  PORTC
#define JOYRIGHTPIN   PINC
#define JOYRIGHTDDR   DDRC
#define JOYRIGHT      PC7
#define JOYBUTTONPORT  PORTB
#define JOYBUTTONPIN   PINB
#define JOYBUTTONDDR   DDRB
#define JOYBUTTON      PB2
// Send Joystickdata via SPI
//#define JOYSPI
//#define KEYSPI


//#define PS2_DEBUG
//#define PS2_ATARI_DEBUG

#define PS2_PCIE       PCIE3
#define PS2_PCIF       PCIF3
#define PS2_PCINT_vect PCINT3_vect
#define PS2_PCMSK      PCMSK3

#define KB_PCINT                PCINT26
#define KB_CLOCK                PD2
#define KB_CLOCK_PORT           PORTD
#define KB_CLOCK_PIN            PIND
#define KB_CLOCK_DDR            DDRD
#define KB_DATA                 PB0
#define KB_DATA_PORT            PORTB
#define KB_DATA_PIN             PINB
#define KB_DATA_DDR             DDRB

#define MS_PCINT        PCINT27
#define MS_CLOCK        PD3
#define MS_CLOCK_PORT   PORTD
#define MS_CLOCK_PIN    PIND
#define MS_CLOCK_DDR    DDRD
#define MS_DATA         PB1
#define MS_DATA_PORT    PORTB
#define MS_DATA_PIN     PINB
#define MS_DATA_DDR     DDRB


// Input Voltage external Reference 3.3V
// Resolution 10bit (0..1023)
// R1/R2 see Schematics
#define R1 47000.0
#define R2 10000.0
#define FACTOR (1023/3.30)
#define ADC_CHANNEL 7

