Exemple #1
0
/* B0P18 is #IRQ line of the touchpad */
void button_init_device(void)
{
    mpr121_init(0xb4);
    mpr121_soft_reset();
    mpr121_set_config(&config);

    queue_init(&mpr121_queue, true);
    create_thread(mpr121_thread, mpr121_stack, sizeof(mpr121_stack), 0,
        mpr121_thread_name IF_PRIO(, PRIORITY_USER_INTERFACE) IF_COP(, CPU));
    /* enable interrupt */
    imx233_pinctrl_acquire(0, 18, "mpr121_int");
    imx233_pinctrl_set_function(0, 18, PINCTRL_FUNCTION_GPIO);
    imx233_pinctrl_enable_gpio(0, 18, false);
    imx233_pinctrl_setup_irq(0, 18, true, true, false, &mpr121_irq_cb, 0);
    /* generic part */
    imx233_button_init();
}
Exemple #2
0
int main()
{
    mpr121_context dev = mpr121_init(MPR121_I2C_BUS, MPR121_DEFAULT_I2C_ADDR);

    if(mpr121_config_an3944(dev) != UPM_SUCCESS){
        printf("unable to configure device\n");
    }
    uint32_t states;
    while(1){
        if(mpr121_read_buttons(dev, &states, 0) != UPM_SUCCESS){
            printf("Error while reading button values\n");
        }
        printf("retrieved button states: %d\n", states);
        upm_delay(1);
    }

    mpr121_close(dev);
    printf("all done!!\n");

    return 0;
}