aboutsummaryrefslogtreecommitdiff
path: root/drivers/painter/comms/qp_comms_spi.c
diff options
context:
space:
mode:
authorNick Brassel <[email protected]>2023-11-28 16:39:48 +1100
committerNick Brassel <[email protected]>2023-11-28 16:40:47 +1100
commit0115951de12bd4c798a43a380651c34552552e85 (patch)
tree62999011ae782d93aa6dc9c889615db2a840cafc /drivers/painter/comms/qp_comms_spi.c
parent0379d1f59e58cefa18cdb72ba1b77507d1108ae6 (diff)
parent4d99e0a23cff02f4c6e55e093b5de08a9be0df7c (diff)
downloadqmk_firmware-0.23.0.tar.gz
qmk_firmware-0.23.0.zip
`develop` -> `master`, 2023q4 edition0.23.0
Diffstat (limited to 'drivers/painter/comms/qp_comms_spi.c')
-rw-r--r--drivers/painter/comms/qp_comms_spi.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c
index 7534e844d8..9f52bc7d1f 100644
--- a/drivers/painter/comms/qp_comms_spi.c
+++ b/drivers/painter/comms/qp_comms_spi.c
@@ -105,13 +105,21 @@ void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
}
void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
for (size_t i = 0; i < sequence_len;) {
uint8_t command = sequence[i];
uint8_t delay = sequence[i + 1];
uint8_t num_bytes = sequence[i + 2];
qp_comms_spi_dc_reset_send_command(device, command);
if (num_bytes > 0) {
- qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes);
+ if (comms_config->command_params_uses_command_pin) {
+ for (uint8_t j = 0; j < num_bytes; j++) {
+ qp_comms_spi_dc_reset_send_command(device, sequence[i + 3 + j]);
+ }
+ } else {
+ qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes);
+ }
}
if (delay > 0) {
wait_ms(delay);