Driver improvements (#535)
- New drivers: - SD SPI - spi_peripheral - touch_placeholder - display_placeholder - Devicetree compiler: - Implement phandle-arrays - Implement device addresses - Add placeholder drivers to all devices with a SPI display - SPI driver: add `cs-pins` and set them to high on driver start - FileSystem: add `file_system_set_owner()` and `file_system_get_owner()` - File locking is now checking if the related `FileSystem` is part of a shared SPI bus - Add `device_get_child_count()` - SDMMC driver: Remove default of `slot` value - Fix for Crowpanel Basic 3.5" display (add delay to booting) - Fix for LilyGO T-HMI SD card mounting (delayed mounting by disabling it initially in the dts)
This commit is contained in:
committed by
GitHub
parent
e50659a3fb
commit
599fa46766
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#include <algorithm>
|
||||
#include <tactility/device.h>
|
||||
#include <tactility/concurrent/mutex.h>
|
||||
#include <tactility/concurrent/recursive_mutex.h>
|
||||
#include <tactility/filesystem/file_system.h>
|
||||
@@ -10,6 +11,7 @@
|
||||
struct FileSystem {
|
||||
const FileSystemApi* api;
|
||||
void* data;
|
||||
Device* owner;
|
||||
};
|
||||
|
||||
// Global list of file systems and its mutex
|
||||
@@ -42,6 +44,7 @@ FileSystem* file_system_add(const FileSystemApi* fs_api, void* data) {
|
||||
check(fs != nullptr);
|
||||
fs->api = fs_api;
|
||||
fs->data = data;
|
||||
fs->owner = nullptr;
|
||||
ledger.file_systems.push_back(fs);
|
||||
|
||||
ledger.unlock();
|
||||
@@ -90,4 +93,12 @@ error_t file_system_get_path(FileSystem* fs, char* out_path, size_t out_path_siz
|
||||
return fs->api->get_path(fs->data, out_path, out_path_size);
|
||||
}
|
||||
|
||||
void file_system_set_owner(FileSystem* fs, Device* owner) {
|
||||
fs->owner = owner;
|
||||
}
|
||||
|
||||
Device* file_system_get_owner(FileSystem* fs) {
|
||||
return fs->owner;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user