LCOV - code coverage report
Current view: top level - zephyr/drivers/misc/ft8xx - ft8xx_copro.h Coverage Total Hit
Test: new.info Lines: 100.0 % 23 23
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2020 Hubert Miś
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief FT8XX coprocessor functions
      10              :  */
      11              : 
      12              : #ifndef ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_
      13              : #define ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_
      14              : 
      15              : #include <stdint.h>
      16              : #include <zephyr/device.h>
      17              : 
      18              : #ifdef __cplusplus
      19              : extern "C" {
      20              : #endif
      21              : 
      22              : /**
      23              :  * @brief FT8xx co-processor engine functions
      24              :  * @defgroup ft8xx_copro FT8xx co-processor
      25              :  * @ingroup ft8xx_interface
      26              :  * @{
      27              :  */
      28              : 
      29              : /** Co-processor widget is drawn in 3D effect */
      30            1 : #define FT8XX_OPT_3D        0
      31              : /** Co-processor option to decode the JPEG image to RGB565 format */
      32            1 : #define FT8XX_OPT_RGB565    0
      33              : /** Co-processor option to decode the JPEG image to L8 format, i.e., monochrome */
      34            1 : #define FT8XX_OPT_MONO      1
      35              : /** No display list commands generated for bitmap decoded from JPEG image */
      36            1 : #define FT8XX_OPT_NODL      2
      37              : /** Co-processor widget is drawn without 3D effect */
      38            1 : #define FT8XX_OPT_FLAT      256
      39              : /** The number is treated as 32 bit signed integer */
      40            1 : #define FT8XX_OPT_SIGNED    256
      41              : /** Co-processor widget centers horizontally */
      42            1 : #define FT8XX_OPT_CENTERX   512
      43              : /** Co-processor widget centers vertically */
      44            1 : #define FT8XX_OPT_CENTERY   1024
      45              : /** Co-processor widget centers horizontally and vertically */
      46            1 : #define FT8XX_OPT_CENTER    1536
      47              : /** The label on the Coprocessor widget is right justified */
      48            1 : #define FT8XX_OPT_RIGHTX    2048
      49              : /** Co-processor widget has no background drawn */
      50            1 : #define FT8XX_OPT_NOBACK    4096
      51              : /** Co-processor clock widget is drawn without hour ticks.
      52              :  *  Gauge widget is drawn without major and minor ticks.
      53              :  */
      54            1 : #define FT8XX_OPT_NOTICKS   8192
      55              : /** Co-processor clock widget is drawn without hour and minutes hands,
      56              :  * only seconds hand is drawn
      57              :  */
      58            1 : #define FT8XX_OPT_NOHM      16384
      59              : /** The Co-processor gauge has no pointer */
      60            1 : #define FT8XX_OPT_NOPOINTER 16384
      61              : /** Co-processor clock widget is drawn without seconds hand */
      62            1 : #define FT8XX_OPT_NOSECS    32768
      63              : /** Co-processor clock widget is drawn without hour, minutes and seconds hands */
      64            1 : #define FT8XX_OPT_NOHANDS   49152
      65              : 
      66              : /**
      67              :  * @brief Execute a display list command by co-processor engine
      68              :  *
      69              :  * @param dev Device structure
      70              :  * @param cmd Display list command to execute
      71              :  */
      72            1 : void ft8xx_copro_cmd(const struct device *dev, uint32_t cmd);
      73              : 
      74              : /**
      75              :  * @brief Start a new display list
      76              :  *
      77              :  * @param dev Device structure
      78              :  */
      79            1 : void ft8xx_copro_cmd_dlstart(const struct device *dev);
      80              : 
      81              : /**
      82              :  * @brief Swap the current display list
      83              :  *
      84              :  * @param dev Device structure
      85              :  */
      86            1 : void ft8xx_copro_cmd_swap(const struct device *dev);
      87              : 
      88              : /**
      89              :  * @brief Draw text
      90              :  *
      91              :  * By default (@p x, @p y) is the top-left pixel of the text and the value of
      92              :  * @p options is zero. @ref FT8XX_OPT_CENTERX centers the text horizontally,
      93              :  * @ref FT8XX_OPT_CENTERY centers it vertically. @ref FT8XX_OPT_CENTER centers
      94              :  * the text in both directions. @ref FT8XX_OPT_RIGHTX right-justifies the text,
      95              :  * so that the @p x is the rightmost pixel.
      96              :  *
      97              :  * @param dev Device structure
      98              :  * @param x x-coordinate of text base, in pixels
      99              :  * @param y y-coordinate of text base, in pixels
     100              :  * @param font Font to use for text, 0-31. 16-31 are ROM fonts
     101              :  * @param options Options to apply
     102              :  * @param string Character string to display, terminated with a null character
     103              :  */
     104            1 : void ft8xx_copro_cmd_text(const struct device *dev,
     105              :                           int16_t x,
     106              :                           int16_t y,
     107              :                           int16_t font,
     108              :                           uint16_t options,
     109              :                           const char *string);
     110              : 
     111              : /**
     112              :  * @brief Draw a decimal number
     113              :  *
     114              :  * By default (@p x, @p y) is the top-left pixel of the text.
     115              :  * @ref FT8XX_OPT_CENTERX centers the text horizontally, @ref FT8XX_OPT_CENTERY
     116              :  * centers it vertically. @ref FT8XX_OPT_CENTER centers the text in both
     117              :  * directions. @ref FT8XX_OPT_RIGHTX right-justifies the text, so that the @p x
     118              :  * is the rightmost pixel. By default the number is displayed with no leading
     119              :  * zeroes, but if a width 1-9 is specified in the @p options, then the number
     120              :  * is padded if necessary with leading zeroes so that it has the given width.
     121              :  * If @ref FT8XX_OPT_SIGNED is given, the number is treated as signed, and
     122              :  * prefixed by a minus sign if negative.
     123              :  *
     124              :  * @param dev Device structure
     125              :  * @param x x-coordinate of text base, in pixels
     126              :  * @param y y-coordinate of text base, in pixels
     127              :  * @param font Font to use for text, 0-31. 16-31 are ROM fonts
     128              :  * @param options Options to apply
     129              :  * @param number The number to display.
     130              :  */
     131            1 : void ft8xx_copro_cmd_number(const struct device *dev,
     132              :                             int16_t x,
     133              :                             int16_t y,
     134              :                             int16_t font,
     135              :                             uint16_t options,
     136              :                             int32_t number);
     137              : 
     138              : /**
     139              :  * @brief Execute the touch screen calibration routine
     140              :  *
     141              :  * The calibration procedure collects three touches from the touch screen, then
     142              :  * computes and loads an appropriate matrix into REG_TOUCH_TRANSFORM_A-F. To
     143              :  * use it, create a display list and then use CMD_CALIBRATE. The co-processor
     144              :  * engine overlays the touch targets on the current display list, gathers the
     145              :  * calibration input and updates REG_TOUCH_TRANSFORM_A-F.
     146              :  *
     147              :  * @param dev Device structure
     148              :  * @param result Calibration result, written with 0 on failure of calibration
     149              :  */
     150            1 : void ft8xx_copro_cmd_calibrate(const struct device *dev, uint32_t *result);
     151              : 
     152              : /**
     153              :  * @}
     154              :  */
     155              : 
     156              : #ifdef __cplusplus
     157              : }
     158              : #endif
     159              : 
     160              : #endif /* ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_ */
        

Generated by: LCOV version 2.0-1