gt9x 0.1.0

A no_std driver for the GT9x series of capacitive touch screen controllers, supporting both async and blocking interfaces.
Documentation
/// Represents a single touch point.
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Debug)]
pub struct Point {
    /// Touch point ID
    pub id: u8,
    /// X coordinate
    pub x: u16,
    /// Y coordinate
    pub y: u16,
    /// Touch area
    pub area: u16,
}

/// A trait that defines the properties of a GT9x chip.
pub trait Chip {
    /// Product ID
    const ID: &str;
    /// MAX Touch Points
    const MAX_POINTS: u8;
}

/// GT911 chip (5 touch points)
pub struct Gt911 {}
impl Chip for Gt911 {
    const ID: &str = "911\n";
    const MAX_POINTS: u8 = 5;
}

/// GT928 chip (10 touch points)
pub struct Gt928 {}
impl Chip for Gt928 {
    const ID: &str = "928\n";
    const MAX_POINTS: u8 = 10;
}

/// GT9147 chip (5 touch points)
pub struct Gt9147 {}
impl Chip for Gt9147 {
    const ID: &str = "9147";
    const MAX_POINTS: u8 = 5;
}