hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
/*
 * Copyright (C) 2011  Renesas Solutions Corp.
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#ifndef _ASM_CPU_SH7757_H_
#define _ASM_CPU_SH7757_H_
 
#define CCR        0xFF00001C
#define WTCNT        0xFFCC0000
#define CCR_CACHE_INIT    0x0000090b
#define CACHE_OC_NUM_WAYS    1
 
#ifndef __ASSEMBLY__        /* put C only stuff in this section */
/* MMU */
struct mmu_regs {
   unsigned int    reserved[4];
   unsigned int    mmucr;
};
#define MMU_BASE    ((struct mmu_regs *)0xff000000)
 
/* Watchdog */
#define WTCSR0        0xffcc0002
#define WRSTCSR_R    0xffcc0003
#define WRSTCSR_W    0xffcc0002
#define WTCSR_PREFIX        0xa500
#define WRSTCSR_PREFIX        0x6900
#define WRSTCSR_WOVF_PREFIX    0x9600
 
/* SCIF */
#define SCIF0_BASE    0xfe4b0000    /* The real name is SCIF2 */
#define SCIF1_BASE    0xfe4c0000    /* The real name is SCIF3 */
#define SCIF2_BASE    0xfe4d0000    /* The real name is SCIF4 */
 
/* SerMux */
#define SMR0        0xfe470000
 
/* TMU0 */
#define TMU_BASE    0xFE430000
 
/* ETHER, GETHER MAC address */
struct ether_mac_regs {
   unsigned int    reserved[114];
   unsigned int    mahr;
   unsigned int    reserved2;
   unsigned int    malr;
};
#define GETHER0_MAC_BASE    ((struct ether_mac_regs *)0xfee0400)
#define GETHER1_MAC_BASE    ((struct ether_mac_regs *)0xfee0c00)
#define ETHER0_MAC_BASE        ((struct ether_mac_regs *)0xfef0000)
#define ETHER1_MAC_BASE        ((struct ether_mac_regs *)0xfef0800)
 
/* GETHER */
struct gether_control_regs {
   unsigned int    gbecont;
};
#define GETHER_CONTROL_BASE    ((struct gether_control_regs *)0xffc10100)
#define GBECONT_RMII1        0x00020000
#define GBECONT_RMII0        0x00010000
 
/* USB0/1 */
struct usb_common_regs {
   unsigned short    reserved[129];
   unsigned short    suspmode;
};
#define USB0_COMMON_BASE    ((struct usb_common_regs *)0xfe450000)
#define USB1_COMMON_BASE    ((struct usb_common_regs *)0xfe4f0000)
 
struct usb0_phy_regs {
   unsigned short    reset;
   unsigned short    reserved[4];
   unsigned short    portsel;
};
#define USB0_PHY_BASE        ((struct usb0_phy_regs *)0xfe5f0000)
 
struct usb1_port_regs {
   unsigned int    port1sel;
   unsigned int    reserved;
   unsigned int    usb1intsts;
};
#define USB1_PORT_BASE        ((struct usb1_port_regs *)0xfe4f2000)
 
struct usb1_alignment_regs {
   unsigned int    ehcidatac;    /* 0xfe4fe018 */
   unsigned int    reserved[63];
   unsigned int    ohcidatac;
};
#define USB1_ALIGNMENT_BASE    ((struct usb1_alignment_regs *)0xfe4fe018)
 
/* GCTRL, GRA */
struct gctrl_regs {
   unsigned int    wprotect;
   unsigned int    gplldiv;
   unsigned int    gracr2;        /* GRA */
   unsigned int    gracr3;        /* GRA */
   unsigned int    reserved[4];
   unsigned int    fcntcr1;
   unsigned int    fcntcr2;
   unsigned int    reserved2[2];
   unsigned int    gpll1div;
   unsigned int    vcompsel;
   unsigned int    reserved3[62];
   unsigned int    fdlmon;
   unsigned int    reserved4[2];
   unsigned int    flcrmon;
   unsigned int    reserved5[944];
   unsigned int    spibootcan;
};
#define GCTRL_BASE        ((struct gctrl_regs *)0xffc10000)
 
/* PCIe setup */
struct pcie_setup_regs {
   unsigned int    pbictl0;
   unsigned int    gradevctl;
   unsigned int    reserved[2];
   unsigned int    bmcinf[6];
   unsigned int    reserved2[118];
   unsigned int    idset[2];
   unsigned int    subidset;
   unsigned int    reserved3[2];
   unsigned int    linkconfset[4];
   unsigned int    trsid;
   unsigned int    reserved4[6];
   unsigned int    toutset;
   unsigned int    reserved5[7];
   unsigned int    lad0;
   unsigned int    ladmsk0;
   unsigned int    lad1;
   unsigned int    ladmsk1;
   unsigned int    lad2;
   unsigned int    ladmsk2;
   unsigned int    lad3;
   unsigned int    ladmsk3;
   unsigned int    lad4;
   unsigned int    ladmsk4;
   unsigned int    lad5;
   unsigned int    ladmsk5;
   unsigned int    reserved6[94];
   unsigned int    vdmrxvid[2];
   unsigned int    reserved7;
   unsigned int    pbiintfr;
   unsigned int    pbiinten;
   unsigned int    msimap;
   unsigned int    barmap;
   unsigned int    baracsize;
   unsigned int    advserest;
   unsigned int    pbictl3;
   unsigned int    reserved8[8];
   unsigned int    pbictl1;
   unsigned int    scratch0;
   unsigned int    reserved9[6];
   unsigned int    pbictl2;
   unsigned int    reserved10;
   unsigned int    pbirev;
};
#define PCIE_SETUP_BASE        ((struct pcie_setup_regs *)0xffca1000)
 
struct pcie_system_bus_regs {
   unsigned int    reserved[3];
   unsigned int    endictl0;
   unsigned int    endictl1;
};
#define PCIE_SYSTEM_BUS_BASE    ((struct pcie_system_bus_regs *)0xffca1600)
 
 
/* PCIe-Bridge */
struct pciebrg_regs {
   unsigned short    ctrl_h8s;
   unsigned short    reserved[7];
   unsigned short    cp_addr;
   unsigned short    reserved2;
   unsigned short    cp_data;
   unsigned short    reserved3;
   unsigned short    cp_ctrl;
};
#define PCIEBRG_BASE        ((struct pciebrg_regs *)0xffd60000)
 
/* CPU version */
#define CCN_PRR            0xff000044
#define prr_mask(_val)        ((_val >> 4) & 0xff)
#define PRR_SH7757_B0        0x10
#define PRR_SH7757_C0        0x11
 
#define is_sh7757_b0(_val)                        \
({                                    \
   int __ret = prr_mask(__raw_readl(CCN_PRR)) == PRR_SH7757_B0;    \
   __ret;                                \
})
#endif    /* ifndef __ASSEMBLY__ */
 
#endif    /* _ASM_CPU_SH7757_H_ */