Skip to content

Commit

Permalink
[TouchDrvCSTxxx] Add TouchDrvCSTxxx to support CST9220,CST9217 models
Browse files Browse the repository at this point in the history
  • Loading branch information
lewisxhe committed Nov 25, 2024
1 parent 2d3a647 commit ea53459
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 10 deletions.
40 changes: 40 additions & 0 deletions src/TouchDrvCSTXXX.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "REG/CSTxxxConstants.h"
#include "touch/TouchClassCST226.h"
#include "touch/TouchClassCST816.h"
#include "touch/TouchDrvCST92xx.h"
#include "SensorCommon.tpp"

class TouchDrvCSTXXX : public TouchDrvInterface
Expand Down Expand Up @@ -77,6 +78,16 @@ class TouchDrvCSTXXX : public TouchDrvInterface
}
}

if (!drv) {
drv = new TouchDrvCST92xx();
drv->setGpioCallback(__set_gpio_mode, __set_gpio_level, __get_gpio_level);
drv->setPins(__rst, __irq);
if (!drv->begin(wire, address, sda, scl)) {
delete drv;
drv = NULL;
}
}

return drv != NULL;
}
#elif defined(ESP_PLATFORM)
Expand All @@ -102,6 +113,16 @@ class TouchDrvCSTXXX : public TouchDrvInterface
drv = NULL;
}
}

if (!drv) {
drv = new TouchDrvCST92xx();
drv->setGpioCallback(__set_gpio_mode, __set_gpio_level, __get_gpio_level);
drv->setPins(__rst, __irq);
if (!drv->begin(i2c_dev_bus_handle, addr)) {
delete drv;
drv = NULL;
}
}
return drv != NULL;
}
#else
Expand All @@ -126,6 +147,16 @@ class TouchDrvCSTXXX : public TouchDrvInterface
drv = NULL;
}
}

if (!drv) {
drv = new TouchDrvCST92xx();
drv->setGpioCallback(__set_gpio_mode, __set_gpio_level, __get_gpio_level);
drv->setPins(__rst, __irq);
if (!drv->begin(port_num, addr, sda, scl)) {
delete drv;
drv = NULL;
}
}
return drv != NULL;
}
#endif //ESP_IDF_VERSION
Expand Down Expand Up @@ -163,6 +194,15 @@ class TouchDrvCSTXXX : public TouchDrvInterface
}
}

if (!drv) {
drv = new TouchDrvCST92xx();
drv->setGpioCallback(__set_gpio_mode, __set_gpio_level, __get_gpio_level);
drv->setPins(__rst, __irq);
if (!drv->begin(address, readRegCallback, writeRegCallback)) {
delete drv;
drv = NULL;
}
}
return drv != NULL;
}

Expand Down
20 changes: 10 additions & 10 deletions src/TouchDrvCST92xx.cpp → src/touch/TouchDrvCST92xx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1150,20 +1150,20 @@ bool TouchDrvCST92xx::initImpl()

}

if (__jump_check) {

reset();
// Exit Boot Mode
reset();

// Wait for a while after reset
delay(120);
// Wait for a while after reset
delay(120);

retry = 3;
retry = 3;

while (!this->probe()) {
log_e("Device not found!");
delay(120);
}
while (!this->probe()) {
log_e("Device not found!");
delay(120);
}

log_e("Exit boot mode successfully.");

if (chipType != CST9220_CHIP_ID && chipType != CST9217_CHIP_ID) {
return false;
Expand Down
File renamed without changes.

0 comments on commit ea53459

Please sign in to comment.