#ifndef _LMCAL_SDIO_CFG_H
#define _LMCAL_SDIO_CFG_H


//******************************************** Включаемые файлы *********************************************

#include "gd32f4xx_gpio.h"
#include "gd32f4xx_sdio.h"


//******************************************* Локальные константы *******************************************

// Номера портов в буквенном формате
#define LMCAL_SDIO_PORTA              (GPIOA)
#define LMCAL_SDIO_PORTB              (GPIOB)
#define LMCAL_SDIO_PORTC              (GPIOC)
#define LMCAL_SDIO_PORTD              (GPIOD)
#define LMCAL_SDIO_PORTE              (GPIOE)
#define LMCAL_SDIO_PORTF              (GPIOF)
#define LMCAL_SDIO_PORTG              (GPIOG)
#define LMCAL_SDIO_PORTH              (GPIOH)
#define LMCAL_SDIO_PORTI              (GPIOI)

// Номера портов в цифровом формате
#define LMCAL_SDIO_PORT0              (GPIOA)
#define LMCAL_SDIO_PORT1              (GPIOB)
#define LMCAL_SDIO_PORT2              (GPIOC)
#define LMCAL_SDIO_PORT3              (GPIOD)
#define LMCAL_SDIO_PORT4              (GPIOE)
#define LMCAL_SDIO_PORT5              (GPIOF)
#define LMCAL_SDIO_PORT6              (GPIOG)
#define LMCAL_SDIO_PORT7              (GPIOH)
#define LMCAL_SDIO_PORT8              (GPIOI)
#define LMCAL_SDIO_PORT_NONE          (0xFFFFFFFF)

// Номера пинов в цифровом формате
#define LMCAL_SDIO_PIN0               (GPIO_PIN_0)
#define LMCAL_SDIO_PIN1               (GPIO_PIN_1)
#define LMCAL_SDIO_PIN2               (GPIO_PIN_2)
#define LMCAL_SDIO_PIN3               (GPIO_PIN_3)
#define LMCAL_SDIO_PIN4               (GPIO_PIN_4)
#define LMCAL_SDIO_PIN5               (GPIO_PIN_5)
#define LMCAL_SDIO_PIN6               (GPIO_PIN_6)
#define LMCAL_SDIO_PIN7               (GPIO_PIN_7)
#define LMCAL_SDIO_PIN8               (GPIO_PIN_8)
#define LMCAL_SDIO_PIN9               (GPIO_PIN_9)
#define LMCAL_SDIO_PIN10              (GPIO_PIN_10)
#define LMCAL_SDIO_PIN11              (GPIO_PIN_11)
#define LMCAL_SDIO_PIN12              (GPIO_PIN_12)
#define LMCAL_SDIO_PIN13              (GPIO_PIN_13)
#define LMCAL_SDIO_PIN14              (GPIO_PIN_14)
#define LMCAL_SDIO_PIN15              (GPIO_PIN_15)
#define LMCAL_SDIO_PIN16              (GPIO_PIN_16)
#define LMCAL_SDIO_PIN17              (GPIO_PIN_17)
#define LMCAL_SDIO_PIN18              (GPIO_PIN_18)
#define LMCAL_SDIO_PIN19              (GPIO_PIN_19)
#define LMCAL_SDIO_PIN20              (GPIO_PIN_20)
#define LMCAL_SDIO_PIN21              (GPIO_PIN_21)
#define LMCAL_SDIO_PIN22              (GPIO_PIN_22)
#define LMCAL_SDIO_PIN23              (GPIO_PIN_23)
#define LMCAL_SDIO_PIN24              (GPIO_PIN_24)
#define LMCAL_SDIO_PIN25              (GPIO_PIN_25)
#define LMCAL_SDIO_PIN26              (GPIO_PIN_26)
#define LMCAL_SDIO_PIN27              (GPIO_PIN_27)
#define LMCAL_SDIO_PIN28              (GPIO_PIN_28)
#define LMCAL_SDIO_PIN29              (GPIO_PIN_29)
#define LMCAL_SDIO_PIN30              (GPIO_PIN_30)
#define LMCAL_SDIO_PIN31              (GPIO_PIN_31)
#define LMCAL_SDIO_PIN_NONE           (0xFFFFFFFF)



//************************************ Глобальные (публичные) константы *************************************

//---------------------------------------------------------
// Общие настройки
//---------------------------------------------------------

// Частота обмена в МГц:
// Доступные значения: 12, 24, 48
#define LMCAL_SDIO_CLK                      (12)

//! Доступен только 1 вариант настройки выводов - текущий
// Номер порта
// Доступные значения: LMCAL_SDIO_PORTA..LMCAL_SDIO_PORTH или LMCAL_SDIO_PORT0..LMCAL_SDIO_PORT7
#define LMCAL_SDIO_CK_PORT                  (LMCAL_SDIO_PORTC)

// Номер ножки
// Доступные значения: LMCAL_SDIO_PIN0...LMCAL_SDIO_PIN31
#define LMCAL_SDIO_CK_PIN                   (LMCAL_SDIO_PIN12)

#define LMCAL_SDIO_CMD_PORT                 (LMCAL_SDIO_PORTD)
#define LMCAL_SDIO_CMD_PIN                  (LMCAL_SDIO_PIN2)

#define LMCAL_SDIO_D0_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D0_PIN                   (LMCAL_SDIO_PIN8)

#define LMCAL_SDIO_D1_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D1_PIN                   (LMCAL_SDIO_PIN9)

#define LMCAL_SDIO_D2_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D2_PIN                   (LMCAL_SDIO_PIN10)

#define LMCAL_SDIO_D3_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D3_PIN                   (LMCAL_SDIO_PIN11)

#define LMCAL_SDIO_D4_PORT                  (LMCAL_SDIO_PORTB)
#define LMCAL_SDIO_D4_PIN                   (LMCAL_SDIO_PIN8)

#define LMCAL_SDIO_D5_PORT                  (LMCAL_SDIO_PORTB)
#define LMCAL_SDIO_D5_PIN                   (LMCAL_SDIO_PIN9)

#define LMCAL_SDIO_D6_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D6_PIN                   (LMCAL_SDIO_PIN6)

#define LMCAL_SDIO_D7_PORT                  (LMCAL_SDIO_PORTC)
#define LMCAL_SDIO_D7_PIN                   (LMCAL_SDIO_PIN7)


//---------------------------------------------------------
// Канал 0 - DAC (stream out)
//---------------------------------------------------------

// Включить или отключить канал
// Доступные значения: ON\OFF, 1\0
#define LMCAL_SDIO_CH0_ENABLE               (1)

// Размер блока
// Доступные значения: 16, 32, 64, 128, 256, 512...
#define LMCAL_SDIO_CH0_SIZE                 (SDIO_DATABLOCKSIZE_256BYTES) // 256

// Включить или отключить асинхронный режим работы драйвера.
// Если выключен, то исползуются функции с блокированием.
// Доступные значения: ON\OFF, 1\0
#define LMCAL_SDIO_CH0_ASYNC_MODE           (1U)



//---------------------------------------------------------
// Канал 1 - ADC (stream in)
//---------------------------------------------------------
#define LMCAL_SDIO_CH1_ENABLE               (1U)
#define LMCAL_SDIO_CH1_SIZE                 (SDIO_DATABLOCKSIZE_256BYTES) // 256
#define LMCAL_SDIO_CH1_ASYNC_MODE           (1U)



//******************************************* Проверка параметров *******************************************

// Нет


#endif

//*********************************************** КОНЕЦ ФАЙЛА ***********************************************
