diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-06 16:21:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-06 16:21:16 -0400 |
commit | 8e73e367f7dc50f1d1bc22a63e5764bb4eea9b48 (patch) | |
tree | 9bf593c1fc7612bcdd64b9ba46e41d340f9e94d3 /arch/arm/include/debug | |
parent | d2f3e9eb7c9e12e89f0ac5f0dbc7a9aed0ea925d (diff) | |
parent | 7323f219533e01cc075ba45a76f3e5b214adb23f (diff) |
Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC cleanups from Olof Johansson:
"This branch contains code cleanups, moves and removals for 3.12.
There's a large number of various cleanups, and a nice net removal of
13500 lines of code.
Highlights worth mentioning are:
- A series of patches from Stephen Boyd removing the ARM local timer
API.
- Move of Qualcomm MSM IOMMU code to drivers/iommu.
- Samsung PWM driver cleanups from Tomasz Figa, removing legacy PWM
driver and switching over to the drivers/pwm one.
- Removal of some unusued auto-generated headers for OMAP2+ (PRM/CM).
There's also a move of a header file out of include/linux/i2c/ to
platform_data, where it really belongs. It touches mostly ARM
platform code for include changes so we took it through our tree"
* tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
ARM: OMAP2+: Add back the define for AM33XX_RST_GLOBAL_WARM_SW_MASK
gpio: (gpio-pca953x) move header to linux/platform_data/
arm: zynq: hotplug: Remove unreachable code
ARM: SAMSUNG: Remove unnecessary exynos4_default_sdhci*()
tegra: simplify use of devm_ioremap_resource
ARM: SAMSUNG: Remove plat/regs-timer.h header
ARM: SAMSUNG: Remove remaining uses of plat/regs-timer.h header
ARM: SAMSUNG: Remove pwm-clock infrastructure
ARM: SAMSUNG: Remove old PWM timer platform devices
pwm: Remove superseded pwm-samsung-legacy driver
ARM: SAMSUNG: Modify board files to use new PWM platform device
ARM: SAMSUNG: Rework private data handling in dev-backlight
pwm: Add new pwm-samsung driver
ARM: mach-mvebu: remove redundant DT parsing and validation
ARM: msm: Only compile io.c on platforms that use it
iommu/msm: Move mach includes to iommu directory
ARM: msm: Remove devices-iommu.c
ARM: msm: Move mach/board.h contents to common.h
ARM: msm: Migrate msm_timer to CLOCKSOURCE_OF_DECLARE
ARM: msm: Remove TMR and TMR0 static mappings
...
Diffstat (limited to 'arch/arm/include/debug')
-rw-r--r-- | arch/arm/include/debug/msm.S | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/arch/arm/include/debug/msm.S b/arch/arm/include/debug/msm.S new file mode 100644 index 000000000000..9166e1bc470e --- /dev/null +++ b/arch/arm/include/debug/msm.S | |||
@@ -0,0 +1,93 @@ | |||
1 | /* | ||
2 | * | ||
3 | * Copyright (C) 2007 Google, Inc. | ||
4 | * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | ||
5 | * Author: Brian Swetland <swetland@google.com> | ||
6 | * | ||
7 | * This software is licensed under the terms of the GNU General Public | ||
8 | * License version 2, as published by the Free Software Foundation, and | ||
9 | * may be copied, distributed, and modified under those terms. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | |||
18 | #if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_QSD8X50) | ||
19 | #define MSM_UART1_PHYS 0xA9A00000 | ||
20 | #define MSM_UART2_PHYS 0xA9B00000 | ||
21 | #define MSM_UART3_PHYS 0xA9C00000 | ||
22 | #elif defined(CONFIG_ARCH_MSM7X30) | ||
23 | #define MSM_UART1_PHYS 0xACA00000 | ||
24 | #define MSM_UART2_PHYS 0xACB00000 | ||
25 | #define MSM_UART3_PHYS 0xACC00000 | ||
26 | #endif | ||
27 | |||
28 | #if defined(CONFIG_DEBUG_MSM_UART1) | ||
29 | #define MSM_DEBUG_UART_BASE 0xE1000000 | ||
30 | #define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS | ||
31 | #elif defined(CONFIG_DEBUG_MSM_UART2) | ||
32 | #define MSM_DEBUG_UART_BASE 0xE1000000 | ||
33 | #define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS | ||
34 | #elif defined(CONFIG_DEBUG_MSM_UART3) | ||
35 | #define MSM_DEBUG_UART_BASE 0xE1000000 | ||
36 | #define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS | ||
37 | #endif | ||
38 | |||
39 | #ifdef CONFIG_DEBUG_MSM8660_UART | ||
40 | #define MSM_DEBUG_UART_BASE 0xF0040000 | ||
41 | #define MSM_DEBUG_UART_PHYS 0x19C40000 | ||
42 | #endif | ||
43 | |||
44 | #ifdef CONFIG_DEBUG_MSM8960_UART | ||
45 | #define MSM_DEBUG_UART_BASE 0xF0040000 | ||
46 | #define MSM_DEBUG_UART_PHYS 0x16440000 | ||
47 | #endif | ||
48 | |||
49 | .macro addruart, rp, rv, tmp | ||
50 | #ifdef MSM_DEBUG_UART_PHYS | ||
51 | ldr \rp, =MSM_DEBUG_UART_PHYS | ||
52 | ldr \rv, =MSM_DEBUG_UART_BASE | ||
53 | #endif | ||
54 | .endm | ||
55 | |||
56 | .macro senduart, rd, rx | ||
57 | #ifdef CONFIG_MSM_HAS_DEBUG_UART_HS | ||
58 | @ Write the 1 character to UARTDM_TF | ||
59 | str \rd, [\rx, #0x70] | ||
60 | #else | ||
61 | str \rd, [\rx, #0x0C] | ||
62 | #endif | ||
63 | .endm | ||
64 | |||
65 | .macro waituart, rd, rx | ||
66 | #ifdef CONFIG_MSM_HAS_DEBUG_UART_HS | ||
67 | @ check for TX_EMT in UARTDM_SR | ||
68 | ldr \rd, [\rx, #0x08] | ||
69 | tst \rd, #0x08 | ||
70 | bne 1002f | ||
71 | @ wait for TXREADY in UARTDM_ISR | ||
72 | 1001: ldr \rd, [\rx, #0x14] | ||
73 | tst \rd, #0x80 | ||
74 | beq 1001b | ||
75 | 1002: | ||
76 | @ Clear TX_READY by writing to the UARTDM_CR register | ||
77 | mov \rd, #0x300 | ||
78 | str \rd, [\rx, #0x10] | ||
79 | @ Write 0x1 to NCF register | ||
80 | mov \rd, #0x1 | ||
81 | str \rd, [\rx, #0x40] | ||
82 | @ UARTDM reg. Read to induce delay | ||
83 | ldr \rd, [\rx, #0x08] | ||
84 | #else | ||
85 | @ wait for TX_READY | ||
86 | 1001: ldr \rd, [\rx, #0x08] | ||
87 | tst \rd, #0x04 | ||
88 | beq 1001b | ||
89 | #endif | ||
90 | .endm | ||
91 | |||
92 | .macro busyuart, rd, rx | ||
93 | .endm | ||