- Refactor `AppManifest`: add new fields and rename existing ones - Parse and validate the manifest from an app that is being installed. - Remove deprecated `scoped()` from `Lock` - Create `Tactility/Paths.h` - App loading at boot now properly parses the manifest files of external apps - Properly lock both source and destination locations during app install - Remove LVGL path variants from `AppPaths` and `ServicePaths` - Removed `xPath` base classes for apps and services. There's now `AppPaths` and `ServicePaths`. - Renamed app and service paths: "data" and "system" paths are now "user data" and "assets"
91 lines
2.6 KiB
C++
91 lines
2.6 KiB
C++
#include "CYD4848S040C.h"
|
|
|
|
#include "Tactility/kernel/SystemEvents.h"
|
|
#include "Tactility/lvgl/LvglSync.h"
|
|
#include "devices/St7701Display.h"
|
|
#include "devices/SdCard.h"
|
|
|
|
#include <PwmBacklight.h>
|
|
|
|
using namespace tt::hal;
|
|
|
|
static bool initBoot() {
|
|
return driver::pwmbacklight::init(GPIO_NUM_38, 1000);
|
|
}
|
|
|
|
static DeviceVector createDevices() {
|
|
return {
|
|
std::make_shared<St7701Display>(),
|
|
createSdCard()
|
|
};
|
|
}
|
|
|
|
const Configuration cyd_4848s040c_config = {
|
|
.initBoot = initBoot,
|
|
.createDevices = createDevices,
|
|
.i2c = {
|
|
//Touch
|
|
i2c::Configuration {
|
|
.name = "Internal",
|
|
.port = I2C_NUM_0,
|
|
.initMode = i2c::InitMode::ByTactility,
|
|
.isMutable = true,
|
|
.config = (i2c_config_t) {
|
|
.mode = I2C_MODE_MASTER,
|
|
.sda_io_num = GPIO_NUM_19,
|
|
.scl_io_num = GPIO_NUM_45,
|
|
.sda_pullup_en = true,
|
|
.scl_pullup_en = true,
|
|
.master = {
|
|
.clk_speed = 400000
|
|
},
|
|
.clk_flags = 0
|
|
}
|
|
},
|
|
//H1 header,
|
|
i2c::Configuration {
|
|
.name = "External",
|
|
.port = I2C_NUM_1,
|
|
.initMode = i2c::InitMode::Disabled,
|
|
.isMutable = true,
|
|
.config = (i2c_config_t) {
|
|
.mode = I2C_MODE_MASTER,
|
|
.sda_io_num = GPIO_NUM_NC,
|
|
.scl_io_num = GPIO_NUM_NC,
|
|
.sda_pullup_en = false,
|
|
.scl_pullup_en = false,
|
|
.master = {
|
|
.clk_speed = 400000
|
|
},
|
|
.clk_flags = 0
|
|
}
|
|
}
|
|
},
|
|
.spi {
|
|
// SD Card & display init
|
|
spi::Configuration {
|
|
.device = SPI2_HOST,
|
|
.dma = SPI_DMA_CH_AUTO,
|
|
.config = {
|
|
.mosi_io_num = GPIO_NUM_47,
|
|
.miso_io_num = GPIO_NUM_41,
|
|
.sclk_io_num = GPIO_NUM_48,
|
|
.quadwp_io_num = -1,
|
|
.quadhd_io_num = GPIO_NUM_42,
|
|
.data4_io_num = -1,
|
|
.data5_io_num = -1,
|
|
.data6_io_num = -1,
|
|
.data7_io_num = -1,
|
|
.data_io_default_level = false,
|
|
.max_transfer_sz = 1024 * 128,
|
|
.flags = 0,
|
|
.isr_cpu_id = ESP_INTR_CPU_AFFINITY_AUTO,
|
|
.intr_flags = 0
|
|
},
|
|
.initMode = spi::InitMode::ByTactility,
|
|
.isMutable = false,
|
|
.lock = tt::lvgl::getSyncLock()
|
|
}
|
|
}
|
|
};
|