1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * UniPhier SBC (System Bus Controller) registers
4  *
5  * Copyright (C) 2011-2014 Panasonic Corporation
6  * Copyright (C) 2015-2016 Socionext Inc.
7  */
8 
9 #ifndef ARCH_SBC_REGS_H
10 #define ARCH_SBC_REGS_H
11 
12 #define	SBBASE_BASE		0x58c00100
13 #define	SBBASE(x)		(SBBASE_BASE + (x) * 0x10)
14 
15 #define	SBBASE0			(SBBASE(0))
16 #define	SBBASE1			(SBBASE(1))
17 #define	SBBASE2			(SBBASE(2))
18 #define	SBBASE3			(SBBASE(3))
19 #define	SBBASE4			(SBBASE(4))
20 #define	SBBASE5			(SBBASE(5))
21 #define	SBBASE6			(SBBASE(6))
22 #define	SBBASE7			(SBBASE(7))
23 
24 #define	SBBASE_BANK_ENABLE	(0x00000001)
25 
26 #define	SBCTRL_BASE		0x58c00200
27 #define	SBCTRL(x, y)		(SBCTRL_BASE + (x) * 0x10 + (y) * 4)
28 
29 #define	SBCTRL00		SBCTRL(0, 0)
30 #define	SBCTRL01		SBCTRL(0, 1)
31 #define	SBCTRL02		SBCTRL(0, 2)
32 #define	SBCTRL03		SBCTRL(0, 3)
33 #define	SBCTRL04		(SBCTRL_BASE + 0x100)
34 
35 #define	SBCTRL10		SBCTRL(1, 0)
36 #define	SBCTRL11		SBCTRL(1, 1)
37 #define	SBCTRL12		SBCTRL(1, 2)
38 #define	SBCTRL13		SBCTRL(1, 3)
39 #define	SBCTRL14		(SBCTRL_BASE + 0x110)
40 
41 #define	SBCTRL20		SBCTRL(2, 0)
42 #define	SBCTRL21		SBCTRL(2, 1)
43 #define	SBCTRL22		SBCTRL(2, 2)
44 #define	SBCTRL23		SBCTRL(2, 3)
45 #define	SBCTRL24		(SBCTRL_BASE + 0x120)
46 
47 #define	SBCTRL30		SBCTRL(3, 0)
48 #define	SBCTRL31		SBCTRL(3, 1)
49 #define	SBCTRL32		SBCTRL(3, 2)
50 #define	SBCTRL33		SBCTRL(3, 3)
51 #define	SBCTRL34		(SBCTRL_BASE + 0x130)
52 
53 #define	SBCTRL40		SBCTRL(4, 0)
54 #define	SBCTRL41		SBCTRL(4, 1)
55 #define	SBCTRL42		SBCTRL(4, 2)
56 #define	SBCTRL43		SBCTRL(4, 3)
57 #define	SBCTRL44		(SBCTRL_BASE + 0x140)
58 
59 #define	SBCTRL50		SBCTRL(5, 0)
60 #define	SBCTRL51		SBCTRL(5, 1)
61 #define	SBCTRL52		SBCTRL(5, 2)
62 #define	SBCTRL53		SBCTRL(5, 3)
63 #define	SBCTRL54		(SBCTRL_BASE + 0x150)
64 
65 #define	SBCTRL60		SBCTRL(6, 0)
66 #define	SBCTRL61		SBCTRL(6, 1)
67 #define	SBCTRL62		SBCTRL(6, 2)
68 #define	SBCTRL63		SBCTRL(6, 3)
69 #define	SBCTRL64		(SBCTRL_BASE + 0x160)
70 
71 #define	SBCTRL70		SBCTRL(7, 0)
72 #define	SBCTRL71		SBCTRL(7, 1)
73 #define	SBCTRL72		SBCTRL(7, 2)
74 #define	SBCTRL73		SBCTRL(7, 3)
75 #define	SBCTRL74		(SBCTRL_BASE + 0x170)
76 
77 #define PC0CTRL				0x598000c0
78 
79 #ifndef __ASSEMBLY__
80 #include <linux/io.h>
81 static inline int boot_is_swapped(void)
82 {
83 	return !(readl(SBBASE0) & SBBASE_BANK_ENABLE);
84 }
85 #endif
86 
87 #endif	/* ARCH_SBC_REGS_H */
88