Tab5 camera + other stuff (#558)

* Tab5 camera + other stuff

Tab5 camera driver - SC2356
Custom SliderBox widget - slider with plus and minus buttons + value label and snapping
Rtc Time service + rtc api
Sdk release - only include drivers built for that specific target, eg: sc2356 driver is mipi / p4 only.
No more hardcoded manual sdk cmakelists
New function to find device by compatible string match. no more static cast bool wildness when trying to match a single device (like M5Stack PaperS3 for example)

* feedback + fixes

Fixed external app user data path.
fix(gui): block app teardown until onHide() completes, preventing ELF unload racing a still-running app
added camera device type and api

* drain the snake sssem

---------

Co-authored-by: Ken Van Hoeylandt <git@kenvanhoeylandt.net>
This commit is contained in:
Shadowtrance
2026-07-10 16:45:03 +10:00
committed by GitHub
parent 16a61a087c
commit 7a7f09be35
47 changed files with 1894 additions and 83 deletions
+9 -4
View File
@@ -52,7 +52,7 @@ static error_t stop(Device* device) {
extern "C" {
error_t bm8563_get_datetime(Device* device, Bm8563DateTime* dt) {
error_t bm8563_get_datetime(Device* device, RtcDateTime* dt) {
auto* i2c_controller = device_get_parent(device);
auto address = GET_CONFIG(device)->address;
@@ -78,7 +78,7 @@ error_t bm8563_get_datetime(Device* device, Bm8563DateTime* dt) {
return ERROR_NONE;
}
error_t bm8563_set_datetime(Device* device, const Bm8563DateTime* dt) {
error_t bm8563_set_datetime(Device* device, const RtcDateTime* dt) {
if (dt->year < 2000 || dt->year > 2199 ||
dt->month < 1 || dt->month > 12 ||
dt->day < 1 || dt->day > 31 ||
@@ -104,13 +104,18 @@ error_t bm8563_set_datetime(Device* device, const Bm8563DateTime* dt) {
return i2c_controller_write_register(i2c_controller, address, REG_SECONDS, buf, sizeof(buf), I2C_TIMEOUT_TICKS);
}
RtcApi bm8563_rtc_api = {
.get_time = bm8563_get_datetime,
.set_time = bm8563_set_datetime
};
Driver bm8563_driver = {
.name = "bm8563",
.compatible = (const char*[]) { "belling,bm8563", nullptr },
.start_device = start,
.stop_device = stop,
.api = nullptr,
.device_type = nullptr,
.api = &bm8563_rtc_api,
.device_type = &RTC_TYPE,
.owner = &bm8563_module,
.internal = nullptr
};
+1 -3
View File
@@ -21,13 +21,11 @@ static error_t stop() {
return ERROR_NONE;
}
extern const ModuleSymbol bm8563_module_symbols[];
Module bm8563_module = {
.name = "bm8563",
.start = start,
.stop = stop,
.symbols = bm8563_module_symbols,
.symbols = nullptr,
.internal = nullptr
};
-9
View File
@@ -1,9 +0,0 @@
// SPDX-License-Identifier: Apache-2.0
#include <drivers/bm8563.h>
#include <tactility/module.h>
const struct ModuleSymbol bm8563_module_symbols[] = {
DEFINE_MODULE_SYMBOL(bm8563_get_datetime),
DEFINE_MODULE_SYMBOL(bm8563_set_datetime),
MODULE_SYMBOL_TERMINATOR
};