blob: c54dcdfc1b3ed2b062514d8a5f053391c4471537 [file] [log] [blame]
/*
* Copyright (c) 2021 Hubert Miś
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief FT8XX reference API
*/
#ifndef ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_REFERENCE_API_H_
#define ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_REFERENCE_API_H_
#include <stdint.h>
#include <zephyr/drivers/misc/ft8xx/ft8xx_copro.h>
#include <zephyr/drivers/misc/ft8xx/ft8xx_common.h>
#include <zephyr/drivers/misc/ft8xx/ft8xx_dl.h>
#include <zephyr/drivers/misc/ft8xx/ft8xx_memory.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief FT8xx reference API
*
* API defined according to FT800 Programmers Guide API reference definition.
*
* @note Function names defined in this header may easily collide with names
* provided by other modules. Include this header with caution. If naming
* conflict occurs instead of including this header, use @c ft8xx_
* prefixed names.
*
* @defgroup ft8xx_reference_api FT8xx reference API
* @ingroup ft8xx_interface
* @{
*/
/**
* @brief Write 1 byte (8 bits) to FT8xx memory
*
* @param address Memory address to write to
* @param data Byte to write
*/
static inline void wr8(uint32_t address, uint8_t data)
{
ft8xx_wr8(address, data);
}
/**
* @brief Write 2 bytes (16 bits) to FT8xx memory
*
* @param address Memory address to write to
* @param data Value to write
*/
static inline void wr16(uint32_t address, uint16_t data)
{
ft8xx_wr16(address, data);
}
/**
* @brief Write 4 bytes (32 bits) to FT8xx memory
*
* @param address Memory address to write to
* @param data Value to write
*/
static inline void wr32(uint32_t address, uint32_t data)
{
ft8xx_wr32(address, data);
}
/**
* @brief Read 1 byte (8 bits) from FT8xx memory
*
* @param address Memory address to read from
*
* @return Value read from memory
*/
static inline uint8_t rd8(uint32_t address)
{
return ft8xx_rd8(address);
}
/**
* @brief Read 2 bytes (16 bits) from FT8xx memory
*
* @param address Memory address to read from
*
* @return Value read from memory
*/
static inline uint16_t rd16(uint32_t address)
{
return ft8xx_rd16(address);
}
/**
* @brief Read 4 bytes (32 bits) from FT8xx memory
*
* @param address Memory address to read from
*
* @return Value read from memory
*/
static inline uint32_t rd32(uint32_t address)
{
return ft8xx_rd32(address);
}
/** Co-processor widget is drawn in 3D effect */
#define OPT_3D FT8XX_OPT_3D
/** Co-processor option to decode the JPEG image to RGB565 format */
#define OPT_RGB565 FT8XX_OPT_RGB565
/** Co-processor option to decode the JPEG image to L8 format, i.e., monochrome */
#define OPT_MONO FT8XX_OPT_MONO
/** No display list commands generated for bitmap decoded from JPEG image */
#define OPT_NODL FT8XX_OPT_NODL
/** Co-processor widget is drawn without 3D effect */
#define OPT_FLAT FT8XX_OPT_FLAT
/** The number is treated as 32 bit signed integer */
#define OPT_SIGNED FT8XX_OPT_SIGNED
/** Co-processor widget centers horizontally */
#define OPT_CENTERX FT8XX_OPT_CENTERX
/** Co-processor widget centers vertically */
#define OPT_CENTERY FT8XX_OPT_CENTERY
/** Co-processor widget centers horizontally and vertically */
#define OPT_CENTER FT8XX_OPT_CENTER
/** The label on the Coprocessor widget is right justified */
#define OPT_RIGHTX FT8XX_OPT_RIGHTX
/** Co-processor widget has no background drawn */
#define OPT_NOBACK FT8XX_OPT_NOBACK
/** Co-processor clock widget is drawn without hour ticks.
* Gauge widget is drawn without major and minor ticks.
*/
#define OPT_NOTICKS FT8XX_OPT_NOTICKS
/** Co-processor clock widget is drawn without hour and minutes hands,
* only seconds hand is drawn
*/
#define OPT_NOHM FT8XX_OPT_NOHM
/** The Co-processor gauge has no pointer */
#define OPT_NOPOINTER FT8XX_OPT_NOPOINTER
/** Co-processor clock widget is drawn without seconds hand */
#define OPT_NOSECS FT8XX_OPT_NOSECS
/** Co-processor clock widget is drawn without hour, minutes and seconds hands */
#define OPT_NOHANDS FT8XX_OPT_NOHANDS
/**
* @brief Execute a display list command by co-processor engine
*
* @param command Display list command to execute
*/
static inline void cmd(uint32_t command)
{
ft8xx_copro_cmd(command);
}
/**
* @brief Start a new display list
*/
static inline void cmd_dlstart(void)
{
ft8xx_copro_cmd_dlstart();
}
/**
* @brief Swap the current display list
*/
static inline void cmd_swap(void)
{
ft8xx_copro_cmd_swap();
}
/**
* @brief Draw text
*
* By default (x,y) is the top-left pixel of the text and the value of
* @p options is zero. OPT_CENTERX centers the text horizontally, OPT_CENTERY
* centers it vertically. OPT_CENTER centers the text in both directions.
* OPT_RIGHTX right-justifies the text, so that the x is the rightmost pixel.
*
* @param x x-coordinate of text base, in pixels
* @param y y-coordinate of text base, in pixels
* @param font Font to use for text, 0-31. 16-31 are ROM fonts
* @param options Options to apply
* @param s Character string to display, terminated with a null character
*/
static inline void cmd_text(int16_t x,
int16_t y,
int16_t font,
uint16_t options,
const char *s)
{
ft8xx_copro_cmd_text(x, y, font, options, s);
}
/**
* @brief Draw a decimal number
*
* By default (@p x, @p y) is the top-left pixel of the text. OPT_CENTERX
* centers the text horizontally, OPT_CENTERY centers it vertically. OPT_CENTER
* centers the text in both directions. OPT_RIGHTX right-justifies the text, so
* that the @p x is the rightmost pixel. By default the number is displayed
* with no leading zeroes, but if a width 1-9 is specified in the @p options,
* then the number is padded if necessary with leading zeroes so that it has
* the given width. If OPT_SIGNED is given, the number is treated as signed,
* and prefixed by a minus sign if negative.
*
* @param x x-coordinate of text base, in pixels
* @param y y-coordinate of text base, in pixels
* @param font Font to use for text, 0-31. 16-31 are ROM fonts
* @param options Options to apply
* @param n The number to display.
*/
static inline void cmd_number(int16_t x,
int16_t y,
int16_t font,
uint16_t options,
int32_t n)
{
ft8xx_copro_cmd_number(x, y, font, options, n);
}
/**
* @brief Execute the touch screen calibration routine
*
* The calibration procedure collects three touches from the touch screen, then
* computes and loads an appropriate matrix into REG_TOUCH_TRANSFORM_A-F. To
* use it, create a display list and then use CMD_CALIBRATE. The co-processor
* engine overlays the touch targets on the current display list, gathers the
* calibration input and updates REG_TOUCH_TRANSFORM_A-F.
*
* @param result Calibration result, written with 0 on failure of calibration
*/
static inline void cmd_calibrate(uint32_t *result)
{
ft8xx_copro_cmd_calibrate(result);
}
/** Rectangular pixel arrays, in various color formats */
#define BITMAPS FT8XX_BITMAPS
/** Anti-aliased points, point radius is 1-256 pixels */
#define POINTS FT8XX_POINTS
/**
* Anti-aliased lines, with width from 0 to 4095 1/16th of pixel units.
* (width is from center of the line to boundary)
*/
#define LINES FT8XX_LINES
/** Anti-aliased lines, connected head-to-tail */
#define LINE_STRIP FT8XX_LINE_STRIP
/** Edge strips for right */
#define EDGE_STRIP_R FT8XX_EDGE_STRIP_R
/** Edge strips for left */
#define EDGE_STRIP_L FT8XX_EDGE_STRIP_L
/** Edge strips for above */
#define EDGE_STRIP_A FT8XX_EDGE_STRIP_A
/** Edge strips for below */
#define EDGE_STRIP_B FT8XX_EDGE_STRIP_B
/**
* Round-cornered rectangles, curvature of the corners can be adjusted using
* LINE_WIDTH
*/
#define RECTS FT8XX_RECTS
/**
* @brief Begin drawing a graphics primitive
*
* The valid primitives are defined as:
* - @ref BITMAPS
* - @ref POINTS
* - @ref LINES
* - @ref LINE_STRIP
* - @ref EDGE_STRIP_R
* - @ref EDGE_STRIP_L
* - @ref EDGE_STRIP_A
* - @ref EDGE_STRIP_B
* - @ref RECTS
*
* The primitive to be drawn is selected by the @ref BEGIN command. Once the
* primitive is selected, it will be valid till the new primitive is selected
* by the @ref BEGIN command.
*
* @note The primitive drawing operation will not be performed until
* @ref VERTEX2II or @ref VERTEX2F is executed.
*
* @param prim Graphics primitive
*/
#define BEGIN(prim) FT8XX_BEGIN(prim)
/**
* @brief Clear buffers to preset values
*
* Setting @p c to true will clear the color buffer of the FT8xx to the preset
* value. Setting this bit to false will maintain the color buffer of the FT8xx
* with an unchanged value. The preset value is defined in command
* @ref CLEAR_COLOR_RGB for RGB channel and CLEAR_COLOR_A for alpha channel.
*
* Setting @p s to true will clear the stencil buffer of the FT8xx to the preset
* value. Setting this bit to false will maintain the stencil buffer of the
* FT8xx with an unchanged value. The preset value is defined in command
* CLEAR_STENCIL.
*
* Setting @p t to true will clear the tag buffer of the FT8xx to the preset
* value. Setting this bit to false will maintain the tag buffer of the FT8xx
* with an unchanged value. The preset value is defined in command CLEAR_TAG.
*
* @param c Clear color buffer
* @param s Clear stencil buffer
* @param t Clear tag buffer
*/
#define CLEAR(c, s, t) FT8XX_CLEAR(c, s, t)
/**
* @brief Specify clear values for red, green and blue channels
*
* Sets the color values used by a following @ref CLEAR.
*
* @param red Red value used when the color buffer is cleared
* @param green Green value used when the color buffer is cleared
* @param blue Blue value used when the color buffer is cleared
*/
#define CLEAR_COLOR_RGB(red, green, blue) FT8XX_CLEAR_COLOR_RGB(red, green, blue)
/**
* @brief Set the current color red, green and blue
*
* Sets red, green and blue values of the FT8xx color buffer which will be
* applied to the following draw operation.
*
* @param red Red value for the current color
* @param green Green value for the current color
* @param blue Blue value for the current color
*/
#define COLOR_RGB(red, green, blue) FT8XX_COLOR_RGB(red, green, blue)
/**
* @brief End the display list
*
* FT8xx will ignore all the commands following this command.
*/
#define DISPLAY() FT8XX_DISPLAY()
/**
* @brief End drawing a graphics primitive
*
* It is recommended to have an @ref END for each @ref BEGIN. Whereas advanced
* users can avoid the usage of @ref END in order to save extra graphics
* instructions in the display list RAM.
*/
#define END() FT8XX_END()
/**
* @brief Specify the width of lines to be drawn with primitive @ref LINES
*
* Sets the width of drawn lines. The width is the distance from the center of
* the line to the outermost drawn pixel, in units of 1/16 pixel. The valid
* range is from 16 to 4095 in terms of 1/16th pixel units.
*
* @note The @ref LINE_WIDTH command will affect the @ref LINES,
* @ref LINE_STRIP, @ref RECTS, @ref EDGE_STRIP_A /B/R/L primitives.
*
* @param width Line width in 1/16 pixel
*/
#define LINE_WIDTH(width) FT8XX_LINE_WIDTH(width)
/**
* @brief Attach the tag value for the following graphics objects.
*
* The initial value of the tag buffer of the FT8xx is specified by command
* CLEAR_TAG and taken effect by command @ref CLEAR. @ref TAG command can
* specify the value of the tag buffer of the FT8xx that applies to the graphics
* objects when they are drawn on the screen. This @ref TAG value will be
* assigned to all the following objects, unless the TAG_MASK command is used to
* disable it. Once the following graphics objects are drawn, they are attached
* with the tag value successfully. When the graphics objects attached with the
* tag value are touched, the register @ref REG_TOUCH_TAG will be updated with
* the tag value of the graphics object being touched. If there is no @ref TAG
* commands in one display list, all the graphics objects rendered by the
* display list will report tag value as 255 in @ref REG_TOUCH_TAG when they
* were touched.
*
* @param s Tag value 1-255
*/
#define TAG(s) FT8XX_TAG(s)
/**
* @brief Start the operation of graphics primitives at the specified coordinate
*
* The range of coordinates is from -16384 to +16383 in terms of 1/16th pixel
* units. The negative x coordinate value means the coordinate in the left
* virtual screen from (0, 0), while the negative y coordinate value means the
* coordinate in the upper virtual screen from (0, 0). If drawing on the
* negative coordinate position, the drawing operation will not be visible.
*
* @param x Signed x-coordinate in 1/16 pixel precision
* @param y Signed y-coordinate in 1/16 pixel precision
*/
#define VERTEX2F(x, y) FT8XX_VERTEX2F(x, y)
/**
* @brief Start the operation of graphics primitive at the specified coordinates
*
* The valid range of @p handle is from 0 to 31. From 16 to 31 the bitmap handle
* is dedicated to the FT8xx built-in font.
*
* Cell number is the index of bitmap with same bitmap layout and format.
* For example, for handle 31, the cell 65 means the character "A" in the
* largest built in font.
*
* @param x x-coordinate in pixels, from 0 to 511
* @param y y-coordinate in pixels, from 0 to 511
* @param handle Bitmap handle
* @param cell Cell number
*/
#define VERTEX2II(x, y, handle, cell) FT8XX_VERTEX2II(x, y, handle, cell)
#if defined(CONFIG_FT800)
/** Main parts of FT800 memory map */
enum ft8xx_memory_map_t {
RAM_G = FT800_RAM_G,
ROM_CHIPID = FT800_ROM_CHIPID,
ROM_FONT = FT800_ROM_FONT,
ROM_FONT_ADDR = FT800_ROM_FONT_ADDR,
RAM_DL = FT800_RAM_DL,
RAM_PAL = FT800_RAM_PAL,
REG_ = FT800_REG_,
RAM_CMD = FT800_RAM_CMD
};
#else /* Definition of FT810 memory map */
/** Main parts of FT810 memory map */
enum ft8xx_memory_map_t {
RAM_G = FT810_RAM_G,
RAM_DL = FT810_RAM_DL,
REG_ = FT810_REG_,
RAM_CMD = FT810_RAM_CMD
};
#endif
#if defined(CONFIG_FT800)
/** FT800 register addresses */
enum ft8xx_register_address_t {
REG_ID = FT800_REG_ID,
REG_FRAMES = FT800_REG_FRAMES,
REG_CLOCK = FT800_REG_CLOCK,
REG_FREQUENCY = FT800_REG_FREQUENCY,
REG_RENDERMODE = FT800_REG_RENDERMODE,
REG_SNAPY = FT800_REG_SNAPY,
REG_SNAPSHOT = FT800_REG_SNAPSHOT,
REG_CPURESET = FT800_REG_CPURESET,
REG_TAP_CRC = FT800_REG_TAP_CRC,
REG_TAP_MASK = FT800_REG_TAP_MASK,
REG_HCYCLE = FT800_REG_HCYCLE,
REG_HOFFSET = FT800_REG_HOFFSET,
REG_HSIZE = FT800_REG_HSIZE,
REG_HSYNC0 = FT800_REG_HSYNC0,
REG_HSYNC1 = FT800_REG_HSYNC1,
REG_VCYCLE = FT800_REG_VCYCLE,
REG_VOFFSET = FT800_REG_VOFFSET,
REG_VSIZE = FT800_REG_VSIZE,
REG_VSYNC0 = FT800_REG_VSYNC0,
REG_VSYNC1 = FT800_REG_VSYNC1,
REG_DLSWAP = FT800_REG_DLSWAP,
REG_ROTATE = FT800_REG_ROTATE,
REG_OUTBITS = FT800_REG_OUTBITS,
REG_DITHER = FT800_REG_DITHER,
REG_SWIZZLE = FT800_REG_SWIZZLE,
REG_CSPREAD = FT800_REG_CSPREAD,
REG_PCLK_POL = FT800_REG_PCLK_POL,
REG_PCLK = FT800_REG_PCLK,
REG_TAG_X = FT800_REG_TAG_X,
REG_TAG_Y = FT800_REG_TAG_Y,
REG_TAG = FT800_REG_TAG,
REG_VOL_PB = FT800_REG_VOL_PB,
REG_VOL_SOUND = FT800_REG_VOL_SOUND,
REG_SOUND = FT800_REG_SOUND,
REG_PLAY = FT800_REG_PLAY,
REG_GPIO_DIR = FT800_REG_GPIO_DIR,
REG_GPIO = FT800_REG_GPIO,
REG_INT_FLAGS = FT800_REG_INT_FLAGS,
REG_INT_EN = FT800_REG_INT_EN,
REG_INT_MASK = FT800_REG_INT_MASK,
REG_PLAYBACK_START = FT800_REG_PLAYBACK_START,
REG_PLAYBACK_LENGTH = FT800_REG_PLAYBACK_LENGTH,
REG_PLAYBACK_READPTR = FT800_REG_PLAYBACK_READPTR,
REG_PLAYBACK_FREQ = FT800_REG_PLAYBACK_FREQ,
REG_PLAYBACK_FORMAT = FT800_REG_PLAYBACK_FORMAT,
REG_PLAYBACK_LOOP = FT800_REG_PLAYBACK_LOOP,
REG_PLAYBACK_PLAY = FT800_REG_PLAYBACK_PLAY,
REG_PWM_HZ = FT800_REG_PWM_HZ,
REG_PWM_DUTY = FT800_REG_PWM_DUTY,
REG_MACRO_0 = FT800_REG_MACRO_0,
REG_MACRO_1 = FT800_REG_MACRO_1,
REG_CMD_READ = FT800_REG_CMD_READ,
REG_CMD_WRITE = FT800_REG_CMD_WRITE,
REG_CMD_DL = FT800_REG_CMD_DL,
REG_TOUCH_MODE = FT800_REG_TOUCH_MODE,
REG_TOUCH_ADC_MODE = FT800_REG_TOUCH_ADC_MODE,
REG_TOUCH_CHARGE = FT800_REG_TOUCH_CHARGE,
REG_TOUCH_SETTLE = FT800_REG_TOUCH_SETTLE,
REG_TOUCH_OVERSAMPLE = FT800_REG_TOUCH_OVERSAMPLE,
REG_TOUCH_RZTHRESH = FT800_REG_TOUCH_RZTHRESH,
REG_TOUCH_RAW_XY = FT800_REG_TOUCH_RAW_XY,
REG_TOUCH_RZ = FT800_REG_TOUCH_RZ,
REG_TOUCH_SCREEN_XY = FT800_REG_TOUCH_SCREEN_XY,
REG_TOUCH_TAG_XY = FT800_REG_TOUCH_TAG_XY,
REG_TOUCH_TAG = FT800_REG_TOUCH_TAG,
REG_TOUCH_TRANSFORM_A = FT800_REG_TOUCH_TRANSFORM_A,
REG_TOUCH_TRANSFORM_B = FT800_REG_TOUCH_TRANSFORM_B,
REG_TOUCH_TRANSFORM_C = FT800_REG_TOUCH_TRANSFORM_C,
REG_TOUCH_TRANSFORM_D = FT800_REG_TOUCH_TRANSFORM_D,
REG_TOUCH_TRANSFORM_E = FT800_REG_TOUCH_TRANSFORM_E,
REG_TOUCH_TRANSFORM_F = FT800_REG_TOUCH_TRANSFORM_F,
REG_TOUCH_DIRECT_XY = FT800_REG_TOUCH_DIRECT_XY,
REG_TOUCH_DIRECT_Z1Z2 = FT800_REG_TOUCH_DIRECT_Z1Z2,
REG_TRACKER = FT800_REG_TRACKER
};
#else /* Definition of FT810 registers */
/** FT810 register addresses */
enum ft8xx_register_address_t {
REG_TRIM = FT810_REG_TRIM,
REG_ID = FT810_REG_ID,
REG_FRAMES = FT810_REG_FRAMES,
REG_CLOCK = FT810_REG_CLOCK,
REG_FREQUENCY = FT810_REG_FREQUENCY,
REG_RENDERMODE = FT810_REG_RENDERMODE,
REG_SNAPY = FT810_REG_SNAPY,
REG_SNAPSHOT = FT810_REG_SNAPSHOT,
REG_CPURESET = FT810_REG_CPURESET,
REG_TAP_CRC = FT810_REG_TAP_CRC,
REG_TAP_MASK = FT810_REG_TAP_MASK,
REG_HCYCLE = FT810_REG_HCYCLE,
REG_HOFFSET = FT810_REG_HOFFSET,
REG_HSIZE = FT810_REG_HSIZE,
REG_HSYNC0 = FT810_REG_HSYNC0,
REG_HSYNC1 = FT810_REG_HSYNC1,
REG_VCYCLE = FT810_REG_VCYCLE,
REG_VOFFSET = FT810_REG_VOFFSET,
REG_VSIZE = FT810_REG_VSIZE,
REG_VSYNC0 = FT810_REG_VSYNC0,
REG_VSYNC1 = FT810_REG_VSYNC1,
REG_DLSWAP = FT810_REG_DLSWAP,
REG_ROTATE = FT810_REG_ROTATE,
REG_OUTBITS = FT810_REG_OUTBITS,
REG_DITHER = FT810_REG_DITHER,
REG_SWIZZLE = FT810_REG_SWIZZLE,
REG_CSPREAD = FT810_REG_CSPREAD,
REG_PCLK_POL = FT810_REG_PCLK_POL,
REG_PCLK = FT810_REG_PCLK,
REG_TAG_X = FT810_REG_TAG_X,
REG_TAG_Y = FT810_REG_TAG_Y,
REG_TAG = FT810_REG_TAG,
REG_VOL_PB = FT810_REG_VOL_PB,
REG_VOL_SOUND = FT810_REG_VOL_SOUND,
REG_SOUND = FT810_REG_SOUND,
REG_PLAY = FT810_REG_PLAY,
REG_GPIO_DIR = FT810_REG_GPIO_DIR,
REG_GPIO = FT810_REG_GPIO,
REG_GPIOX_DIR = FT810_REG_GPIOX_DIR,
REG_GPIOX = FT810_REG_GPIOX,
REG_INT_FLAGS = FT810_REG_INT_FLAGS,
REG_INT_EN = FT810_REG_INT_EN,
REG_INT_MASK = FT810_REG_INT_MASK,
REG_PLAYBACK_START = FT810_REG_PLAYBACK_START,
REG_PLAYBACK_LENGTH = FT810_REG_PLAYBACK_LENGTH,
REG_PLAYBACK_READPTR = FT810_REG_PLAYBACK_READPTR,
REG_PLAYBACK_FREQ = FT810_REG_PLAYBACK_FREQ,
REG_PLAYBACK_FORMAT = FT810_REG_PLAYBACK_FORMAT,
REG_PLAYBACK_LOOP = FT810_REG_PLAYBACK_LOOP,
REG_PLAYBACK_PLAY = FT810_REG_PLAYBACK_PLAY,
REG_PWM_HZ = FT810_REG_PWM_HZ,
REG_PWM_DUTY = FT810_REG_PWM_DUTY,
REG_CMD_READ = FT810_REG_CMD_READ,
REG_CMD_WRITE = FT810_REG_CMD_WRITE,
REG_CMD_DL = FT810_REG_CMD_DL,
REG_TOUCH_MODE = FT810_REG_TOUCH_MODE,
REG_TOUCH_ADC_MODE = FT810_REG_TOUCH_ADC_MODE,
REG_TOUCH_CHARGE = FT810_REG_TOUCH_CHARGE,
REG_TOUCH_SETTLE = FT810_REG_TOUCH_SETTLE,
REG_TOUCH_OVERSAMPLE = FT810_REG_TOUCH_OVERSAMPLE,
REG_TOUCH_RZTHRESH = FT810_REG_TOUCH_RZTHRESH,
REG_TOUCH_RAW_XY = FT810_REG_TOUCH_RAW_XY,
REG_TOUCH_RZ = FT810_REG_TOUCH_RZ,
REG_TOUCH_SCREEN_XY = FT810_REG_TOUCH_SCREEN_XY,
REG_TOUCH_TAG_XY = FT810_REG_TOUCH_TAG_XY,
REG_TOUCH_TAG = FT810_REG_TOUCH_TAG,
REG_TOUCH_TRANSFORM_A = FT810_REG_TOUCH_TRANSFORM_A,
REG_TOUCH_TRANSFORM_B = FT810_REG_TOUCH_TRANSFORM_B,
REG_TOUCH_TRANSFORM_C = FT810_REG_TOUCH_TRANSFORM_C,
REG_TOUCH_TRANSFORM_D = FT810_REG_TOUCH_TRANSFORM_D,
REG_TOUCH_TRANSFORM_E = FT810_REG_TOUCH_TRANSFORM_E,
REG_TOUCH_TRANSFORM_F = FT810_REG_TOUCH_TRANSFORM_F,
REG_TOUCH_CONFIG = FT810_REG_TOUCH_CONFIG,
REG_SPI_WIDTH = FT810_REG_SPI_WIDTH,
REG_TOUCH_DIRECT_XY = FT810_REG_TOUCH_DIRECT_XY,
REG_TOUCH_DIRECT_Z1Z2 = FT810_REG_TOUCH_DIRECT_Z1Z2,
REG_CMDB_SPACE = FT810_REG_CMDB_SPACE,
REG_CMDB_WRITE = FT810_REG_CMDB_WRITE,
REG_TRACKER = FT810_REG_TRACKER,
REG_TRACKER1 = FT810_REG_TRACKER1,
REG_TRACKER2 = FT810_REG_TRACKER2,
REG_TRACKER3 = FT810_REG_TRACKER3,
REG_TRACKER4 = FT810_REG_TRACKER4,
REG_MEDIAFIFO_READ = FT810_REG_MEDIAFIFO_READ,
REG_MEDIAFIFO_WRITE = FT810_REG_MEDIAFIFO_WRITE,
};
#endif
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_REFERENCE_API_H_ */