LCOV - code coverage report
Current view: top level - zephyr/drivers/misc/grove_lcd - grove_lcd.h Coverage Total Hit
Test: new.info Lines: 35.5 % 31 11
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            0 : /* grove_lcd.h - Public API for the Grove RGB LCD device */
       2              : /*
       3              :  * Copyright (c) 2015 Intel Corporation
       4              :  *
       5              :  * SPDX-License-Identifier: Apache-2.0
       6              :  */
       7              : #ifndef ZEPHYR_INCLUDE_DISPLAY_GROVE_LCD_H_
       8              : #define ZEPHYR_INCLUDE_DISPLAY_GROVE_LCD_H_
       9              : 
      10              : #include <stdint.h>
      11              : 
      12              : #include <zephyr/device.h>
      13              : 
      14              : #ifdef __cplusplus
      15              : extern "C" {
      16              : #endif
      17              : 
      18              : /**
      19              :  * @brief Grove display APIs
      20              :  * @defgroup grove_display Grove display APIs
      21              :  * @ingroup third_party
      22              :  * @{
      23              :  */
      24              : 
      25              : /**
      26              :  *  @brief Send text to the screen
      27              :  *
      28              :  *  @param dev Pointer to device structure for driver instance.
      29              :  *  @param data the ASCII text to display
      30              :  *  @param size the length of the text in bytes
      31              :  */
      32            1 : void glcd_print(const struct device *dev, char *data, uint32_t size);
      33              : 
      34              : 
      35              : /**
      36              :  *  @brief Set text cursor position for next additions
      37              :  *
      38              :  *  @param dev Pointer to device structure for driver instance.
      39              :  *  @param col the column for the cursor to be moved to (0-15)
      40              :  *  @param row the row it should be moved to (0 or 1)
      41              :  */
      42            1 : void glcd_cursor_pos_set(const struct device *dev, uint8_t col, uint8_t row);
      43              : 
      44              : /**
      45              :  *  @brief Clear the current display
      46              :  *
      47              :  *  @param dev Pointer to device structure for driver instance.
      48              :  */
      49            1 : void glcd_clear(const struct device *dev);
      50              : 
      51              : /* Defines for the GLCD_CMD_DISPLAY_SWITCH options */
      52            0 : #define GLCD_DS_DISPLAY_ON              (1 << 2)
      53            0 : #define GLCD_DS_DISPLAY_OFF             (0 << 2)
      54            0 : #define GLCD_DS_CURSOR_ON               (1 << 1)
      55            0 : #define GLCD_DS_CURSOR_OFF              (0 << 1)
      56            0 : #define GLCD_DS_BLINK_ON                (1 << 0)
      57            0 : #define GLCD_DS_BLINK_OFF               (0 << 0)
      58              : /**
      59              :  *  @brief Function to change the display state.
      60              :  *  @details This function provides the user the ability to change the state
      61              :  *  of the display as per needed. Controlling things like powering on or off
      62              :  *  the screen, the option to display the cursor or not, and the ability to
      63              :  *  blink the cursor.
      64              :  *
      65              :  *  @param dev Pointer to device structure for driver instance.
      66              :  *  @param opt An 8bit bitmask of GLCD_DS_* options.
      67              :  *
      68              :  */
      69            1 : void glcd_display_state_set(const struct device *dev, uint8_t opt);
      70              : 
      71              : /**
      72              :  * @brief return the display feature set associated with the device
      73              :  *
      74              :  * @param dev the Grove LCD to get the display features set
      75              :  *
      76              :  * @return the display feature set associated with the device.
      77              :  */
      78            1 : uint8_t glcd_display_state_get(const struct device *dev);
      79              : 
      80              : /* Defines for the GLCD_CMD_INPUT_SET to change text direction */
      81            0 : #define GLCD_IS_SHIFT_INCREMENT (1 << 1)
      82            0 : #define GLCD_IS_SHIFT_DECREMENT (0 << 1)
      83            0 : #define GLCD_IS_ENTRY_LEFT      (1 << 0)
      84            0 : #define GLCD_IS_ENTRY_RIGHT     (0 << 0)
      85              : /**
      86              :  *  @brief Function to change the input state.
      87              :  *  @details This function provides the user the ability to change the state
      88              :  *  of the text input. Controlling things like text entry from the left or
      89              :  *  right side, and how far to increment on new text
      90              :  *
      91              :  *  @param dev Pointer to device structure for driver instance.
      92              :  *  @param opt A bitmask of GLCD_IS_* options
      93              :  *
      94              :  */
      95            1 : void glcd_input_state_set(const struct device *dev, uint8_t opt);
      96              : 
      97              : /**
      98              :  * @brief return the input set associated with the device
      99              :  *
     100              :  * @param dev the Grove LCD to get the input features set
     101              :  *
     102              :  * @return the input set associated with the device.
     103              :  */
     104            1 : uint8_t glcd_input_state_get(const struct device *dev);
     105              : 
     106              : /* Defines for the LCD_FUNCTION_SET */
     107            0 : #define GLCD_FS_8BIT_MODE       (1 << 4)
     108            0 : #define GLCD_FS_ROWS_2          (1 << 3)
     109            0 : #define GLCD_FS_ROWS_1          (0 << 3)
     110            0 : #define GLCD_FS_DOT_SIZE_BIG    (1 << 2)
     111            0 : #define GLCD_FS_DOT_SIZE_LITTLE (0 << 2)
     112              : /* Bits 0, 1 are not defined for this register */
     113              : 
     114              : /**
     115              :  *  @brief Function to set the functional state of the display.
     116              :  *  @param dev Pointer to device structure for driver instance.
     117              :  *  @param opt A bitmask of GLCD_FS_* options
     118              :  *
     119              :  *  @details This function provides the user the ability to change the state
     120              :  *  of the display as per needed.  Controlling things like the number of rows,
     121              :  *  dot size, and text display quality.
     122              :  */
     123            1 : void glcd_function_set(const struct device *dev, uint8_t opt);
     124              : 
     125              : /**
     126              :  * @brief return the function set associated with the device
     127              :  *
     128              :  * @param dev the Grove LCD to get the functions set
     129              :  *
     130              :  * @return the function features set associated with the device.
     131              :  */
     132            1 : uint8_t glcd_function_get(const struct device *dev);
     133              : 
     134              : 
     135              : /* Available color selections */
     136            0 : #define GROVE_RGB_WHITE         0
     137            0 : #define GROVE_RGB_RED           1
     138            0 : #define GROVE_RGB_GREEN         2
     139            0 : #define GROVE_RGB_BLUE          3
     140              : /**
     141              :  *  @brief Set LCD background to a predefined color
     142              :  *  @param dev Pointer to device structure for driver instance.
     143              :  *  @param color One of the predefined color options
     144              :  */
     145            1 : void glcd_color_select(const struct device *dev, uint8_t color);
     146              : 
     147              : 
     148              : /**
     149              :  *  @brief Set LCD background to custom RGB color value
     150              :  *
     151              :  *  @param dev Pointer to device structure for driver instance.
     152              :  *  @param r A numeric value for the red color (max is 255)
     153              :  *  @param g A numeric value for the green color (max is 255)
     154              :  *  @param b A numeric value for the blue color (max is 255)
     155              :  */
     156            1 : void glcd_color_set(const struct device *dev, uint8_t r, uint8_t g,
     157              :                     uint8_t b);
     158              : 
     159              : 
     160              : /**
     161              :  * @}
     162              :  */
     163              : 
     164              : #ifdef __cplusplus
     165              : }
     166              : #endif
     167              : 
     168              : #endif /* ZEPHYR_INCLUDE_DISPLAY_GROVE_LCD_H_ */
        

Generated by: LCOV version 2.0-1