示例#1
0
int devsif_close(FAR struct file *filep)
{
    sif_sem_wait();

    if (--vsn_sif.opencnt) {

        // suspend (powerdown) hardware

        sif_gpios_reset();

        //STM32_TIM_SETCLOCK(vsn_sif.tim3, 0);
        //STM32_TIM_SETCLOCK(vsn_sif.tim8, 0);
    }

    sif_sem_post();
    return 0;
}
示例#2
0
文件: sif.c 项目: l--putt/nuttx-bb
int sif_init(void)
{
    /* Initialize data-structure */
    
    vsn_sif.state   = VSN_SIF_STATE_POWERDOWN;
    vsn_sif.opencnt = 0;
    sem_init(&vsn_sif.exclusive_access, 0, 1);
    
    /* Initialize hardware */
    
    sif_gpios_reset();
    if ( sif_anout_init() != OK ) return -1;

    /* If everything is okay, register the driver */
    
    (void)register_driver("/dev/sif0", &devsif_fops, 0666, NULL);
    return OK;
}