add spi_host support

This commit is contained in:
mverch67 2024-04-29 20:47:28 +02:00
parent 5c05c81ece
commit ae82c32c29
3 changed files with 9 additions and 7 deletions

View File

@ -1,6 +1,6 @@
; The Portduino based sim environment on top of any host OS, all hardware will be simulated ; The Portduino based sim environment on top of any host OS, all hardware will be simulated
[portduino_base] [portduino_base]
platform = https://github.com/meshtastic/platform-native.git#659e49346aa33008b150dfb206b1817ddabc7132 platform = https://github.com/meshtastic/platform-native.git#2ef818943157a3ebea7cbbc283d124fb67c0ffc1
framework = arduino framework = arduino
build_src_filter = build_src_filter =

@ -1 +1 @@
Subproject commit c6f3ee6d68e8ce9acd36d95f6e810423986c7c56 Subproject commit 7a39caafd43bf2c149d9e61f2a6935b31d242044

View File

@ -679,6 +679,9 @@ void setup()
} else } else
#endif #endif
{ {
auto spiHost = [](const std::string &spidev) {
return spidev.empty() ? 0 : (spidev[11] - '0') | (spidev[13] - '0') << 4;
};
displayConfig.device(DisplayDriverConfig::device_t::CUSTOM_TFT) displayConfig.device(DisplayDriverConfig::device_t::CUSTOM_TFT)
.panel(DisplayDriverConfig::panel_config_t{.type = panels[settingsMap[displayPanel]], .panel(DisplayDriverConfig::panel_config_t{.type = panels[settingsMap[displayPanel]],
.panel_width = (uint16_t)settingsMap[displayWidth], .panel_width = (uint16_t)settingsMap[displayWidth],
@ -693,16 +696,15 @@ void setup()
.rgb_order = (bool)settingsMap[displayRGBOrder]}) .rgb_order = (bool)settingsMap[displayRGBOrder]})
.bus(DisplayDriverConfig::bus_config_t{.freq_write = (uint32_t)settingsMap[displayBusFrequency], .bus(DisplayDriverConfig::bus_config_t{.freq_write = (uint32_t)settingsMap[displayBusFrequency],
.freq_read = 16000000, .freq_read = 16000000,
.spi{ .spi{.pin_dc = (int8_t)settingsMap[displayDC],
.pin_dc = (int8_t)settingsMap[displayDC], .use_lock = true, .use_lock = true,
// .spi_host = 0 // TODO: .spi_host = (uint16_t)spiHost(settingsStrings[displayspidev])}})
}})
.touch(DisplayDriverConfig::touch_config_t{.type = touch[settingsMap[touchscreenModule]], .touch(DisplayDriverConfig::touch_config_t{.type = touch[settingsMap[touchscreenModule]],
.freq = (uint32_t)settingsMap[touchscreenBusFrequency], .freq = (uint32_t)settingsMap[touchscreenBusFrequency],
.pin_int = (int16_t)settingsMap[touchscreenIRQ], .pin_int = (int16_t)settingsMap[touchscreenIRQ],
.offset_rotation = (uint8_t)settingsMap[touchscreenRotate], .offset_rotation = (uint8_t)settingsMap[touchscreenRotate],
.spi{ .spi{
.spi_host = 0, // TODO: .spi_host = (int8_t)spiHost(settingsStrings[touchscreenspidev]),
}, },
.pin_cs = (int16_t)settingsMap[touchscreenCS]}) .pin_cs = (int16_t)settingsMap[touchscreenCS]})
.light(DisplayDriverConfig::light_config_t{.pin_bl = (int16_t)settingsMap[displayBacklight], .light(DisplayDriverConfig::light_config_t{.pin_bl = (int16_t)settingsMap[displayBacklight],