[boards] Add Tuya CBU board (#106)

* add CBU module

* boardgen templates

These should go in boardgen package.
Included here for reference

* boardgen output

* [boards] Update for latest version of boardgen

* [boards] Change CBU silkscreen, add variant file

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
This commit is contained in:
Adrián Panella
2023-06-17 13:25:17 -06:00
committed by GitHub
parent 5c4da6e82b
commit 1335b84391
26 changed files with 415 additions and 107 deletions

72
boards/variants/cbu.c Normal file
View File

@@ -0,0 +1,72 @@
/* This file was auto-generated from cbu.json using boardgen */
#include <Arduino.h>
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P14, SD_CLK, SCK
{GPIO14, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D1: P16, SD_D0, MOSI
{GPIO16, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D2: P20, I2C1_SCL, TCK, FSCK
{GPIO20, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_JTAG, PIN_NONE, 0},
// D3: P22, TDI, FSI
{GPIO22, PIN_GPIO | PIN_IRQ | PIN_JTAG, PIN_NONE, 0},
// D4: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D5: P1, UART2_RX, I2C2_SDA
{GPIO1, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D6: P0, UART2_TX, I2C2_SCL
{GPIO0, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D7: P8, PWM2
{GPIO8, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D8: P7, PWM1
{GPIO7, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D9: P6, PWM0
{GPIO6, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D10: P26, PWM5, IRDA
{GPIO26, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D11: P24, PWM4
{GPIO24, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D12: P11, UART1_TX
{GPIO11, PIN_GPIO | PIN_IRQ | PIN_UART, PIN_NONE, 0},
// D13: P10, UART1_RX
{GPIO10, PIN_GPIO | PIN_IRQ | PIN_UART, PIN_NONE, 0},
// D14: P28, DN
{GPIO28, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D15: P9, PWM3
{GPIO9, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D16: P17, SD_D1, MISO
{GPIO17, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D17: P15, SD_CMD, CS
{GPIO15, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D18: P21, I2C1_SDA, TMS, MCLK, ^FCS
{GPIO21, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_JTAG, PIN_NONE, 0},
};
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[1] = &(lt_arduino_pin_info_list[5]), // GPIO1 (D5)
[6] = &(lt_arduino_pin_info_list[9]), // GPIO6 (D9)
[7] = &(lt_arduino_pin_info_list[8]), // GPIO7 (D8)
[8] = &(lt_arduino_pin_info_list[7]), // GPIO8 (D7)
[9] = &(lt_arduino_pin_info_list[15]), // GPIO9 (D15)
[10] = &(lt_arduino_pin_info_list[13]), // GPIO10 (D13)
[11] = &(lt_arduino_pin_info_list[12]), // GPIO11 (D12)
[14] = &(lt_arduino_pin_info_list[0]), // GPIO14 (D0)
[15] = &(lt_arduino_pin_info_list[17]), // GPIO15 (D17)
[16] = &(lt_arduino_pin_info_list[1]), // GPIO16 (D1)
[17] = &(lt_arduino_pin_info_list[16]), // GPIO17 (D16)
[20] = &(lt_arduino_pin_info_list[2]), // GPIO20 (D2)
[21] = &(lt_arduino_pin_info_list[18]), // GPIO21 (D18)
[22] = &(lt_arduino_pin_info_list[3]), // GPIO22 (D3)
[23] = &(lt_arduino_pin_info_list[4]), // GPIO23 (D4)
[24] = &(lt_arduino_pin_info_list[11]), // GPIO24 (D11)
[26] = &(lt_arduino_pin_info_list[10]), // GPIO26 (D10)
[28] = &(lt_arduino_pin_info_list[14]), // GPIO28 (D14)
};
// clang-format on

123
boards/variants/cbu.h Normal file
View File

@@ -0,0 +1,123 @@
/* This file was auto-generated from cbu.json using boardgen */
#pragma once
// clang-format off
// Pins
// ----
#define PINS_COUNT 19 // Total GPIO count
#define NUM_DIGITAL_PINS 19 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 28 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 23u // GPIO23
#define PIN_CS 15u // GPIO15
#define PIN_MISO 17u // GPIO17
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 14u // GPIO14
#define PIN_P15 15u // GPIO15
#define PIN_P16 16u // GPIO16
#define PIN_P17 17u // GPIO17
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_P28 28u // GPIO28
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 14u // GPIO14
#define PIN_D1 16u // GPIO16
#define PIN_D2 20u // GPIO20
#define PIN_D3 22u // GPIO22
#define PIN_D4 23u // GPIO23
#define PIN_D5 1u // GPIO1
#define PIN_D6 0u // GPIO0
#define PIN_D7 8u // GPIO8
#define PIN_D8 7u // GPIO7
#define PIN_D9 6u // GPIO6
#define PIN_D10 26u // GPIO26
#define PIN_D11 24u // GPIO24
#define PIN_D12 11u // GPIO11
#define PIN_D13 10u // GPIO10
#define PIN_D14 28u // GPIO28
#define PIN_D15 9u // GPIO9
#define PIN_D16 17u // GPIO17
#define PIN_D17 15u // GPIO15
#define PIN_D18 21u // GPIO21
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;
static const unsigned char D17 = PIN_D17;
static const unsigned char D18 = PIN_D18;