Lines Matching +full:x +full:- +full:rp
1 /* SPDX-License-Identifier: GPL-2.0-only */
10 #define REG_PHYS_ADDR(x) ((x) + REG_PHYS_BASE) argument
11 #define REG_PHYS_ADDR_V7(x) ((x) + REG_PHYS_BASE_V7) argument
37 #define checkuart(rp, rv, family_id, family) \ argument
39 ldr rp, =family_id ; \
41 cmp rp, rv ; \
43 ldreq rp, =UARTA_##family ; \
47 .macro addruart, rp, rv, tmp
48 adr \rp, 99f @ actual addr of 99f
49 ldr \rv, [\rp] @ linked addr is stored there
50 sub \rv, \rv, \rp @ offset between the two
51 ldr \rp, [\rp, #4] @ linked brcmstb_uart_config
52 sub \tmp, \rp, \rv @ actual brcmstb_uart_config
53 ldr \rp, [\tmp] @ Load brcmstb_uart_config
54 cmp \rp, #1 @ needs initialization?
61 ldr \rp, =ARM_CPU_PART_MASK
62 and \rv, \rv, \rp
63 ldr \rp, =ARM_CPU_PART_BRAHMA_B53 @ check for B53 CPU
64 cmp \rv, \rp
70 ldreq \rp, =SUN_TOP_CTRL_BASE_V7
73 10: ldrne \rp, =SUN_TOP_CTRL_BASE @ load SUN_TOP_CTRL PA
74 ldr \rv, [\rp, #0] @ get register contents
79 20: checkuart(\rp, \rv, 0x33900000, 3390)
80 21: checkuart(\rp, \rv, 0x07211600, 72116)
81 22: checkuart(\rp, \rv, 0x72160000, 7216)
82 23: checkuart(\rp, \rv, 0x07216400, 72164)
83 24: checkuart(\rp, \rv, 0x07216500, 72165)
84 25: checkuart(\rp, \rv, 0x72500000, 7250)
85 26: checkuart(\rp, \rv, 0x72550000, 7255)
86 27: checkuart(\rp, \rv, 0x72600000, 7260)
87 28: checkuart(\rp, \rv, 0x72680000, 7268)
88 29: checkuart(\rp, \rv, 0x72710000, 7271)
89 30: checkuart(\rp, \rv, 0x72780000, 7278)
90 31: checkuart(\rp, \rv, 0x73640000, 7364)
91 32: checkuart(\rp, \rv, 0x73660000, 7366)
92 33: checkuart(\rp, \rv, 0x07416500, 74165)
93 34: checkuart(\rp, \rv, 0x07437100, 74371)
94 35: checkuart(\rp, \rv, 0x74390000, 7439)
95 36: checkuart(\rp, \rv, 0x74450000, 7445)
98 90: mov \rp, #0
102 91: str \rp, [\tmp, #4] @ Store in brcmstb_uart_phys
103 cmp \rp, #0 @ Valid UART address?
105 str \rp, [\tmp, #8] @ Store 0 in brcmstb_uart_virt
107 92: and \rv, \rp, #0xffffff @ offset within 16MB section
118 100: ldr \rp, [\tmp, #4] @ Load brcmstb_uart_phys
152 * In the kernel proper, this data is located in arch/arm/mach-bcm/brcmstb.c.
158 * to re-run the probing again later.