// SPDX-License-Identifier: GPL-2.0-only #ifndef GXFP_PROTOCOL_H #define GXFP_PROTOCOL_H #include #include #define GXFP_MP_COMMAND 0xA0 #define GXFP_MP_RX_COMMAND 0x0A #define GXFP_GOODIX_CHECKSUM_TARGET 0xAA #define GXFP_GOODIX_ACK 0xB0 #define GXFP_CMD_IMAGE_CAPTURE 0x20 struct gxfp_frame_view { uint8_t command; const uint8_t *payload; size_t payload_len; uint8_t checksum; }; int gxfp_frame_build(uint8_t command, const void *payload, size_t payload_len, uint8_t *output, size_t output_capacity, size_t *output_len); int gxfp_frame_parse(const void *frame, size_t frame_len, struct gxfp_frame_view *view); #endif