* **DevicetreeCompiler**
* Binding properties now support default values.
* Compiler returns meaningful exit codes and reports errors more clearly.
* Stronger validation of device configurations with unified error handling.
* Added integration tests and a dedicated Devicetree test workflow.
* **Changes**
* Platform binding schemas updated: some fields made required, others gained explicit defaults.
* Many device-tree files simplified by removing unused/placeholder pin and transfer-size entries.
* **Documentation**
* Removed several outdated TODO items.
- Implement SPI devices in dts files for all devices
- Removed `tt::hal::spi` HAL and its configurations
- Fix for devicetree generator "boolean" support
- Remove unused custom locks in all `DisplayDevice` implementations
- Fixed some bugs with devices
- Updated XPT2046 driver
- Fix for `WifiEsp` deadlock
- Export a lot of new `math.h` symbols with `tt_init.cpp`
- Created `SpiDeviceLock` in `TactilityCore` as a wrapper for kernel SPI locking
- Improved `TactilityKernel` SPI driver.
- Add kernel support for SPI driver
- Add kernel support for UART driver
- Implemented ESP32 UART kernel driver
- Update existing UART-related code in Tactility to use new kernel driver
- Remove UART from tt::hal::Configuration
- Remove tt_hal_uart functionality but keep functions for now
- Update devicetrees for UART changes
- Kernel mutex and recursive mutex: improved locking API design
- Other kernel improvements
- Added device_exists_of_type() and device_find_by_name()
* **New Features**
* Added public accessors for querying module/device start and ready state.
* **Refactor**
* Internal state moved to opaque internal objects; module/device/driver initializers now explicitly initialize internal pointers.
* Lifecycle handling updated to construct/destruct internal state and use accessors.
* **Tests**
* Tests updated to use public accessors and explicit construct/destruct lifecycle calls.
* **Chores**
* Test build/include paths and small metadata updated.