summaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxc/ssi-fiq.S
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2012-09-13 19:48:07 +0800
committerShawn Guo <shawn.guo@linaro.org>2012-10-15 10:02:19 +0800
commit3995eb82050a81e11217a0b88b2a5eddd53eb4d6 (patch)
treeb1c04b25317c9dade08d911e8077c8745df8a954 /arch/arm/plat-mxc/ssi-fiq.S
parente0557c0d1a3a9c38af6777d308f98da12c94e137 (diff)
downloadlinux-3995eb82050a81e11217a0b88b2a5eddd53eb4d6.tar.gz
ARM: imx: merge plat-mxc into mach-imx
It's really unnecessary to have plat-mxc, and let's merge it into mach-imx. It's pretty much just a bunch of file renaming and Kconfig/Makefile merge. To make the change less invasive, we keep using Kconfig symbol CONFIG_ARCH_MXC for mach-imx sub-architecture. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/plat-mxc/ssi-fiq.S')
-rw-r--r--arch/arm/plat-mxc/ssi-fiq.S147
1 files changed, 0 insertions, 147 deletions
diff --git a/arch/arm/plat-mxc/ssi-fiq.S b/arch/arm/plat-mxc/ssi-fiq.S
deleted file mode 100644
index a8b93c5f29b5..000000000000
--- a/arch/arm/plat-mxc/ssi-fiq.S
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2009 Sascha Hauer <s.hauer@pengutronix.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-
-/*
- * r8 = bit 0-15: tx offset, bit 16-31: tx buffer size
- * r9 = bit 0-15: rx offset, bit 16-31: rx buffer size
- */
-
-#define SSI_STX0 0x00
-#define SSI_SRX0 0x08
-#define SSI_SISR 0x14
-#define SSI_SIER 0x18
-#define SSI_SACNT 0x38
-
-#define SSI_SACNT_AC97EN (1 << 0)
-
-#define SSI_SIER_TFE0_EN (1 << 0)
-#define SSI_SISR_TFE0 (1 << 0)
-#define SSI_SISR_RFF0 (1 << 2)
-#define SSI_SIER_RFF0_EN (1 << 2)
-
- .text
- .global imx_ssi_fiq_start
- .global imx_ssi_fiq_end
- .global imx_ssi_fiq_base
- .global imx_ssi_fiq_rx_buffer
- .global imx_ssi_fiq_tx_buffer
-
-/*
- * imx_ssi_fiq_start is _intentionally_ not marked as a function symbol
- * using ENDPROC(). imx_ssi_fiq_start and imx_ssi_fiq_end are used to
- * mark the function body so that it can be copied to the FIQ vector in
- * the vectors page. imx_ssi_fiq_start should only be called as the result
- * of an FIQ: calling it directly will not work.
- */
-imx_ssi_fiq_start:
- ldr r12, .L_imx_ssi_fiq_base
-
- /* TX */
- ldr r13, .L_imx_ssi_fiq_tx_buffer
-
- /* shall we send? */
- ldr r11, [r12, #SSI_SIER]
- tst r11, #SSI_SIER_TFE0_EN
- beq 1f
-
- /* TX FIFO empty? */
- ldr r11, [r12, #SSI_SISR]
- tst r11, #SSI_SISR_TFE0
- beq 1f
-
- mov r10, #0x10000
- sub r10, #1
- and r10, r10, r8 /* r10: current buffer offset */
-
- add r13, r13, r10
-
- ldrh r11, [r13]
- strh r11, [r12, #SSI_STX0]
-
- ldrh r11, [r13, #2]
- strh r11, [r12, #SSI_STX0]
-
- ldrh r11, [r13, #4]
- strh r11, [r12, #SSI_STX0]
-
- ldrh r11, [r13, #6]
- strh r11, [r12, #SSI_STX0]
-
- add r10, #8
- lsr r11, r8, #16 /* r11: buffer size */
- cmp r10, r11
- lslgt r8, r11, #16
- addle r8, #8
-1:
- /* RX */
-
- /* shall we receive? */
- ldr r11, [r12, #SSI_SIER]
- tst r11, #SSI_SIER_RFF0_EN
- beq 1f
-
- /* RX FIFO full? */
- ldr r11, [r12, #SSI_SISR]
- tst r11, #SSI_SISR_RFF0
- beq 1f
-
- ldr r13, .L_imx_ssi_fiq_rx_buffer
-
- mov r10, #0x10000
- sub r10, #1
- and r10, r10, r9 /* r10: current buffer offset */
-
- add r13, r13, r10
-
- ldr r11, [r12, #SSI_SACNT]
- tst r11, #SSI_SACNT_AC97EN
-
- ldr r11, [r12, #SSI_SRX0]
- strh r11, [r13]
-
- ldr r11, [r12, #SSI_SRX0]
- strh r11, [r13, #2]
-
- /* dummy read to skip slot 12 */
- ldrne r11, [r12, #SSI_SRX0]
-
- ldr r11, [r12, #SSI_SRX0]
- strh r11, [r13, #4]
-
- ldr r11, [r12, #SSI_SRX0]
- strh r11, [r13, #6]
-
- /* dummy read to skip slot 12 */
- ldrne r11, [r12, #SSI_SRX0]
-
- add r10, #8
- lsr r11, r9, #16 /* r11: buffer size */
- cmp r10, r11
- lslgt r9, r11, #16
- addle r9, #8
-
-1:
- @ return from FIQ
- subs pc, lr, #4
-
- .align
-.L_imx_ssi_fiq_base:
-imx_ssi_fiq_base:
- .word 0x0
-.L_imx_ssi_fiq_rx_buffer:
-imx_ssi_fiq_rx_buffer:
- .word 0x0
-.L_imx_ssi_fiq_tx_buffer:
-imx_ssi_fiq_tx_buffer:
- .word 0x0
-.L_imx_ssi_fiq_end:
-imx_ssi_fiq_end:
-