#ifndef BUSCFG_FILE
#define BUSCFG_FILE

#include "soc/gpio_num.h"

#define ESP_USB_DP GPIO_NUM_20
#define ESP_USB_DM GPIO_NUM_19
#define ESP_RXD0 GPIO_NUM_44
#define ESP_TXD0 GPIO_NUM_43

#define BME680_ADDRESS 0x76
#define CCS811_ADDRESS 0x5A
#define MPU9250_ADDRESS 0x68
#define INA260_ADDRESS 0x40
#define MCP23018_ADDRESS 0x20

#define BME680_PRESENT_BIT (1 << 0)
#define CCS811_PRESENT_BIT (1 << 1)
#define MPU9250_PRESENT_BIT (1 << 2)
#define INA260_PRESENT_BIT (1 << 3)
#define MCP23018_PRESENT_BIT (1 << 4)

#define ESP_CONNECTOR_P1 MCP3550_MISO_GPIO
#define ESP_CONNECTOR_P2 MCP3550_MOSI_GPIO
#define ESP_CONNECTOR_P3 MCP3550_SCK_GPIO
#define ESP_CONNECTOR_P4 GPIO_NUM_39
#define ESP_CONNECTOR_P5 GPIO_NUM_38
#define ESP_CONNECTOR_P6 HSPI_UNKNOWN_CS
#define ESP_CONNECTOR_P9 HSPI_MISO_GPIO
#define ESP_CONNECTOR_P10 MCP3550_MOSI_GPIO
#define ESP_CONNECTOR_P11 MCP3550_SCK_GPIO
#define ESP_CONNECTOR_P12 HSPI_SD_CS
#define ESP_CONNECTOR_P13 HSPI_LORA_CS
#define ESP_CONNECTOR_P17 HWI2C_SDA
#define ESP_CONNECTOR_P18 HWI2C_SCL
#define ESP_CONNECTOR_P19 I2C2_SDA
#define ESP_CONNECTOR_P20 I2C2_SCL
#define ESP_CONNECTOR_P25 LORA_DIO1
#define ESP_CONNECTOR_P26 LORA_BUSY
#define ESP_CONNECTOR_P27 LORA_RXEN_MANUAL
#define ESP_CONNECTOR_P28 GPIO_NUM_6
#define ESP_CONNECTOR_P29 GPIO_NUM_5
#define ESP_CONNECTOR_P30 GPIO_NUM_4
#define ESP_CONNECTOR_P47 GPS_RXD
#define ESP_CONNECTOR_P48 GPS_TXD
#define ESP_CONNECTOR_P51 ESP_RXD0
#define ESP_CONNECTOR_P52 ESP_TXD0
#define ESP_CONNECTOR_P57 ESP_USB_DP
#define ESP_CONNECTOR_P58 ESP_USB_DM


#define HSPI_UNKNOWN_CS GPIO_NUM_42
#define LORA_RXEN_MANUAL GPIO_NUM_7

#define HSPI_MISO_GPIO GPIO_NUM_13
#define HSPI_MOSI_GPIO GPIO_NUM_11

#define HSPI_SCK_GPIO GPIO_NUM_12
#define HSPI_LORA_CS GPIO_NUM_48
#define LORA_DIO1 GPIO_NUM_16
#define LORA_BUSY GPIO_NUM_15
#define HSPI_SD_CS GPIO_NUM_10

#define MCP3550_MOSI_GPIO GPIO_NUM_35
#define MCP3550_SCK_GPIO GPIO_NUM_36
#define MCP3550_MISO_GPIO GPIO_NUM_37

#define GPS_TXD  GPIO_NUM_17
#define GPS_RXD  GPIO_NUM_18
#define GPS_RTS  UART_PIN_NO_CHANGE
#define GPS_CTS  UART_PIN_NO_CHANGE

#define GPS_UART_NUM UART_NUM_2

#define HWI2C_SDA GPIO_NUM_8
#define HWI2C_SCL GPIO_NUM_9
#define I2C2_SDA GPIO_NUM_40
#define I2C2_SCL GPIO_NUM_41

#endif