Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS

FT8xx reference API. More...

Macros

#define OPT_3D   FT8XX_OPT_3D
 
#define OPT_RGB565   FT8XX_OPT_RGB565
 
#define OPT_MONO   FT8XX_OPT_MONO
 
#define OPT_NODL   FT8XX_OPT_NODL
 
#define OPT_FLAT   FT8XX_OPT_FLAT
 
#define OPT_SIGNED   FT8XX_OPT_SIGNED
 
#define OPT_CENTERX   FT8XX_OPT_CENTERX
 
#define OPT_CENTERY   FT8XX_OPT_CENTERY
 
#define OPT_CENTER   FT8XX_OPT_CENTER
 
#define OPT_RIGHTX   FT8XX_OPT_RIGHTX
 
#define OPT_NOBACK   FT8XX_OPT_NOBACK
 
#define OPT_NOTICKS   FT8XX_OPT_NOTICKS
 
#define OPT_NOHM   FT8XX_OPT_NOHM
 
#define OPT_NOPOINTER   FT8XX_OPT_NOPOINTER
 
#define OPT_NOSECS   FT8XX_OPT_NOSECS
 
#define OPT_NOHANDS   FT8XX_OPT_NOHANDS
 
#define BITMAPS   FT8XX_BITMAPS
 
#define POINTS   FT8XX_POINTS
 
#define LINES   FT8XX_LINES
 
#define LINE_STRIP   FT8XX_LINE_STRIP
 
#define EDGE_STRIP_R   FT8XX_EDGE_STRIP_R
 
#define EDGE_STRIP_L   FT8XX_EDGE_STRIP_L
 
#define EDGE_STRIP_A   FT8XX_EDGE_STRIP_A
 
#define EDGE_STRIP_B   FT8XX_EDGE_STRIP_B
 
#define RECTS   FT8XX_RECTS
 
#define BEGIN(prim)   FT8XX_BEGIN(prim)
 Begin drawing a graphics primitive. More...
 
#define CLEAR(c, s, t)   FT8XX_CLEAR(c, s, t)
 Clear buffers to preset values. More...
 
#define CLEAR_COLOR_RGB(red, green, blue)   FT8XX_CLEAR_COLOR_RGB(red, green, blue)
 Specify clear values for red, green and blue channels. More...
 
#define COLOR_RGB(red, green, blue)   FT8XX_COLOR_RGB(red, green, blue)
 Set the current color red, green and blue. More...
 
#define DISPLAY()   FT8XX_DISPLAY()
 End the display list. More...
 
#define END()   FT8XX_END()
 End drawing a graphics primitive. More...
 
#define LINE_WIDTH(width)   FT8XX_LINE_WIDTH(width)
 Specify the width of lines to be drawn with primitive LINES. More...
 
#define TAG(s)   FT8XX_TAG(s)
 Attach the tag value for the following graphics objects. More...
 
#define VERTEX2F(x, y)   FT8XX_VERTEX2F(x, y)
 Start the operation of graphics primitives at the specified coordinate. More...
 
#define VERTEX2II(x, y, handle, cell)   FT8XX_VERTEX2II(x, y, handle, cell)
 Start the operation of graphics primitive at the specified coordinates. More...
 

Enumerations

enum  ft8xx_memory_map_t { RAM_G = FT810_RAM_G , RAM_DL = FT810_RAM_DL , REG_ = FT810_REG_ , RAM_CMD = FT810_RAM_CMD }
 
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
}
 

Functions

static void wr8 (uint32_t address, uint8_t data)
 Write 1 byte (8 bits) to FT8xx memory. More...
 
static void wr16 (uint32_t address, uint16_t data)
 Write 2 bytes (16 bits) to FT8xx memory. More...
 
static void wr32 (uint32_t address, uint32_t data)
 Write 4 bytes (32 bits) to FT8xx memory. More...
 
static uint8_t rd8 (uint32_t address)
 Read 1 byte (8 bits) from FT8xx memory. More...
 
static uint16_t rd16 (uint32_t address)
 Read 2 bytes (16 bits) from FT8xx memory. More...
 
static uint32_t rd32 (uint32_t address)
 Read 4 bytes (32 bits) from FT8xx memory. More...
 
static void cmd (uint32_t command)
 Execute a display list command by co-processor engine. More...
 
static void cmd_dlstart (void)
 Start a new display list. More...
 
static void cmd_swap (void)
 Swap the current display list. More...
 
static void cmd_text (int16_t x, int16_t y, int16_t font, uint16_t options, const char *s)
 Draw text. More...
 
static void cmd_number (int16_t x, int16_t y, int16_t font, uint16_t options, int32_t n)
 Draw a decimal number. More...
 
static void cmd_calibrate (uint32_t *result)
 Execute the touch screen calibration routine. More...
 

Detailed Description

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 ft8xx_ prefixed names.

Macro Definition Documentation

◆ BEGIN

#define BEGIN (   prim)    FT8XX_BEGIN(prim)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Begin drawing a graphics primitive.

The valid primitives are defined as:

The primitive to be drawn is selected by the BEGIN command. Once the primitive is selected, it will be valid till the new primitive is selected by the BEGIN command.

Note
The primitive drawing operation will not be performed until VERTEX2II or VERTEX2F is executed.
Parameters
primGraphics primitive

◆ BITMAPS

#define BITMAPS   FT8XX_BITMAPS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Rectangular pixel arrays, in various color formats

◆ CLEAR

#define CLEAR (   c,
  s,
  t 
)    FT8XX_CLEAR(c, s, t)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Clear buffers to preset values.

Setting 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 CLEAR_COLOR_RGB for RGB channel and CLEAR_COLOR_A for alpha channel.

Setting 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 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.

Parameters
cClear color buffer
sClear stencil buffer
tClear tag buffer

◆ CLEAR_COLOR_RGB

#define CLEAR_COLOR_RGB (   red,
  green,
  blue 
)    FT8XX_CLEAR_COLOR_RGB(red, green, blue)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Specify clear values for red, green and blue channels.

Sets the color values used by a following CLEAR.

Parameters
redRed value used when the color buffer is cleared
greenGreen value used when the color buffer is cleared
blueBlue value used when the color buffer is cleared

◆ COLOR_RGB

#define COLOR_RGB (   red,
  green,
  blue 
)    FT8XX_COLOR_RGB(red, green, blue)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

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.

Parameters
redRed value for the current color
greenGreen value for the current color
blueBlue value for the current color

◆ DISPLAY

#define DISPLAY ( )    FT8XX_DISPLAY()

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

End the display list.

FT8xx will ignore all the commands following this command.

◆ EDGE_STRIP_A

#define EDGE_STRIP_A   FT8XX_EDGE_STRIP_A

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Edge strips for above

◆ EDGE_STRIP_B

#define EDGE_STRIP_B   FT8XX_EDGE_STRIP_B

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Edge strips for below

◆ EDGE_STRIP_L

#define EDGE_STRIP_L   FT8XX_EDGE_STRIP_L

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Edge strips for left

◆ EDGE_STRIP_R

#define EDGE_STRIP_R   FT8XX_EDGE_STRIP_R

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Edge strips for right

◆ END

#define END ( )    FT8XX_END()

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

End drawing a graphics primitive.

It is recommended to have an END for each BEGIN. Whereas advanced users can avoid the usage of END in order to save extra graphics instructions in the display list RAM.

◆ LINE_STRIP

#define LINE_STRIP   FT8XX_LINE_STRIP

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Anti-aliased lines, connected head-to-tail

◆ LINE_WIDTH

#define LINE_WIDTH (   width)    FT8XX_LINE_WIDTH(width)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Specify the width of lines to be drawn with primitive 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 LINE_WIDTH command will affect the LINES, LINE_STRIP, RECTS, EDGE_STRIP_A /B/R/L primitives.
Parameters
widthLine width in 1/16 pixel

◆ LINES

#define LINES   FT8XX_LINES

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Anti-aliased lines, with width from 0 to 4095 1/16th of pixel units. (width is from center of the line to boundary)

◆ OPT_3D

#define OPT_3D   FT8XX_OPT_3D

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget is drawn in 3D effect

◆ OPT_CENTER

#define OPT_CENTER   FT8XX_OPT_CENTER

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget centers horizontally and vertically

◆ OPT_CENTERX

#define OPT_CENTERX   FT8XX_OPT_CENTERX

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget centers horizontally

◆ OPT_CENTERY

#define OPT_CENTERY   FT8XX_OPT_CENTERY

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget centers vertically

◆ OPT_FLAT

#define OPT_FLAT   FT8XX_OPT_FLAT

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget is drawn without 3D effect

◆ OPT_MONO

#define OPT_MONO   FT8XX_OPT_MONO

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor option to decode the JPEG image to L8 format, i.e., monochrome

◆ OPT_NOBACK

#define OPT_NOBACK   FT8XX_OPT_NOBACK

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor widget has no background drawn

◆ OPT_NODL

#define OPT_NODL   FT8XX_OPT_NODL

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

No display list commands generated for bitmap decoded from JPEG image

◆ OPT_NOHANDS

#define OPT_NOHANDS   FT8XX_OPT_NOHANDS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor clock widget is drawn without hour, minutes and seconds hands

◆ OPT_NOHM

#define OPT_NOHM   FT8XX_OPT_NOHM

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor clock widget is drawn without hour and minutes hands, only seconds hand is drawn

◆ OPT_NOPOINTER

#define OPT_NOPOINTER   FT8XX_OPT_NOPOINTER

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

The Co-processor gauge has no pointer

◆ OPT_NOSECS

#define OPT_NOSECS   FT8XX_OPT_NOSECS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor clock widget is drawn without seconds hand

◆ OPT_NOTICKS

#define OPT_NOTICKS   FT8XX_OPT_NOTICKS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor clock widget is drawn without hour ticks. Gauge widget is drawn without major and minor ticks.

◆ OPT_RGB565

#define OPT_RGB565   FT8XX_OPT_RGB565

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Co-processor option to decode the JPEG image to RGB565 format

◆ OPT_RIGHTX

#define OPT_RIGHTX   FT8XX_OPT_RIGHTX

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

The label on the Coprocessor widget is right justified

◆ OPT_SIGNED

#define OPT_SIGNED   FT8XX_OPT_SIGNED

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

The number is treated as 32 bit signed integer

◆ POINTS

#define POINTS   FT8XX_POINTS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Anti-aliased points, point radius is 1-256 pixels

◆ RECTS

#define RECTS   FT8XX_RECTS

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Round-cornered rectangles, curvature of the corners can be adjusted using LINE_WIDTH

◆ TAG

#define TAG (   s)    FT8XX_TAG(s)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

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 CLEAR. 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 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 REG_TOUCH_TAG will be updated with the tag value of the graphics object being touched. If there is no TAG commands in one display list, all the graphics objects rendered by the display list will report tag value as 255 in REG_TOUCH_TAG when they were touched.

Parameters
sTag value 1-255

◆ VERTEX2F

#define VERTEX2F (   x,
 
)    FT8XX_VERTEX2F(x, y)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

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.

Parameters
xSigned x-coordinate in 1/16 pixel precision
ySigned y-coordinate in 1/16 pixel precision

◆ VERTEX2II

#define VERTEX2II (   x,
  y,
  handle,
  cell 
)    FT8XX_VERTEX2II(x, y, handle, cell)

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Start the operation of graphics primitive at the specified coordinates.

The valid range of 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.

Parameters
xx-coordinate in pixels, from 0 to 511
yy-coordinate in pixels, from 0 to 511
handleBitmap handle
cellCell number

Enumeration Type Documentation

◆ ft8xx_memory_map_t

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Main parts of FT810 memory map

Enumerator
RAM_G 
RAM_DL 
REG_ 
RAM_CMD 

◆ ft8xx_register_address_t

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

FT810 register addresses

Enumerator
REG_TRIM 
REG_ID 
REG_FRAMES 
REG_CLOCK 
REG_FREQUENCY 
REG_RENDERMODE 
REG_SNAPY 
REG_SNAPSHOT 
REG_CPURESET 
REG_TAP_CRC 
REG_TAP_MASK 
REG_HCYCLE 
REG_HOFFSET 
REG_HSIZE 
REG_HSYNC0 
REG_HSYNC1 
REG_VCYCLE 
REG_VOFFSET 
REG_VSIZE 
REG_VSYNC0 
REG_VSYNC1 
REG_DLSWAP 
REG_ROTATE 
REG_OUTBITS 
REG_DITHER 
REG_SWIZZLE 
REG_CSPREAD 
REG_PCLK_POL 
REG_PCLK 
REG_TAG_X 
REG_TAG_Y 
REG_TAG 
REG_VOL_PB 
REG_VOL_SOUND 
REG_SOUND 
REG_PLAY 
REG_GPIO_DIR 
REG_GPIO 
REG_GPIOX_DIR 
REG_GPIOX 
REG_INT_FLAGS 
REG_INT_EN 
REG_INT_MASK 
REG_PLAYBACK_START 
REG_PLAYBACK_LENGTH 
REG_PLAYBACK_READPTR 
REG_PLAYBACK_FREQ 
REG_PLAYBACK_FORMAT 
REG_PLAYBACK_LOOP 
REG_PLAYBACK_PLAY 
REG_PWM_HZ 
REG_PWM_DUTY 
REG_CMD_READ 
REG_CMD_WRITE 
REG_CMD_DL 
REG_TOUCH_MODE 
REG_TOUCH_ADC_MODE 
REG_TOUCH_CHARGE 
REG_TOUCH_SETTLE 
REG_TOUCH_OVERSAMPLE 
REG_TOUCH_RZTHRESH 
REG_TOUCH_RAW_XY 
REG_TOUCH_RZ 
REG_TOUCH_SCREEN_XY 
REG_TOUCH_TAG_XY 
REG_TOUCH_TAG 
REG_TOUCH_TRANSFORM_A 
REG_TOUCH_TRANSFORM_B 
REG_TOUCH_TRANSFORM_C 
REG_TOUCH_TRANSFORM_D 
REG_TOUCH_TRANSFORM_E 
REG_TOUCH_TRANSFORM_F 
REG_TOUCH_CONFIG 
REG_SPI_WIDTH 
REG_TOUCH_DIRECT_XY 
REG_TOUCH_DIRECT_Z1Z2 
REG_CMDB_SPACE 
REG_CMDB_WRITE 
REG_TRACKER 
REG_TRACKER1 
REG_TRACKER2 
REG_TRACKER3 
REG_TRACKER4 
REG_MEDIAFIFO_READ 
REG_MEDIAFIFO_WRITE 

Function Documentation

◆ cmd()

static void cmd ( uint32_t  command)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Execute a display list command by co-processor engine.

Parameters
commandDisplay list command to execute

◆ cmd_calibrate()

static void cmd_calibrate ( uint32_t result)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

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.

Parameters
resultCalibration result, written with 0 on failure of calibration

◆ cmd_dlstart()

static void cmd_dlstart ( void  )
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Start a new display list.

◆ cmd_number()

static void cmd_number ( int16_t  x,
int16_t  y,
int16_t  font,
uint16_t  options,
int32_t  n 
)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Draw a decimal number.

By default (x, 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 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 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.

Parameters
xx-coordinate of text base, in pixels
yy-coordinate of text base, in pixels
fontFont to use for text, 0-31. 16-31 are ROM fonts
optionsOptions to apply
nThe number to display.

◆ cmd_swap()

static void cmd_swap ( void  )
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Swap the current display list.

◆ cmd_text()

static void cmd_text ( int16_t  x,
int16_t  y,
int16_t  font,
uint16_t  options,
const char *  s 
)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Draw text.

By default (x,y) is the top-left pixel of the text and the value of 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.

Parameters
xx-coordinate of text base, in pixels
yy-coordinate of text base, in pixels
fontFont to use for text, 0-31. 16-31 are ROM fonts
optionsOptions to apply
sCharacter string to display, terminated with a null character

◆ rd16()

static uint16_t rd16 ( uint32_t  address)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Read 2 bytes (16 bits) from FT8xx memory.

Parameters
addressMemory address to read from
Returns
Value read from memory

◆ rd32()

static uint32_t rd32 ( uint32_t  address)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Read 4 bytes (32 bits) from FT8xx memory.

Parameters
addressMemory address to read from
Returns
Value read from memory

◆ rd8()

static uint8_t rd8 ( uint32_t  address)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Read 1 byte (8 bits) from FT8xx memory.

Parameters
addressMemory address to read from
Returns
Value read from memory

◆ wr16()

static void wr16 ( uint32_t  address,
uint16_t  data 
)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Write 2 bytes (16 bits) to FT8xx memory.

Parameters
addressMemory address to write to
dataValue to write

◆ wr32()

static void wr32 ( uint32_t  address,
uint32_t  data 
)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Write 4 bytes (32 bits) to FT8xx memory.

Parameters
addressMemory address to write to
dataValue to write

◆ wr8()

static void wr8 ( uint32_t  address,
uint8_t  data 
)
inlinestatic

#include <include/drivers/misc/ft8xx/ft8xx_reference_api.h>

Write 1 byte (8 bits) to FT8xx memory.

Parameters
addressMemory address to write to
dataByte to write