123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /*
- * Copyright (c) 2020 Hubert Miś
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- /**
- * @file
- * @brief FT8XX public API
- */
- #ifndef ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_H_
- #define ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_H_
- #include <stdint.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @brief FT8xx driver public APIs
- * @defgroup ft8xx_interface FT8xx driver APIs
- * @ingroup misc_interfaces
- * @{
- */
- /**
- * @struct ft8xx_touch_transform
- * @brief Structure holding touchscreen calibration data
- *
- * The content of this structure is filled by ft8xx_calibrate().
- */
- struct ft8xx_touch_transform {
- uint32_t a;
- uint32_t b;
- uint32_t c;
- uint32_t d;
- uint32_t e;
- uint32_t f;
- };
- /**
- * @typedef ft8xx_int_callback
- * @brief Callback API to inform API user that FT8xx triggered interrupt
- *
- * This callback is called from IRQ context.
- */
- typedef void (*ft8xx_int_callback)(void);
- /**
- * @brief Calibrate touchscreen
- *
- * Run touchscreen calibration procedure that collectw three touches from touch
- * screen. Computed calibration result is automatically applied to the
- * touchscreen processing and returned with @p data.
- *
- * The content of @p data may be stored and used after reset in
- * ft8xx_touch_transform_set() to avoid calibrating touchscreen after each
- * device reset.
- *
- * @param data Pointer to touchscreen transform structure to populate
- */
- void ft8xx_calibrate(struct ft8xx_touch_transform *data);
- /**
- * @brief Set touchscreen calibration data
- *
- * Apply given touchscreen transform data to the touchscreen processing.
- * Data is to be obtained from calibration procedure started with
- * ft8xx_calibrate().
- *
- * @param data Pointer to touchscreen transform structure to apply
- */
- void ft8xx_touch_transform_set(const struct ft8xx_touch_transform *data);
- /**
- * @brief Get tag of recently touched element
- *
- * @return Tag value 0-255 of recently touched element
- */
- int ft8xx_get_touch_tag(void);
- /**
- * @brief Set callback executed when FT8xx triggers interrupt
- *
- * This function configures FT8xx to trigger interrupt when touch event changes
- * tag value.
- *
- * When touch event changes tag value, FT8xx activates INT line. The line is
- * kept active until ft8xx_get_touch_tag() is called. It results in single
- * execution of @p callback until ft8xx_get_touch_tag() is called.
- *
- * @param callback Pointer to function called when FT8xx triggers interrupt
- */
- void ft8xx_register_int(ft8xx_int_callback callback);
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_H_ */
|