Device migrations, driver migrations and more (#575)
This commit is contained in:
committed by
GitHub
parent
2d768ef3a1
commit
2fbc44466a
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
struct Device;
|
||||
|
||||
enum class Tab5Variant {
|
||||
Unknown,
|
||||
V1, // Older variant: ILI9881C display + GT911 touch (see devices_v1.cpp)
|
||||
V2, // Newer variant (default): ST7123 display + in-cell touch (see devices_v2.cpp)
|
||||
};
|
||||
|
||||
// Populated once the device_listener callback in display_detect.cpp has detected which
|
||||
// panel/touch variant is present (gated on i2c0 + io_expander0 both reaching
|
||||
// DEVICE_EVENT_STARTED). Safe to call from Configuration.cpp's createDevices()/createTouch():
|
||||
// kernel_init() (which runs the listener to completion) always finishes before hal::init()
|
||||
// invokes createDevices().
|
||||
[[nodiscard]] Tab5Variant tab5_get_variant();
|
||||
|
||||
// Registers/unregisters the device_listener (display_detect.cpp) that detects the display/touch
|
||||
// variant, keyboard and power control devices and dynamically constructs them. Called from
|
||||
// module.cpp's start()/stop().
|
||||
void tab5_detect_start();
|
||||
void tab5_detect_stop();
|
||||
|
||||
// --- detect.cpp internals, exposed only for display_detect.cpp's on_display_detect_event() ---
|
||||
|
||||
// Records the variant found by probe_variant() below - the only writer of the state
|
||||
// getDetectedTab5Variant() reads.
|
||||
void tab5_set_variant(Tab5Variant variant);
|
||||
|
||||
// Pulses only the LCD + touch reset bits on io_expander0 (see the pinout table in
|
||||
// Configuration.cpp). The other io_expander0 pins (speaker enable, RF switch, 5V bus, camera
|
||||
// reset) are unrelated to display bring-up and stay owned by Configuration.cpp's initExpander0().
|
||||
bool pulse_display_reset_pins(Device* io_expander0);
|
||||
|
||||
// Probes i2c0 for a known touch controller address to determine which display/touch variant is
|
||||
// present. Must be called after pulse_display_reset_pins().
|
||||
Tab5Variant tab5_probe_variant(Device* i2c0);
|
||||
Reference in New Issue
Block a user