From 4338788911c2220ad69842b43f789729cb669000 Mon Sep 17 00:00:00 2001
From: Niwantha Nadeesh Meepage <niwantha33@gmail.com>
Date: Tue, 18 Jan 2022 18:42:03 +0530
Subject: [PATCH 1/2] Add LionBit Dev Board.

---
 boards.txt | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 146 insertions(+), 1 deletion(-)

diff --git a/boards.txt b/boards.txt
index 0edba99acea..7c2f8128086 100755
--- a/boards.txt
+++ b/boards.txt
@@ -10953,4 +10953,149 @@ sonoff_dualr3.menu.DebugLevel.debug.build.code_debug=4
 sonoff_dualr3.menu.DebugLevel.verbose=Verbose
 sonoff_dualr3.menu.DebugLevel.verbose.build.code_debug=5
 
-##############################################################
\ No newline at end of file
+##############################################################
+lionbit.name=Lion:Bit Dev Board
+
+lionbit.upload.tool=esptool_py
+lionbit.upload.maximum_size=1310720
+lionbit.upload.maximum_data_size=327680
+lionbit.upload.flags=
+lionbit.upload.extra_flags=
+
+lionbit.serial.disableDTR=true
+lionbit.serial.disableRTS=true
+
+lionbit.build.tarch=xtensa
+lionbit.build.bootloader_addr=0x1000
+lionbit.build.target=esp32
+lionbit.build.mcu=esp32
+lionbit.build.core=esp32
+lionbit.build.variant=lionbit
+lionbit.build.board=Lion:Bit_Dev_Board
+
+lionbit.build.f_cpu=240000000L
+lionbit.build.flash_size=4MB
+lionbit.build.flash_freq=80m
+lionbit.build.flash_mode=dio
+lionbit.build.boot=dio
+lionbit.build.partitions=default
+lionbit.build.defines=
+lionbit.build.loop_core=
+lionbit.build.event_core=
+
+
+lionbit.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+lionbit.menu.PartitionScheme.default.build.partitions=default
+lionbit.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+lionbit.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+lionbit.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
+lionbit.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
+lionbit.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
+lionbit.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+lionbit.menu.PartitionScheme.minimal.build.partitions=minimal
+lionbit.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+lionbit.menu.PartitionScheme.no_ota.build.partitions=no_ota
+lionbit.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+lionbit.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+lionbit.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+lionbit.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+lionbit.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+lionbit.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+lionbit.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+lionbit.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+lionbit.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+lionbit.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+lionbit.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+lionbit.menu.PartitionScheme.huge_app.build.partitions=huge_app
+lionbit.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+lionbit.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+lionbit.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+lionbit.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+lionbit.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
+lionbit.menu.PartitionScheme.fatflash.build.partitions=ffat
+lionbit.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
+lionbit.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
+lionbit.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
+lionbit.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
+lionbit.menu.PartitionScheme.rainmaker=RainMaker
+lionbit.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
+lionbit.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
+
+lionbit.menu.CPUFreq.240=240MHz (WiFi/BT)
+lionbit.menu.CPUFreq.240.build.f_cpu=240000000L
+lionbit.menu.CPUFreq.160=160MHz (WiFi/BT)
+lionbit.menu.CPUFreq.160.build.f_cpu=160000000L
+lionbit.menu.CPUFreq.80=80MHz (WiFi/BT)
+lionbit.menu.CPUFreq.80.build.f_cpu=80000000L
+lionbit.menu.CPUFreq.40=40MHz (40MHz XTAL)
+lionbit.menu.CPUFreq.40.build.f_cpu=40000000L
+lionbit.menu.CPUFreq.26=26MHz (26MHz XTAL)
+lionbit.menu.CPUFreq.26.build.f_cpu=26000000L
+lionbit.menu.CPUFreq.20=20MHz (40MHz XTAL)
+lionbit.menu.CPUFreq.20.build.f_cpu=20000000L
+lionbit.menu.CPUFreq.13=13MHz (26MHz XTAL)
+lionbit.menu.CPUFreq.13.build.f_cpu=13000000L
+lionbit.menu.CPUFreq.10=10MHz (40MHz XTAL)
+lionbit.menu.CPUFreq.10.build.f_cpu=10000000L
+
+
+lionbit.menu.FlashMode.dio=DIO
+lionbit.menu.FlashMode.dio.build.flash_mode=dio
+lionbit.menu.FlashMode.dio.build.boot=dio
+lionbit.menu.FlashMode.qio=QIO
+lionbit.menu.FlashMode.qio.build.flash_mode=dio
+lionbit.menu.FlashMode.qio.build.boot=qio
+lionbit.menu.FlashMode.qout=QOUT
+lionbit.menu.FlashMode.qout.build.flash_mode=dout
+lionbit.menu.FlashMode.qout.build.boot=qout
+lionbit.menu.FlashMode.dout=DOUT
+lionbit.menu.FlashMode.dout.build.flash_mode=dout
+lionbit.menu.FlashMode.dout.build.boot=dout
+
+lionbit.menu.FlashFreq.80=80MHz
+lionbit.menu.FlashFreq.80.build.flash_freq=80m
+lionbit.menu.FlashFreq.40=40MHz
+lionbit.menu.FlashFreq.40.build.flash_freq=40m
+
+lionbit.menu.FlashSize.4M=4MB (32Mb)
+lionbit.menu.FlashSize.4M.build.flash_size=4MB
+lionbit.menu.FlashSize.4M.build.partitions=default
+
+
+
+lionbit.menu.UploadSpeed.115200=115200
+lionbit.menu.UploadSpeed.115200.upload.speed=115200
+lionbit.menu.UploadSpeed.256000.windows=256000
+lionbit.menu.UploadSpeed.256000.upload.speed=256000
+lionbit.menu.UploadSpeed.230400.windows.upload.speed=256000
+lionbit.menu.UploadSpeed.230400=230400
+lionbit.menu.UploadSpeed.230400.upload.speed=230400
+lionbit.menu.UploadSpeed.460800.linux=460800
+lionbit.menu.UploadSpeed.460800.macosx=460800
+lionbit.menu.UploadSpeed.460800.upload.speed=460800
+
+
+lionbit.menu.LoopCore.1=Core 1
+lionbit.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+lionbit.menu.LoopCore.0=Core 0
+lionbit.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+lionbit.menu.EventsCore.1=Core 1
+lionbit.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+lionbit.menu.EventsCore.0=Core 0
+lionbit.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+lionbit.menu.DebugLevel.none=None
+lionbit.menu.DebugLevel.none.build.code_debug=0
+lionbit.menu.DebugLevel.error=Error
+lionbit.menu.DebugLevel.error.build.code_debug=1
+lionbit.menu.DebugLevel.warn=Warn
+lionbit.menu.DebugLevel.warn.build.code_debug=2
+lionbit.menu.DebugLevel.info=Info
+lionbit.menu.DebugLevel.info.build.code_debug=3
+lionbit.menu.DebugLevel.debug=Debug
+lionbit.menu.DebugLevel.debug.build.code_debug=4
+lionbit.menu.DebugLevel.verbose=Verbose
+lionbit.menu.DebugLevel.verbose.build.code_debug=5
+
+##############################################################

From 4594dbc52737da85b5cf0e5aef3261f012aaa524 Mon Sep 17 00:00:00 2001
From: Niwantha Nadeesh Meepage <niwantha33@gmail.com>
Date: Tue, 18 Jan 2022 18:55:06 +0530
Subject: [PATCH 2/2] Create lionbit in variants.

---
 variants/lionbit/pins_arduino.h | 92 +++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 variants/lionbit/pins_arduino.h

diff --git a/variants/lionbit/pins_arduino.h b/variants/lionbit/pins_arduino.h
new file mode 100644
index 00000000000..ac456df3b7b
--- /dev/null
+++ b/variants/lionbit/pins_arduino.h
@@ -0,0 +1,92 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define EXTERNAL_NUM_INTERRUPTS 16
+#define NUM_DIGITAL_PINS 40
+#define NUM_ANALOG_INPUTS 16
+
+#define analogInputToDigitalPin(p) (((p) < 20) ? (esp32_adc2gpio[(p)]) : -1)
+#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1)
+#define digitalPinHasPWM(p) (p < 34)
+
+static const uint8_t LED_BUILTIN = 0; // GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,EMAC_TX_CLK
+static const uint8_t SWITCH_A = 2;    //  GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0,SD_DATA0
+static const uint8_t SWITCH_B = 4;    //  GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1,SD_DATA1, EMAC_TX_ER
+
+static const uint8_t TX = 1;
+static const uint8_t RX = 3;
+
+/* LionBit pin setup */
+static const uint8_t D0 = 3; //Rx GPIO3, U0RXD, CLK_OUT2
+static const uint8_t D1 = 1; //TX GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
+//-------------------------------------------------------------------
+
+//Please do not use while using QIO SPI mode ; Use only DIO flash mode
+static const uint8_t D2 = 9;  //I/O   U1RX  GPIO9,  SD_DATA2, SPIHD, HS1_DATA2, U1RXD
+static const uint8_t D3 = 10; //I/O  U1TX  GPIO10, SD_DATA3, SPIWP, HS1_DATA3, U1TXD
+//-------------------------------------------------------------------
+static const uint8_t U1RX = 9;  //I/O   U1RX
+static const uint8_t U1TX = 10; //I/O  U1TX
+
+//Second Segment - Sector -01 (Voltage (*5v or 3.3V) can be selected by using D4-7 Jumper
+static const uint8_t D4 = 16; //I/O   U2RX  GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
+static const uint8_t D5 = 17; //I/O   U2TX  GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
+static const uint8_t D6 = 21; //I/O   SDA GPIO21, VSPIHD, EMAC_TX_EN
+static const uint8_t D7 = 22; //I/O   SCl GPIO22, VSPIWP, U0RTS, EMAC_TXD1
+
+//Second Segment - Sector -02 (Voltage (*5v or 3.3V) can be selected by using D8-11 Jumper
+static const uint8_t D8 = 5;   //I/O  GPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLK
+static const uint8_t D9 = 23;  //I/O GPIO23, VSPID, HS1_STROBE  **********************************************Don not use when display "ON or USE"*************************
+static const uint8_t D10 = 19; //I/O GPIO19, VSPIQ, U0CTS, EMAC_TXD0
+static const uint8_t D11 = 18; //I/O GPIO18, VSPICLK, HS1_DATA7 **********************************************Don not use when display "ON or USE"*************************
+
+
+// Analog to Digital Converter (Support 5V) ADC2 pins not recommended while using Wifi
+static const uint8_t A0 /*ADC2_CH3 */ = 12; //MAX 5V,I/O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2,SD_DATA2, EMAC_TXD3
+static const uint8_t A1 /*ADC1_CH0 */ = 14; //MAX 5V,I/O GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK,SD_CLK, EMAC_TXD2
+static const uint8_t A2 /*ADC2_CH6 */ = 34; //MAX 5V,GPIO34, ADC1_CH6, RTC_GPIO4 ***********************/////////////////////Connected LDR/////////////////////////////
+static const uint8_t A3 /*ADC1_CH7 */ = 35; //MAX 5V,GPIO35, ADC1_CH7, RTC_GPIO5
+static const uint8_t A4 /*ADC2_CH5 */ = 15; //MAX 5V,GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD,SD_CMD, EMAC_RXD3
+static const uint8_t A5 /*ADC2_CH4 */ = 13; //MAX 5V,GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3,SD_DATA3, EMAC_RX_ER
+                                            //-------------------------------------------------------------------
+
+//------------------Touch Sensors-------------------------------------------------
+static const uint8_t VP = 36; //  GPIO36, ADC1_CH0, RTC_GPIO0
+static const uint8_t VN = 39; //  GPIO39, ADC1_CH3, RTC_GPIO3
+
+static const uint8_t T0 = 36;
+static const uint8_t T1 = 39;
+
+static const uint8_t DAC1 = 25; // I/O GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
+static const uint8_t DAC2 = 26; // I/O GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
+
+static const uint8_t SDA = 21;
+static const uint8_t SCL = 22;
+
+/* Hardware HSPI */
+static const uint8_t MOSI = 13; // 13;
+static const uint8_t MISO = 12; // 12;
+static const uint8_t SCK = 14;  // 14;
+static const uint8_t SS = 15;   // 15;
+
+/* Software VSPI [Note : D9 and D11 Do not use when display "ON or USE"]*/
+static const uint8_t VMOSI = 23;  //23 /*Do not use when display "ON or USE"*/
+static const uint8_t VMISO = 19; // 19
+static const uint8_t VSCK = 18;  // 18 /*Do not use when display "ON or USE"*/
+static const uint8_t VSS = 5;    // 5
+
+// Inbuilt Display Unit 128*128 ST7735 Driver
+static const uint8_t RST = 33;     // - RESET GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output),ADC1_CH5, TOUCH8, RTC_GPIO8
+static const uint8_t CLK = 18;    // - (18) CLK  (D11) and  D9 pin will engaged when display "ON or USE"
+static const uint8_t CS = 27;      // - CS    GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
+static const uint8_t DC = 32;      //- DC/A0 GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4,TOUCH9, RTC_GPIO9
+static const uint8_t ST_MOSI = 23; // - MOSI (D9) This D9 pin will engaged when display "ON or USE"
+
+static const uint8_t MTDO = 15; // A4 JTAG SIGNAL -> TDO
+static const uint8_t MTDI = 12; // A0 JTAG SIGNAL -> TDI
+static const uint8_t MTCK = 13; // A5 JTAG SIGNAL -> TCK
+static const uint8_t MTMS = 14; // A1 JTAG SIGNAL -> TMS
+
+#endif /* Pins_Arduino_h */