rockbox/firmware/target/arm/imx31/gigabeat-s/gpio-target.h
Michael Sevakis 2220a4b695 Improve imx31 interrupt code for PMIC and GPIO
Fix stuff that was bugging me about the way I did it at first.

While messing around I found RDS code wasn't masking its GPIO
ISR as it should, which might lead to two different interrupts
messing with the static data.

Change-Id: I54626809ea3039a842af0cc9e3e42853326c4193
2017-01-29 19:07:55 -05:00

55 lines
2 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (c) 2008 by Michael Sevakis
*
* Gigabeat S GPIO interrupt event descriptions header
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef GPIO_TARGET_H
#define GPIO_TARGET_H
/* Gigabeat S definitions for static GPIO event registration */
#include "gpio-imx31.h"
#ifdef DEFINE_GPIO_VECTOR_TABLE
GPIO_VECTOR_TBL_START()
/* mc13783 keeps the PRIINT high (no low pulse) if other unmasked
* interrupts become active when clearing them or if a source being
* cleared becomes active at that time. Edge-detection will not get
* a rising edge in that case so use high-level sense. */
GPIO_EVENT_VECTOR(GPIO1_31, GPIO_SENSE_HIGH_LEVEL)
#if CONFIG_TUNER
/* Generates a 5ms low pulse on the line - detect the falling edge */
GPIO_EVENT_VECTOR(GPIO1_27, GPIO_SENSE_FALLING)
#endif /* CONFIG_TUNER */
GPIO_VECTOR_TBL_END()
#define GPIO1_INT_PRIO INT_PRIO_DEFAULT
#endif /* DEFINE_GPIO_VECTOR_TABLE */
#define INT_MC13783 GPIO1_31_EVENT_CB
#define MC13783_EVENT_ID GPIO1_31_ID
#if CONFIG_TUNER
#define INT_SI4700_RDS GPIO1_27_EVENT_CB
#define SI4700_EVENT_ID GPIO1_27_ID
#endif /* CONFIG_TUNER */
#endif /* GPIO_TARGET_H */