diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 19:00:54 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 19:00:54 -0500 |
commit | dca1d9f6d7ae428c193f32bd3e9a4ca13176648b (patch) | |
tree | 02de8c3503c1c811754423d2fa3f3b4978044f6e /arch/arm/mach-sa1100 | |
parent | 9ff99339447de403a46be5e3f23d0c794d540b06 (diff) | |
parent | 91e013827c0bcbb187ecf02213c5446b6f62d445 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (370 commits)
ARM: S3C2443: Add set_rate and round_rate calls for armdiv clock
ARM: S3C2443: Remove #if 0 for clk_mpll
ARM: S3C2443: Update notes on MPLLREF clock
ARM: S3C2443: Further clksrc-clk conversions
ARM: S3C2443: Change to using plat-samsung clksrc-clk implementation
USB: Fix s3c-hsotg build following Samsung platform header moves
ARM: S3C64XX: Reintroduce unconditional build of audio device
ARM: 5961/1: ux500: fix CLKRST addresses
ARM: 5977/1: arm: Enable backtrace printing on oops when PC is corrupted
ASoC: Fix S3C64xx IIS driver for Samsung header reorg
ARM: S3C2440: Fix plat-s3c24xx move of s3c2440/s3c2442 support
[ARM] pxa: fix typo in mxm8x10.h
[ARM] pxa/raumfeld: set GPIO drive bits for LED pins
[ARM] pxa/zeus: Add support for mcp2515 CAN bus
[ARM] pxa/zeus: Add support for onboard max6369 watchdog
[ARM] pxa/zeus: Add Eurotech as the manufacturer
[ARM] pxa/zeus: Correct the USB host initialisation flags
[ARM] pxa/zeus: Allow usage of 8250-compatible UART in uncompress
[ARM] pxa: refactor uncompress.h for non-PXA uarts
[ARM] mmp2: fix incorrect calling of chip->mask_ack() for 2nd level cascaded IRQs
...
Diffstat (limited to 'arch/arm/mach-sa1100')
-rw-r--r-- | arch/arm/mach-sa1100/badge4.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/collie.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/collie.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/irqs.h | 91 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/jornada720.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/neponset.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/time.c | 8 |
7 files changed, 24 insertions, 101 deletions
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index 051ec0f0023c..259cb2c15fff 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
@@ -51,6 +51,10 @@ static struct resource sa1111_resources[] = { | |||
51 | }, | 51 | }, |
52 | }; | 52 | }; |
53 | 53 | ||
54 | static struct sa1111_platform_data sa1111_info = { | ||
55 | .irq_base = IRQ_BOARD_END, | ||
56 | }; | ||
57 | |||
54 | static u64 sa1111_dmamask = 0xffffffffUL; | 58 | static u64 sa1111_dmamask = 0xffffffffUL; |
55 | 59 | ||
56 | static struct platform_device sa1111_device = { | 60 | static struct platform_device sa1111_device = { |
@@ -59,6 +63,7 @@ static struct platform_device sa1111_device = { | |||
59 | .dev = { | 63 | .dev = { |
60 | .dma_mask = &sa1111_dmamask, | 64 | .dma_mask = &sa1111_dmamask, |
61 | .coherent_dma_mask = 0xffffffff, | 65 | .coherent_dma_mask = 0xffffffff, |
66 | .platform_data = &sa1111_info, | ||
62 | }, | 67 | }, |
63 | .num_resources = ARRAY_SIZE(sa1111_resources), | 68 | .num_resources = ARRAY_SIZE(sa1111_resources), |
64 | .resource = sa1111_resources, | 69 | .resource = sa1111_resources, |
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 9982c5c28edf..5d5f330c5d94 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c | |||
@@ -234,6 +234,10 @@ static struct resource locomo_resources[] = { | |||
234 | }, | 234 | }, |
235 | }; | 235 | }; |
236 | 236 | ||
237 | static struct locomo_platform_data locomo_info = { | ||
238 | .irq_base = IRQ_BOARD_START, | ||
239 | }; | ||
240 | |||
237 | struct platform_device collie_locomo_device = { | 241 | struct platform_device collie_locomo_device = { |
238 | .name = "locomo", | 242 | .name = "locomo", |
239 | .id = 0, | 243 | .id = 0, |
diff --git a/arch/arm/mach-sa1100/include/mach/collie.h b/arch/arm/mach-sa1100/include/mach/collie.h index 71a0b3fdcc8c..52acda7061b7 100644 --- a/arch/arm/mach-sa1100/include/mach/collie.h +++ b/arch/arm/mach-sa1100/include/mach/collie.h | |||
@@ -72,13 +72,6 @@ | |||
72 | #define COLLIE_IRQ_GPIO_GA_INT IRQ_GPIO25 | 72 | #define COLLIE_IRQ_GPIO_GA_INT IRQ_GPIO25 |
73 | #define COLLIE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO26 | 73 | #define COLLIE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO26 |
74 | 74 | ||
75 | #define COLLIE_LCM_IRQ_GPIO_RTS IRQ_LOCOMO_GPIO0 | ||
76 | #define COLLIE_LCM_IRQ_GPIO_CTS IRQ_LOCOMO_GPIO1 | ||
77 | #define COLLIE_LCM_IRQ_GPIO_DSR IRQ_LOCOMO_GPIO2 | ||
78 | #define COLLIE_LCM_IRQ_GPIO_DTR IRQ_LOCOMO_GPIO3 | ||
79 | #define COLLIE_LCM_IRQ_GPIO_nSD_DETECT IRQ_LOCOMO_GPIO13 | ||
80 | #define COLLIE_LCM_IRQ_GPIO_nSD_WP IRQ_LOCOMO_GPIO14 | ||
81 | |||
82 | /* GPIO's on the TC35143AF (Toshiba Analog Frontend) */ | 75 | /* GPIO's on the TC35143AF (Toshiba Analog Frontend) */ |
83 | #define COLLIE_TC35143_GPIO_BASE (GPIO_MAX + 13) | 76 | #define COLLIE_TC35143_GPIO_BASE (GPIO_MAX + 13) |
84 | #define COLLIE_TC35143_GPIO_VERSION0 UCB_IO_0 | 77 | #define COLLIE_TC35143_GPIO_VERSION0 UCB_IO_0 |
diff --git a/arch/arm/mach-sa1100/include/mach/irqs.h b/arch/arm/mach-sa1100/include/mach/irqs.h index ae81f80b0cf9..8c8845b5ae5b 100644 --- a/arch/arm/mach-sa1100/include/mach/irqs.h +++ b/arch/arm/mach-sa1100/include/mach/irqs.h | |||
@@ -68,93 +68,17 @@ | |||
68 | #define IRQ_BOARD_START 49 | 68 | #define IRQ_BOARD_START 49 |
69 | #define IRQ_BOARD_END 65 | 69 | #define IRQ_BOARD_END 65 |
70 | 70 | ||
71 | #define IRQ_SA1111_START (IRQ_BOARD_END) | ||
72 | #define IRQ_GPAIN0 (IRQ_BOARD_END + 0) | ||
73 | #define IRQ_GPAIN1 (IRQ_BOARD_END + 1) | ||
74 | #define IRQ_GPAIN2 (IRQ_BOARD_END + 2) | ||
75 | #define IRQ_GPAIN3 (IRQ_BOARD_END + 3) | ||
76 | #define IRQ_GPBIN0 (IRQ_BOARD_END + 4) | ||
77 | #define IRQ_GPBIN1 (IRQ_BOARD_END + 5) | ||
78 | #define IRQ_GPBIN2 (IRQ_BOARD_END + 6) | ||
79 | #define IRQ_GPBIN3 (IRQ_BOARD_END + 7) | ||
80 | #define IRQ_GPBIN4 (IRQ_BOARD_END + 8) | ||
81 | #define IRQ_GPBIN5 (IRQ_BOARD_END + 9) | ||
82 | #define IRQ_GPCIN0 (IRQ_BOARD_END + 10) | ||
83 | #define IRQ_GPCIN1 (IRQ_BOARD_END + 11) | ||
84 | #define IRQ_GPCIN2 (IRQ_BOARD_END + 12) | ||
85 | #define IRQ_GPCIN3 (IRQ_BOARD_END + 13) | ||
86 | #define IRQ_GPCIN4 (IRQ_BOARD_END + 14) | ||
87 | #define IRQ_GPCIN5 (IRQ_BOARD_END + 15) | ||
88 | #define IRQ_GPCIN6 (IRQ_BOARD_END + 16) | ||
89 | #define IRQ_GPCIN7 (IRQ_BOARD_END + 17) | ||
90 | #define IRQ_MSTXINT (IRQ_BOARD_END + 18) | ||
91 | #define IRQ_MSRXINT (IRQ_BOARD_END + 19) | ||
92 | #define IRQ_MSSTOPERRINT (IRQ_BOARD_END + 20) | ||
93 | #define IRQ_TPTXINT (IRQ_BOARD_END + 21) | ||
94 | #define IRQ_TPRXINT (IRQ_BOARD_END + 22) | ||
95 | #define IRQ_TPSTOPERRINT (IRQ_BOARD_END + 23) | ||
96 | #define SSPXMTINT (IRQ_BOARD_END + 24) | ||
97 | #define SSPRCVINT (IRQ_BOARD_END + 25) | ||
98 | #define SSPROR (IRQ_BOARD_END + 26) | ||
99 | #define AUDXMTDMADONEA (IRQ_BOARD_END + 32) | ||
100 | #define AUDRCVDMADONEA (IRQ_BOARD_END + 33) | ||
101 | #define AUDXMTDMADONEB (IRQ_BOARD_END + 34) | ||
102 | #define AUDRCVDMADONEB (IRQ_BOARD_END + 35) | ||
103 | #define AUDTFSR (IRQ_BOARD_END + 36) | ||
104 | #define AUDRFSR (IRQ_BOARD_END + 37) | ||
105 | #define AUDTUR (IRQ_BOARD_END + 38) | ||
106 | #define AUDROR (IRQ_BOARD_END + 39) | ||
107 | #define AUDDTS (IRQ_BOARD_END + 40) | ||
108 | #define AUDRDD (IRQ_BOARD_END + 41) | ||
109 | #define AUDSTO (IRQ_BOARD_END + 42) | ||
110 | #define IRQ_USBPWR (IRQ_BOARD_END + 43) | ||
111 | #define IRQ_HCIM (IRQ_BOARD_END + 44) | ||
112 | #define IRQ_HCIBUFFACC (IRQ_BOARD_END + 45) | ||
113 | #define IRQ_HCIRMTWKP (IRQ_BOARD_END + 46) | ||
114 | #define IRQ_NHCIMFCIR (IRQ_BOARD_END + 47) | ||
115 | #define IRQ_USB_PORT_RESUME (IRQ_BOARD_END + 48) | ||
116 | #define IRQ_S0_READY_NINT (IRQ_BOARD_END + 49) | ||
117 | #define IRQ_S1_READY_NINT (IRQ_BOARD_END + 50) | ||
118 | #define IRQ_S0_CD_VALID (IRQ_BOARD_END + 51) | ||
119 | #define IRQ_S1_CD_VALID (IRQ_BOARD_END + 52) | ||
120 | #define IRQ_S0_BVD1_STSCHG (IRQ_BOARD_END + 53) | ||
121 | #define IRQ_S1_BVD1_STSCHG (IRQ_BOARD_END + 54) | ||
122 | |||
123 | #define IRQ_LOCOMO_START (IRQ_BOARD_END) | ||
124 | #define IRQ_LOCOMO_KEY (IRQ_BOARD_END + 0) | ||
125 | #define IRQ_LOCOMO_GPIO0 (IRQ_BOARD_END + 1) | ||
126 | #define IRQ_LOCOMO_GPIO1 (IRQ_BOARD_END + 2) | ||
127 | #define IRQ_LOCOMO_GPIO2 (IRQ_BOARD_END + 3) | ||
128 | #define IRQ_LOCOMO_GPIO3 (IRQ_BOARD_END + 4) | ||
129 | #define IRQ_LOCOMO_GPIO4 (IRQ_BOARD_END + 5) | ||
130 | #define IRQ_LOCOMO_GPIO5 (IRQ_BOARD_END + 6) | ||
131 | #define IRQ_LOCOMO_GPIO6 (IRQ_BOARD_END + 7) | ||
132 | #define IRQ_LOCOMO_GPIO7 (IRQ_BOARD_END + 8) | ||
133 | #define IRQ_LOCOMO_GPIO8 (IRQ_BOARD_END + 9) | ||
134 | #define IRQ_LOCOMO_GPIO9 (IRQ_BOARD_END + 10) | ||
135 | #define IRQ_LOCOMO_GPIO10 (IRQ_BOARD_END + 11) | ||
136 | #define IRQ_LOCOMO_GPIO11 (IRQ_BOARD_END + 12) | ||
137 | #define IRQ_LOCOMO_GPIO12 (IRQ_BOARD_END + 13) | ||
138 | #define IRQ_LOCOMO_GPIO13 (IRQ_BOARD_END + 14) | ||
139 | #define IRQ_LOCOMO_GPIO14 (IRQ_BOARD_END + 15) | ||
140 | #define IRQ_LOCOMO_GPIO15 (IRQ_BOARD_END + 16) | ||
141 | #define IRQ_LOCOMO_LT (IRQ_BOARD_END + 17) | ||
142 | #define IRQ_LOCOMO_SPI_RFR (IRQ_BOARD_END + 18) | ||
143 | #define IRQ_LOCOMO_SPI_RFW (IRQ_BOARD_END + 19) | ||
144 | #define IRQ_LOCOMO_SPI_REND (IRQ_BOARD_END + 20) | ||
145 | #define IRQ_LOCOMO_SPI_TEND (IRQ_BOARD_END + 21) | ||
146 | |||
147 | /* | 71 | /* |
148 | * Figure out the MAX IRQ number. | 72 | * Figure out the MAX IRQ number. |
149 | * | 73 | * |
150 | * If we have an SA1111, the max IRQ is S1_BVD1_STSCHG+1. | 74 | * If we have an SA1111, the max IRQ is S1_BVD1_STSCHG+1. |
151 | * If we have an LoCoMo, the max IRQ is IRQ_LOCOMO_SPI_TEND+1 | 75 | * If we have an LoCoMo, the max IRQ is IRQ_BOARD_START + 4 |
152 | * Otherwise, we have the standard IRQs only. | 76 | * Otherwise, we have the standard IRQs only. |
153 | */ | 77 | */ |
154 | #ifdef CONFIG_SA1111 | 78 | #ifdef CONFIG_SA1111 |
155 | #define NR_IRQS (IRQ_S1_BVD1_STSCHG + 1) | 79 | #define NR_IRQS (IRQ_BOARD_END + 55) |
156 | #elif defined(CONFIG_SHARP_LOCOMO) | 80 | #elif defined(CONFIG_SHARPSL_LOCOMO) |
157 | #define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1) | 81 | #define NR_IRQS (IRQ_BOARD_START + 4) |
158 | #else | 82 | #else |
159 | #define NR_IRQS (IRQ_BOARD_START) | 83 | #define NR_IRQS (IRQ_BOARD_START) |
160 | #endif | 84 | #endif |
@@ -166,10 +90,3 @@ | |||
166 | #define IRQ_NEPONSET_SMC9196 (IRQ_BOARD_START + 0) | 90 | #define IRQ_NEPONSET_SMC9196 (IRQ_BOARD_START + 0) |
167 | #define IRQ_NEPONSET_USAR (IRQ_BOARD_START + 1) | 91 | #define IRQ_NEPONSET_USAR (IRQ_BOARD_START + 1) |
168 | #define IRQ_NEPONSET_SA1111 (IRQ_BOARD_START + 2) | 92 | #define IRQ_NEPONSET_SA1111 (IRQ_BOARD_START + 2) |
169 | |||
170 | /* LoCoMo Interrupts (CONFIG_SHARP_LOCOMO) */ | ||
171 | #define IRQ_LOCOMO_KEY_BASE (IRQ_BOARD_START + 0) | ||
172 | #define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1) | ||
173 | #define IRQ_LOCOMO_LT_BASE (IRQ_BOARD_START + 2) | ||
174 | #define IRQ_LOCOMO_SPI_BASE (IRQ_BOARD_START + 3) | ||
175 | |||
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index 13ebd2d99bfd..d3ec620618f1 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c | |||
@@ -208,6 +208,10 @@ static struct resource sa1111_resources[] = { | |||
208 | }, | 208 | }, |
209 | }; | 209 | }; |
210 | 210 | ||
211 | static struct sa1111_platform_data sa1111_info = { | ||
212 | .irq_base = IRQ_BOARD_END, | ||
213 | }; | ||
214 | |||
211 | static u64 sa1111_dmamask = 0xffffffffUL; | 215 | static u64 sa1111_dmamask = 0xffffffffUL; |
212 | 216 | ||
213 | static struct platform_device sa1111_device = { | 217 | static struct platform_device sa1111_device = { |
@@ -216,6 +220,7 @@ static struct platform_device sa1111_device = { | |||
216 | .dev = { | 220 | .dev = { |
217 | .dma_mask = &sa1111_dmamask, | 221 | .dma_mask = &sa1111_dmamask, |
218 | .coherent_dma_mask = 0xffffffff, | 222 | .coherent_dma_mask = 0xffffffff, |
223 | .platform_data = &sa1111_info, | ||
219 | }, | 224 | }, |
220 | .num_resources = ARRAY_SIZE(sa1111_resources), | 225 | .num_resources = ARRAY_SIZE(sa1111_resources), |
221 | .resource = sa1111_resources, | 226 | .resource = sa1111_resources, |
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index 6ccd175bc4cf..0b505d9f22d6 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -241,6 +241,10 @@ static struct resource sa1111_resources[] = { | |||
241 | }, | 241 | }, |
242 | }; | 242 | }; |
243 | 243 | ||
244 | static struct sa1111_platform_data sa1111_info = { | ||
245 | .irq_base = IRQ_BOARD_END, | ||
246 | }; | ||
247 | |||
244 | static u64 sa1111_dmamask = 0xffffffffUL; | 248 | static u64 sa1111_dmamask = 0xffffffffUL; |
245 | 249 | ||
246 | static struct platform_device sa1111_device = { | 250 | static struct platform_device sa1111_device = { |
@@ -249,6 +253,7 @@ static struct platform_device sa1111_device = { | |||
249 | .dev = { | 253 | .dev = { |
250 | .dma_mask = &sa1111_dmamask, | 254 | .dma_mask = &sa1111_dmamask, |
251 | .coherent_dma_mask = 0xffffffff, | 255 | .coherent_dma_mask = 0xffffffff, |
256 | .platform_data = &sa1111_info, | ||
252 | }, | 257 | }, |
253 | .num_resources = ARRAY_SIZE(sa1111_resources), | 258 | .num_resources = ARRAY_SIZE(sa1111_resources), |
254 | .resource = sa1111_resources, | 259 | .resource = sa1111_resources, |
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index b9cbb56d6e9d..74b6e0e570b6 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c | |||
@@ -35,14 +35,12 @@ static irqreturn_t sa1100_ost0_interrupt(int irq, void *dev_id) | |||
35 | static int | 35 | static int |
36 | sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c) | 36 | sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c) |
37 | { | 37 | { |
38 | unsigned long flags, next, oscr; | 38 | unsigned long next, oscr; |
39 | 39 | ||
40 | raw_local_irq_save(flags); | ||
41 | OIER |= OIER_E0; | 40 | OIER |= OIER_E0; |
42 | next = OSCR + delta; | 41 | next = OSCR + delta; |
43 | OSMR0 = next; | 42 | OSMR0 = next; |
44 | oscr = OSCR; | 43 | oscr = OSCR; |
45 | raw_local_irq_restore(flags); | ||
46 | 44 | ||
47 | return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0; | 45 | return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0; |
48 | } | 46 | } |
@@ -50,16 +48,12 @@ sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c) | |||
50 | static void | 48 | static void |
51 | sa1100_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c) | 49 | sa1100_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c) |
52 | { | 50 | { |
53 | unsigned long flags; | ||
54 | |||
55 | switch (mode) { | 51 | switch (mode) { |
56 | case CLOCK_EVT_MODE_ONESHOT: | 52 | case CLOCK_EVT_MODE_ONESHOT: |
57 | case CLOCK_EVT_MODE_UNUSED: | 53 | case CLOCK_EVT_MODE_UNUSED: |
58 | case CLOCK_EVT_MODE_SHUTDOWN: | 54 | case CLOCK_EVT_MODE_SHUTDOWN: |
59 | raw_local_irq_save(flags); | ||
60 | OIER &= ~OIER_E0; | 55 | OIER &= ~OIER_E0; |
61 | OSSR = OSSR_M0; | 56 | OSSR = OSSR_M0; |
62 | raw_local_irq_restore(flags); | ||
63 | break; | 57 | break; |
64 | 58 | ||
65 | case CLOCK_EVT_MODE_RESUME: | 59 | case CLOCK_EVT_MODE_RESUME: |