From 2220a4b695f2f5ac9fe212de4bcfa5365318136f Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sat, 28 Jan 2017 14:43:35 -0500 Subject: 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 --- .../target/arm/imx31/gigabeat-s/mc13783-target.h | 44 +++++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) (limited to 'firmware/target/arm/imx31/gigabeat-s/mc13783-target.h') diff --git a/firmware/target/arm/imx31/gigabeat-s/mc13783-target.h b/firmware/target/arm/imx31/gigabeat-s/mc13783-target.h index 48d634035a..179c65cad6 100644 --- a/firmware/target/arm/imx31/gigabeat-s/mc13783-target.h +++ b/firmware/target/arm/imx31/gigabeat-s/mc13783-target.h @@ -23,17 +23,41 @@ #ifndef MC13783_TARGET_H #define MC13783_TARGET_H -/* Declare event indexes in priority order in a packed array */ -enum mc13783_event_ids +#include "mc13783.h" + +#ifdef DEFINE_MC13783_VECTOR_TABLE + +/* Gigabeat S mc13783 serial interface node. */ +static struct spi_node mc13783_spi = { - MC13783_ADCDONE_EVENT = 0, /* ADC conversion complete */ - MC13783_ONOFD1_EVENT, /* Power button */ -#ifdef HAVE_HEADPHONE_DETECTION - MC13783_ONOFD2_EVENT, /* Headphone jack */ -#endif - MC13783_SE1_EVENT, /* Main charger detection */ - MC13783_USB_EVENT, /* USB insertion */ - MC13783_NUM_EVENTS, + /* Based upon original firmware settings */ + CSPI2_NUM, /* CSPI module 2 */ + CSPI_CONREG_CHIP_SELECT_SS0 | /* Chip select 0 */ + CSPI_CONREG_DRCTL_DONT_CARE | /* Don't care about CSPI_RDY */ + CSPI_CONREG_DATA_RATE_DIV_32 | /* Clock = IPG_CLK/32 = 2,062,500Hz. */ + CSPI_BITCOUNT(32-1) | /* All 32 bits are to be transferred */ + CSPI_CONREG_SSPOL | /* SS active high */ + CSPI_CONREG_SSCTL | /* Negate SS between SPI bursts */ + CSPI_CONREG_MODE, /* Master mode */ + 0, /* SPI clock - no wait states */ }; +/* Gigabeat S definitions for static MC13783 event registration */ +MC13783_EVENT_VECTOR_TBL_START() + /* ADC conversion complete */ + MC13783_EVENT_VECTOR(ADCDONE, 0) + /* Power button */ + MC13783_EVENT_VECTOR(ONOFD1, MC13783_ONOFD1S) + /* Main charger detection */ + MC13783_EVENT_VECTOR(SE1, MC13783_SE1S) + /* USB insertion/USB charger detection */ + MC13783_EVENT_VECTOR(USB, MC13783_USB4V4S) +#ifdef HAVE_HEADPHONE_DETECTION + /* Headphone jack */ + MC13783_EVENT_VECTOR(ONOFD2, 0) +#endif /* HAVE_HEADPHONE_DETECTION */ +MC13783_EVENT_VECTOR_TBL_END() + +#endif /* DEFINE_MC13783_VECTOR_TABLE */ + #endif /* MC13783_TARGET_H */ -- cgit v1.2.3