| 1 | /* SPDX-License-Identifier: GPL-2.0 */
|
| 2 | /*
|
| 3 | * Copyright 2005, 2007 Simtec Electronics
|
| 4 | * http://armlinux.simtec.co.uk/
|
| 5 | * Ben Dooks <ben@simtec.co.uk>
|
| 6 | */
|
| 7 |
|
| 8 | |
| 9 |
|
| 10 | /* The S5PV210/S5PC110 implementations are as belows. */
|
| 11 |
|
| 12 | .macro fifo_level_s5pv210 rd, rx
|
| 13 | ldr \rd, [\rx, |
| 14 | ARM_BE8(rev \rd, \rd)
|
| 15 | and \rd, \rd, |
| 16 | .endm
|
| 17 |
|
| 18 | .macro fifo_full_s5pv210 rd, rx
|
| 19 | ldr \rd, [\rx, |
| 20 | ARM_BE8(rev \rd, \rd)
|
| 21 | tst \rd, |
| 22 | .endm
|
| 23 |
|
| 24 | /* The S3C2440 implementations are used by default as they are the
|
| 25 | * most widely re-used */
|
| 26 |
|
| 27 | .macro fifo_level_s3c2440 rd, rx
|
| 28 | ldr \rd, [\rx, |
| 29 | ARM_BE8(rev \rd, \rd)
|
| 30 | and \rd, \rd, |
| 31 | .endm
|
| 32 |
|
| 33 | |
| 34 | |
| 35 | |
| 36 |
|
| 37 | .macro fifo_full_s3c2440 rd, rx
|
| 38 | ldr \rd, [\rx, |
| 39 | ARM_BE8(rev \rd, \rd)
|
| 40 | tst \rd, |
| 41 | .endm
|
| 42 |
|
| 43 | |
| 44 | |
| 45 | |
| 46 |
|
| 47 | .macro senduart,rd,rx
|
| 48 | strb \rd, [\rx, |
| 49 | .endm
|
| 50 |
|
| 51 | .macro busyuart, rd, rx
|
| 52 | ldr \rd, [\rx, |
| 53 | ARM_BE8(rev \rd, \rd)
|
| 54 | tst \rd, |
| 55 | beq 1001f @
|
| 56 | @ FIFO enabled...
|
| 57 | 1003:
|
| 58 | fifo_full \rd, \rx
|
| 59 | bne 1003b
|
| 60 | b 1002f
|
| 61 |
|
| 62 | 1001:
|
| 63 | @ busy waiting for non fifo
|
| 64 | ldr \rd, [\rx, |
| 65 | ARM_BE8(rev \rd, \rd)
|
| 66 | tst \rd, |
| 67 | beq 1001b
|
| 68 |
|
| 69 | 1002: @ exit busyuart
|
| 70 | .endm
|
| 71 |
|
| 72 | .macro waituartcts,rd,rx
|
| 73 | .endm
|
| 74 |
|
| 75 | .macro waituarttxrdy,rd,rx
|
| 76 | ldr \rd, [\rx, |
| 77 | ARM_BE8(rev \rd, \rd)
|
| 78 | tst \rd, |
| 79 | beq 1001f @
|
| 80 | @ FIFO enabled...
|
| 81 | 1003:
|
| 82 | fifo_level \rd, \rx
|
| 83 | teq \rd, |
| 84 | bne 1003b
|
| 85 | b 1002f
|
| 86 | 1001:
|
| 87 | @ idle waiting for non fifo
|
| 88 | ldr \rd, [\rx, |
| 89 | ARM_BE8(rev \rd, \rd)
|
| 90 | tst \rd, |
| 91 | beq 1001b
|
| 92 |
|
| 93 | 1002: @ exit busyuart
|
| 94 | .endm
|