Merge develop into main (#494)
* Updated runtime gating to enable LilyGO T-Deck specific apps and services * New device compatibility and model-detection APIs * Added a buffer-overflow error code and message * Updated GitHub Actions checkout to v4 * Adjusted an LVGL-related library version * Device config now emits a T-Deck workaround flag when applicable * Removed internal developer comments and minor cleanups
This commit is contained in:
committed by
GitHub
parent
93efadd5e3
commit
25c3f19e5d
@@ -277,6 +277,11 @@ bool device_is_ready(const struct Device* device) {
|
||||
return device->internal->state.started;
|
||||
}
|
||||
|
||||
bool device_is_compatible(const struct Device* device, const char* compatible) {
|
||||
if (device->internal->driver == nullptr) return false;
|
||||
return driver_is_compatible(device->internal->driver, compatible);
|
||||
}
|
||||
|
||||
void device_set_driver_data(struct Device* device, void* driver_data) {
|
||||
device->internal->driver_data = driver_data;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#include <tactility/device.h>
|
||||
#include <tactility/driver.h>
|
||||
#include <tactility/drivers/root.h>
|
||||
#include <cstring>
|
||||
|
||||
extern "C" {
|
||||
|
||||
bool root_is_model(const struct Device* device, const char* buffer) {
|
||||
auto* config = static_cast<const RootConfig*>(device->config);
|
||||
return strcmp(config->model, buffer) == 0;
|
||||
}
|
||||
|
||||
Driver root_driver = {
|
||||
.name = "root",
|
||||
.compatible = (const char*[]) { "root", nullptr },
|
||||
@@ -12,7 +19,8 @@ Driver root_driver = {
|
||||
.stop_device = nullptr,
|
||||
.api = nullptr,
|
||||
.device_type = nullptr,
|
||||
.owner = nullptr
|
||||
.owner = nullptr,
|
||||
.internal = nullptr
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ const char* error_to_string(error_t error) {
|
||||
return "not supported";
|
||||
case ERROR_NOT_ALLOWED:
|
||||
return "not allowed";
|
||||
case ERROR_BUFFER_OVERFLOW:
|
||||
return "buffer overflow";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <tactility/drivers/gpio_controller.h>
|
||||
#include <tactility/drivers/i2c_controller.h>
|
||||
#include <tactility/drivers/i2s_controller.h>
|
||||
#include <tactility/drivers/root.h>
|
||||
#include <tactility/drivers/spi_controller.h>
|
||||
#include <tactility/drivers/uart_controller.h>
|
||||
#include <tactility/concurrent/dispatcher.h>
|
||||
@@ -36,6 +37,7 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
|
||||
DEFINE_MODULE_SYMBOL(device_get_driver_data),
|
||||
DEFINE_MODULE_SYMBOL(device_is_added),
|
||||
DEFINE_MODULE_SYMBOL(device_is_ready),
|
||||
DEFINE_MODULE_SYMBOL(device_is_compatible),
|
||||
DEFINE_MODULE_SYMBOL(device_lock),
|
||||
DEFINE_MODULE_SYMBOL(device_try_lock),
|
||||
DEFINE_MODULE_SYMBOL(device_unlock),
|
||||
@@ -79,6 +81,8 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = {
|
||||
DEFINE_MODULE_SYMBOL(i2s_controller_get_config),
|
||||
DEFINE_MODULE_SYMBOL(i2s_controller_reset),
|
||||
DEFINE_MODULE_SYMBOL(I2S_CONTROLLER_TYPE),
|
||||
// drivers/root
|
||||
DEFINE_MODULE_SYMBOL(root_is_model),
|
||||
// drivers/spi_controller
|
||||
DEFINE_MODULE_SYMBOL(spi_controller_lock),
|
||||
DEFINE_MODULE_SYMBOL(spi_controller_try_lock),
|
||||
|
||||
Reference in New Issue
Block a user