Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ARM] 4090/2: avoid clash between PXA and SA1111 defines

The Lubbock platform uses both a PXA25x and a SA1111 at the same time.
Both chips have the same "Serial Audio Controller" registers although
the SA1111 one is never expected to be used in preference to the PXA25x
one. So let's disable the SA1111 defines whenever compilation is for a
PXA architecture and make the PXA defines always defined.

This removes a bunch of "already defined" warnings as well since the
current hack to prevent them depended on include ordering which wasn't
always right.

While at it, clean up the SA1111 defines allowing to get rid of the
__CCREG() macro.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Nicolas Pitre and committed by
Russell King
bc43fd40 ca83b0bc

+35 -61
-5
include/asm-arm/arch-pxa/pxa-regs.h
··· 463 463 * Serial Audio Controller 464 464 */ 465 465 466 - /* FIXME: This clash with SA1111 defines */ 467 - #ifndef _ASM_ARCH_SA1111 468 - 469 466 #define SACR0 __REG(0x40400000) /* Global Control Register */ 470 467 #define SACR1 __REG(0x40400004) /* Serial Audio I 2 S/MSB-Justified Control Register */ 471 468 #define SASR0 __REG(0x4040000C) /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Register */ ··· 499 502 #define SAIMR_TUR (1 << 5) /* Enable Tx FIFO Underrun Condition Interrupt */ 500 503 #define SAIMR_RFS (1 << 4) /* Enable Rx FIFO Service Interrupt */ 501 504 #define SAIMR_TFS (1 << 3) /* Enable Tx FIFO Service Interrupt */ 502 - 503 - #endif 504 505 505 506 /* 506 507 * AC97 Controller registers
+35 -56
include/asm-arm/hardware/sa1111.h
··· 29 29 #define _SA1111(x) ((x) + sa1111->resource.start) 30 30 #endif 31 31 32 + #define sa1111_writel(val,addr) __raw_writel(val, addr) 33 + #define sa1111_readl(addr) __raw_readl(addr) 34 + 32 35 /* 33 36 * 26 bits of the SA-1110 address bus are available to the SA-1111. 34 37 * Use these when feeding target addresses to the DMA engines. ··· 46 43 */ 47 44 48 45 #define SA1111_SAC_DMA_MIN_XFER (0x800) 49 - 50 - /* 51 - * SA1111 register definitions. 52 - */ 53 - #define __CCREG(x) __REGP(SA1111_VBASE + (x)) 54 - 55 - #define sa1111_writel(val,addr) __raw_writel(val, addr) 56 - #define sa1111_readl(addr) __raw_readl(addr) 57 46 58 47 /* 59 48 * System Bus Interface (SBI) ··· 189 194 * SADR Serial Audio Data Register (16 x 32-bit) 190 195 */ 191 196 192 - #define _SACR0 _SA1111( 0x0600 ) 193 - #define _SACR1 _SA1111( 0x0604 ) 194 - #define _SACR2 _SA1111( 0x0608 ) 195 - #define _SASR0 _SA1111( 0x060c ) 196 - #define _SASR1 _SA1111( 0x0610 ) 197 - #define _SASCR _SA1111( 0x0618 ) 198 - #define _L3_CAR _SA1111( 0x061c ) 199 - #define _L3_CDR _SA1111( 0x0620 ) 200 - #define _ACCAR _SA1111( 0x0624 ) 201 - #define _ACCDR _SA1111( 0x0628 ) 202 - #define _ACSAR _SA1111( 0x062c ) 203 - #define _ACSDR _SA1111( 0x0630 ) 204 - #define _SADTCS _SA1111( 0x0634 ) 205 - #define _SADTSA _SA1111( 0x0638 ) 206 - #define _SADTCA _SA1111( 0x063c ) 207 - #define _SADTSB _SA1111( 0x0640 ) 208 - #define _SADTCB _SA1111( 0x0644 ) 209 - #define _SADRCS _SA1111( 0x0648 ) 210 - #define _SADRSA _SA1111( 0x064c ) 211 - #define _SADRCA _SA1111( 0x0650 ) 212 - #define _SADRSB _SA1111( 0x0654 ) 213 - #define _SADRCB _SA1111( 0x0658 ) 214 - #define _SAITR _SA1111( 0x065c ) 215 - #define _SADR _SA1111( 0x0680 ) 197 + #define SA1111_SERAUDIO 0x0600 216 198 217 - #define SACR0 __CCREG(0x0600) 218 - #define SACR1 __CCREG(0x0604) 219 - #define SACR2 __CCREG(0x0608) 220 - #define SASR0 __CCREG(0x060c) 221 - #define SASR1 __CCREG(0x0610) 222 - #define SASCR __CCREG(0x0618) 223 - #define L3_CAR __CCREG(0x061c) 224 - #define L3_CDR __CCREG(0x0620) 225 - #define ACCAR __CCREG(0x0624) 226 - #define ACCDR __CCREG(0x0628) 227 - #define ACSAR __CCREG(0x062c) 228 - #define ACSDR __CCREG(0x0630) 229 - #define SADTCS __CCREG(0x0634) 230 - #define SADTSA __CCREG(0x0638) 231 - #define SADTCA __CCREG(0x063c) 232 - #define SADTSB __CCREG(0x0640) 233 - #define SADTCB __CCREG(0x0644) 234 - #define SADRCS __CCREG(0x0648) 235 - #define SADRSA __CCREG(0x064c) 236 - #define SADRCA __CCREG(0x0650) 237 - #define SADRSB __CCREG(0x0654) 238 - #define SADRCB __CCREG(0x0658) 239 - #define SAITR __CCREG(0x065c) 240 - #define SADR __CCREG(0x0680) 199 + /* 200 + * These are offsets from the above base. 201 + */ 202 + #define SA1111_SACR0 0x00 203 + #define SA1111_SACR1 0x04 204 + #define SA1111_SACR2 0x08 205 + #define SA1111_SASR0 0x0c 206 + #define SA1111_SASR1 0x10 207 + #define SA1111_SASCR 0x18 208 + #define SA1111_L3_CAR 0x1c 209 + #define SA1111_L3_CDR 0x20 210 + #define SA1111_ACCAR 0x24 211 + #define SA1111_ACCDR 0x28 212 + #define SA1111_ACSAR 0x2c 213 + #define SA1111_ACSDR 0x30 214 + #define SA1111_SADTCS 0x34 215 + #define SA1111_SADTSA 0x38 216 + #define SA1111_SADTCA 0x3c 217 + #define SA1111_SADTSB 0x40 218 + #define SA1111_SADTCB 0x44 219 + #define SA1111_SADRCS 0x48 220 + #define SA1111_SADRSA 0x4c 221 + #define SA1111_SADRCA 0x50 222 + #define SA1111_SADRSB 0x54 223 + #define SA1111_SADRCB 0x58 224 + #define SA1111_SAITR 0x5c 225 + #define SA1111_SADR 0x80 226 + 227 + #ifndef CONFIG_ARCH_PXA 241 228 242 229 #define SACR0_ENB (1<<0) 243 230 #define SACR0_BCKD (1<<2) ··· 306 329 #define SAITR_TDBDB (1<<9) 307 330 #define SAITR_RDBDA (1<<10) 308 331 #define SAITR_RDBDB (1<<11) 332 + 333 + #endif /* !CONFIG_ARCH_PXA */ 309 334 310 335 /* 311 336 * General-Purpose I/O Interface