Ultibo API
C/C++ API for Ultibo Core
Loading...
Searching...
No Matches
goodixtouch.h File Reference
#include "ultibo/gpio.h"
#include "ultibo/i2c.h"
#include "ultibo/touch.h"

Go to the source code of this file.

Data Structures

struct  _GOODIX_TOUCH

Macros

#define GOODIX_TOUCH_DESCRIPTION   "Goodix Touch Controller"
 Description of Goodix Touch device.
#define GOODIX_MAX_HEIGHT   4096
#define GOODIX_MAX_WIDTH   4096
#define GOODIX_INT_TRIGGER   1
#define GOODIX_CONTACT_SIZE   8
#define GOODIX_MAX_CONTACT_SIZE   9
#define GOODIX_MAX_CONTACTS   10
#define GOODIX_MAX_KEYS   7
#define GOODIX_CONFIG_MIN_LENGTH   186
#define GOODIX_CONFIG_911_LENGTH   186
#define GOODIX_CONFIG_967_LENGTH   228
#define GOODIX_CONFIG_GT9X_LENGTH   240
#define GOODIX_CONFIG_MAX_LENGTH   240
#define GOODIX_I2C_RATE   400000
 Default I2C clock rate.
#define GOODIX_CONFIG_TIMEOUT   3000
 Timeout to wait for firmware ready.
#define GOODIX_REG_COMMAND   0x8040
#define GOODIX_CMD_SCREEN_OFF   0x05
#define GOODIX_READ_COOR_ADDR   0x814E
#define GOODIX_GT1X_REG_CONFIG_DATA   0x8050
#define GOODIX_GT9X_REG_CONFIG_DATA   0x8047
#define GOODIX_REG_ID   0x8140
#define GOODIX_BUFFER_STATUS_READY   (1 << 7)
#define GOODIX_HAVE_KEY   (1 << 4)
#define GOODIX_BUFFER_STATUS_TIMEOUT   20
#define GOODIX_ID_MAX_LEN   4
#define GOODIX_RESOLUTION_OFFSET   1
#define GOODIX_MAX_CONTACTS_OFFSET   5
#define GOODIX_TRIGGER_OFFSET   6

Typedefs

typedef struct _GOODIX_TOUCH GOODIX_TOUCH
typedef uint8_t GOODIX_POINT_DATA[2+GOODIX_MAX_CONTACT_SIZE *GOODIX_MAX_CONTACTS]

Functions

void STDCALL goodix_init (void)
TOUCH_DEVICE *STDCALL goodix_touch_create (I2C_DEVICE *i2c, uint16_t address, uint32_t width, uint32_t height, GPIO_INFO *irq, GPIO_INFO *rst)
 Create, register and start a new Goodix Touch device connected to the specified I2C device.
uint32_t STDCALL goodix_touch_destroy (TOUCH_DEVICE *touch)
 Stop, deregister and destroy a Goodix Touch device created by this driver.

Macro Definition Documentation

◆ GOODIX_TOUCH_DESCRIPTION

#define GOODIX_TOUCH_DESCRIPTION   "Goodix Touch Controller"

Description of Goodix Touch device.

Goodix specific constants

◆ GOODIX_MAX_HEIGHT

#define GOODIX_MAX_HEIGHT   4096

◆ GOODIX_MAX_WIDTH

#define GOODIX_MAX_WIDTH   4096

◆ GOODIX_INT_TRIGGER

#define GOODIX_INT_TRIGGER   1

◆ GOODIX_CONTACT_SIZE

#define GOODIX_CONTACT_SIZE   8

◆ GOODIX_MAX_CONTACT_SIZE

#define GOODIX_MAX_CONTACT_SIZE   9

◆ GOODIX_MAX_CONTACTS

#define GOODIX_MAX_CONTACTS   10

◆ GOODIX_MAX_KEYS

#define GOODIX_MAX_KEYS   7

◆ GOODIX_CONFIG_MIN_LENGTH

#define GOODIX_CONFIG_MIN_LENGTH   186

◆ GOODIX_CONFIG_911_LENGTH

#define GOODIX_CONFIG_911_LENGTH   186

◆ GOODIX_CONFIG_967_LENGTH

#define GOODIX_CONFIG_967_LENGTH   228

◆ GOODIX_CONFIG_GT9X_LENGTH

#define GOODIX_CONFIG_GT9X_LENGTH   240

◆ GOODIX_CONFIG_MAX_LENGTH

#define GOODIX_CONFIG_MAX_LENGTH   240

◆ GOODIX_I2C_RATE

#define GOODIX_I2C_RATE   400000

Default I2C clock rate.

Goodix I2C constants

◆ GOODIX_CONFIG_TIMEOUT

#define GOODIX_CONFIG_TIMEOUT   3000

Timeout to wait for firmware ready.

◆ GOODIX_REG_COMMAND

#define GOODIX_REG_COMMAND   0x8040

Goodix register constants

◆ GOODIX_CMD_SCREEN_OFF

#define GOODIX_CMD_SCREEN_OFF   0x05

◆ GOODIX_READ_COOR_ADDR

#define GOODIX_READ_COOR_ADDR   0x814E

◆ GOODIX_GT1X_REG_CONFIG_DATA

#define GOODIX_GT1X_REG_CONFIG_DATA   0x8050

◆ GOODIX_GT9X_REG_CONFIG_DATA

#define GOODIX_GT9X_REG_CONFIG_DATA   0x8047

◆ GOODIX_REG_ID

#define GOODIX_REG_ID   0x8140

◆ GOODIX_BUFFER_STATUS_READY

#define GOODIX_BUFFER_STATUS_READY   (1 << 7)

◆ GOODIX_HAVE_KEY

#define GOODIX_HAVE_KEY   (1 << 4)

◆ GOODIX_BUFFER_STATUS_TIMEOUT

#define GOODIX_BUFFER_STATUS_TIMEOUT   20

◆ GOODIX_ID_MAX_LEN

#define GOODIX_ID_MAX_LEN   4

◆ GOODIX_RESOLUTION_OFFSET

#define GOODIX_RESOLUTION_OFFSET   1

◆ GOODIX_MAX_CONTACTS_OFFSET

#define GOODIX_MAX_CONTACTS_OFFSET   5

◆ GOODIX_TRIGGER_OFFSET

#define GOODIX_TRIGGER_OFFSET   6

Typedef Documentation

◆ GOODIX_TOUCH

typedef struct _GOODIX_TOUCH GOODIX_TOUCH

Goodix specific types

◆ GOODIX_POINT_DATA

typedef uint8_t GOODIX_POINT_DATA[2+GOODIX_MAX_CONTACT_SIZE *GOODIX_MAX_CONTACTS]

Function Documentation

◆ goodix_init()

void STDCALL goodix_init ( void )

Initialization Functions

◆ goodix_touch_create()

TOUCH_DEVICE *STDCALL goodix_touch_create ( I2C_DEVICE * i2c,
uint16_t address,
uint32_t width,
uint32_t height,
GPIO_INFO * irq,
GPIO_INFO * rst )

Create, register and start a new Goodix Touch device connected to the specified I2C device.

Goodix Functions

Parameters
I2CThe I2C device this Goodix Touch device is connected to
AddressThe I2C address for this Goodix Touch device
WidthThe width of the screen in pixels (When set at TOUCH_ROTATION_0)
HeightThe height of the screen in pixels (When set at TOUCH_ROTATION_0)
IRQThe GPIO information for the IRQ line (Optional)
Returns
Pointer to the new Touch device or nil on failure

◆ goodix_touch_destroy()

uint32_t STDCALL goodix_touch_destroy ( TOUCH_DEVICE * touch)

Stop, deregister and destroy a Goodix Touch device created by this driver.

Parameters
TouchThe Touch device to destroy
Returns
ERROR_SUCCESS if completed or another error code on failure