summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/system-target.h
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2012-05-19 13:23:17 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2012-05-19 16:10:51 +0200
commit9ced006c06a4240cbd2a9ebe9196d9a0658810f9 (patch)
tree92f9bf71af3c76ba3b885cb372f0dc46d1482356 /firmware/target/arm/imx233/system-target.h
parent553aeae9c63f789c969a954983e537244934903a (diff)
downloadrockbox-9ced006c06a4240cbd2a9ebe9196d9a0658810f9.tar.gz
rockbox-9ced006c06a4240cbd2a9ebe9196d9a0658810f9.zip
imx233: move icoll stuff to its own file
The icoll code now has an IRQ storm detection mechanism which will prevent the device from hard freezing in case it happen. Change-Id: I9861238dce61d29af1e48f9c534ec63a7f23465c
Diffstat (limited to 'firmware/target/arm/imx233/system-target.h')
-rw-r--r--firmware/target/arm/imx233/system-target.h45
1 files changed, 1 insertions, 44 deletions
diff --git a/firmware/target/arm/imx233/system-target.h b/firmware/target/arm/imx233/system-target.h
index d9a19efa8f..2e850e830d 100644
--- a/firmware/target/arm/imx233/system-target.h
+++ b/firmware/target/arm/imx233/system-target.h
@@ -25,6 +25,7 @@
25#include "mmu-arm.h" 25#include "mmu-arm.h"
26#include "panic.h" 26#include "panic.h"
27#include "clkctrl-imx233.h" 27#include "clkctrl-imx233.h"
28#include "icoll-imx233.h"
28#include "clock-target.h" /* CPUFREQ_* are defined here */ 29#include "clock-target.h" /* CPUFREQ_* are defined here */
29 30
30/* Digital control */ 31/* Digital control */
@@ -43,48 +44,6 @@
43 44
44#define HW_USBPHY_CTRL (*(volatile uint32_t *)(HW_USBPHY_BASE + 0x30)) 45#define HW_USBPHY_CTRL (*(volatile uint32_t *)(HW_USBPHY_BASE + 0x30))
45 46
46/* Interrupt collector */
47#define HW_ICOLL_BASE 0x80000000
48
49#define HW_ICOLL_VECTOR (*(volatile uint32_t *)(HW_ICOLL_BASE + 0x0))
50
51#define HW_ICOLL_LEVELACK (*(volatile uint32_t *)(HW_ICOLL_BASE + 0x10))
52#define HW_ICOLL_LEVELACK__LEVEL0 0x1
53
54#define HW_ICOLL_CTRL (*(volatile uint32_t *)(HW_ICOLL_BASE + 0x20))
55#define HW_ICOLL_CTRL__IRQ_FINAL_ENABLE (1 << 16)
56#define HW_ICOLL_CTRL__ARM_RSE_MODE (1 << 18)
57
58#define HW_ICOLL_VBASE (*(volatile uint32_t *)(HW_ICOLL_BASE + 0x40))
59#define HW_ICOLL_INTERRUPT(i) (*(volatile uint32_t *)(HW_ICOLL_BASE + 0x120 + (i) * 0x10))
60#define HW_ICOLL_INTERRUPT__PRIORITY_BM 0x3
61#define HW_ICOLL_INTERRUPT__ENABLE 0x4
62#define HW_ICOLL_INTERRUPT__SOFTIRQ 0x8
63#define HW_ICOLL_INTERRUPT__ENFIQ 0x10
64
65#define INT_SRC_SSP2_ERROR 2
66#define INT_SRC_VDD5V 3
67#define INT_SRC_DAC_DMA 5
68#define INT_SRC_DAC_ERROR 6
69#define INT_SRC_ADC_DMA 7
70#define INT_SRC_ADC_ERROR 8
71#define INT_SRC_USB_CTRL 11
72#define INT_SRC_SSP1_DMA 14
73#define INT_SRC_SSP1_ERROR 15
74#define INT_SRC_GPIO0 16
75#define INT_SRC_GPIO1 17
76#define INT_SRC_GPIO2 18
77#define INT_SRC_GPIO(i) (INT_SRC_GPIO0 + (i))
78#define INT_SRC_SSP2_DMA 20
79#define INT_SRC_I2C_DMA 26
80#define INT_SRC_I2C_ERROR 27
81#define INT_SRC_TIMER(nr) (28 + (nr))
82#define INT_SRC_LRADC_CHx(x) (37 + (x))
83#define INT_SRC_LCDIF_DMA 45
84#define INT_SRC_LCDIF_ERROR 46
85#define INT_SRC_DCP 54
86#define INT_SRC_NR_SOURCES 66
87
88/** 47/**
89 * Absolute maximum CPU speed: 454.74 MHz 48 * Absolute maximum CPU speed: 454.74 MHz
90 * Intermediate CPU speeds: 392.73 MHz, 360MHz, 261.82 MHz, 64 MHz 49 * Intermediate CPU speeds: 392.73 MHz, 360MHz, 261.82 MHz, 64 MHz
@@ -101,8 +60,6 @@
101#define CPUFREQ_MAX IMX233_CPUFREQ_454_MHz 60#define CPUFREQ_MAX IMX233_CPUFREQ_454_MHz
102#define CPUFREQ_SLEEP IMX233_CPUFREQ_454_MHz 61#define CPUFREQ_SLEEP IMX233_CPUFREQ_454_MHz
103 62
104void imx233_enable_interrupt(int src, bool enable);
105void imx233_softirq(int src, bool enable);
106void udelay(unsigned us); 63void udelay(unsigned us);
107bool imx233_us_elapsed(uint32_t ref, unsigned us_delay); 64bool imx233_us_elapsed(uint32_t ref, unsigned us_delay);
108void imx233_reset_block(volatile uint32_t *block_reg); 65void imx233_reset_block(volatile uint32_t *block_reg);