| /* |
| * 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 <drivers/misc/ft8xx/ft8xx_copro.h> |
| #include <drivers/misc/ft8xx/ft8xx_common.h> |
| #include <drivers/misc/ft8xx/ft8xx_dl.h> |
| #include <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_ */ |