1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) ASPEED Technology Inc. 4 */ 5 6 #ifndef _ASM_ARCH_SCU_AST2600_H 7 #define _ASM_ARCH_SCU_AST2600_H 8 9 #define AST2600_CLK_IN 25000000 10 11 struct ast2600_clk_priv { 12 struct ast2600_scu *scu; 13 int dly32_lookup[2][32]; 14 }; 15 16 struct hw_strap { 17 u32 hwstrap; /* 0x500 */ 18 u32 hwstrap_clr; /* 0x504 */ 19 u32 hwstrap_protect; /* 0x508 */ 20 }; 21 22 struct ast2600_scu { 23 u32 protection_key; /* 0x000 */ 24 u32 chip_id0; /* 0x004 */ 25 u32 reserve_0x08; /* 0x008 */ 26 u32 reserve_0x0C; /* 0x00C */ 27 u32 reserve_0x10; /* 0x010 */ 28 u32 chip_id1; /* 0x014 */ 29 u32 reserve_0x18; /* 0x018 */ 30 u32 reserve_0x1C; /* 0x01C */ 31 u32 reserve_0x20; /* 0x020 */ 32 u32 reserve_0x24; /* 0x024 */ 33 u32 reserve_0x28; /* 0x028 */ 34 u32 reserve_0x2c; /* 0x02C */ 35 u32 reserve_0x30; /* 0x030 */ 36 u32 reserve_0x34; /* 0x034 */ 37 u32 reserve_0x38; /* 0x038 */ 38 u32 reserve_0x3C; /* 0x03C */ 39 u32 sysreset_ctrl1; /* 0x040 */ 40 u32 sysreset_clr_ctrl1; /* 0x044 */ 41 u32 reserve_0x48; /* 0x048 */ 42 u32 reserve_0x4C; /* 0x04C */ 43 u32 sysreset_ctrl2; /* 0x050 */ 44 u32 sysreset_clr_ctrl2; /* 0x054 */ 45 u32 reserve_0x58; /* 0x058 */ 46 u32 reserve_0x5C; /* 0x05C */ 47 u32 extrst_sel1; /* 0x060 */ 48 u32 sysrst_evet_log1_1; /* 0x064 */ 49 u32 sysrst_evet_log1_2; /* 0x068 */ 50 u32 reserve_0x6C; /* 0x06C */ 51 u32 extrst_sel2; /* 0x070 */ 52 u32 sysrst_evet_log2_1; /* 0x074 */ 53 u32 sysrst_evet_log2_2; /* 0x078 */ 54 u32 reserve_0x7C; /* 0x07C */ 55 u32 clk_stop_ctrl1; /* 0x080 */ 56 u32 clk_stop_clr_ctrl1; /* 0x084 */ 57 u32 reserve_0x88; /* 0x088 */ 58 u32 reserve_0x8C; /* 0x08C */ 59 u32 clk_stop_ctrl2; /* 0x090 */ 60 u32 clk_stop_clr_ctrl2; /* 0x094 */ 61 u32 reserve_0x98; /* 0x098 */ 62 u32 reserve_0x9C; /* 0x09C */ 63 u32 reserve_0xA0; /* 0x0A0 */ 64 u32 reserve_0xA4; /* 0x0A4 */ 65 u32 reserve_0xA8; /* 0x0A8 */ 66 u32 reserve_0xAC; /* 0x0AC */ 67 u32 reserve_0xB0; /* 0x0B0 */ 68 u32 reserve_0xB4; /* 0x0B4 */ 69 u32 reserve_0xB8; /* 0x0B8 */ 70 u32 reserve_0xBC; /* 0x0BC */ 71 u32 misc_ctrl1; /* 0x0C0 */ 72 u32 misc_ctrl2; /* 0x0C4 */ 73 u32 backdoor_ctrl; /* 0x0C8 */ 74 u32 reserve_0xCC; /* 0x0CC */ 75 u32 misc_ctrl3; /* 0x0D0 */ 76 u32 misc_ctrl4; /* 0x0D4 */ 77 u32 reserve_0xD8; /* 0x0D8 */ 78 u32 reserve_0xDC; /* 0x0DC */ 79 u32 reserve_0xE0; /* 0x0E0 */ 80 u32 reserve_0xE4; /* 0x0E4 */ 81 u32 reserve_0xE8; /* 0x0E8 */ 82 u32 reserve_0xEC; /* 0x0EC */ 83 u32 reserve_0xF0; /* 0x0F0 */ 84 u32 reserve_0xF4; /* 0x0F4 */ 85 u32 reserve_0xF8; /* 0x0F8 */ 86 u32 reserve_0xFC; /* 0x0FC */ 87 u32 soc_scratch[4]; /* 0x100 */ 88 u32 reserve_0x110; /* 0x110 */ 89 u32 reserve_0x114; /* 0x114 */ 90 u32 reserve_0x118; /* 0x118 */ 91 u32 reserve_0x11C; /* 0x11C */ 92 u32 cpu_scratch_wp; /* 0x120 */ 93 u32 reserve_0x124[23]; /* 0x124 */ 94 u32 cpu_scratch[32]; /* 0x180 */ 95 u32 h_pll_param; /* 0x200 */ 96 u32 h_pll_ext_param; /* 0x204 */ 97 u32 reserve_0x208; /* 0x208 */ 98 u32 reserve_0x20C; /* 0x20C */ 99 u32 a_pll_param; /* 0x210 */ 100 u32 a_pll_ext_param; /* 0x214 */ 101 u32 reserve_0x218; /* 0x218 */ 102 u32 reserve_0x21C; /* 0x21C */ 103 u32 m_pll_param; /* 0x220 */ 104 u32 m_pll_ext_param; /* 0x224 */ 105 u32 reserve_0x228; /* 0x228 */ 106 u32 reserve_0x22C; /* 0x22C */ 107 u32 reserve_0x230[4]; /* 0x230 */ 108 u32 e_pll_param; /* 0x240 */ 109 u32 e_pll_ext_param; /* 0x244 */ 110 u32 reserve_0x248; /* 0x248 */ 111 u32 reserve_0x24C; /* 0x24C */ 112 u32 reserve_0x250[4]; /* 0x250 */ 113 u32 d_pll_param; /* 0x260 */ 114 u32 d_pll_ext_param; /* 0x264 */ 115 u32 reserve_0x268; /* 0x268 */ 116 u32 reserve_0x26C; /* 0x26C */ 117 u32 reserve_0x270[36]; /* 0x270 */ 118 u32 clk_sel1; /* 0x300 */ 119 u32 clk_sel2; /* 0x304 */ 120 u32 clk_sel3; /* 0x308 */ 121 u32 reserve_0x30C; /* 0x30C */ 122 u32 clk_sel4; /* 0x310 */ 123 u32 clk_sel5; /* 0x314 */ 124 u32 reserve_0x318; /* 0x318 */ 125 u32 reserve_0x31C; /* 0x31C */ 126 u32 freq_counter_ctrl1; /* 0x320 */ 127 u32 freq_counter_cmp1; /* 0x324 */ 128 u32 reserve_0x328; /* 0x328 */ 129 u32 uart_24m_ref_hpll; /* 0x32C */ 130 u32 freq_counter_ctrl2; /* 0x330 */ 131 u32 freq_counter_cmp2; /* 0x334 */ 132 u32 uart_24m_ref_uxclk; /* 0x338 */ 133 u32 uart_24m_ref_huxclk; /* 0x33C */ 134 u32 mac12_clk_delay; /* 0x340 */ 135 u32 reserve_0x344; /* 0x344 */ 136 u32 mac12_clk_delay_100M; /* 0x348 */ 137 u32 mac12_clk_delay_10M; /* 0x34c */ 138 u32 mac34_clk_delay; /* 0x350 */ 139 u32 reserve_0x354; /* 0x354 */ 140 u32 mac34_clk_delay_100M; /* 0x358 */ 141 u32 mac34_clk_delay_10M; /* 0x35c */ 142 u32 clk_duty_meas_ctrl; /* 0x360 */ 143 u32 clk_duty_sel0; /* 0x364 */ 144 u32 clk_duty_sel1; /* 0x368 */ 145 u32 clk_duty_meas_res; /* 0x36C */ 146 u32 clk_duty_meas_ctr2; /* 0x370 */ 147 u32 clk_duty_sel2; /* 0x374 */ 148 u32 reserve_0x378[34]; /* 0x378 ~ 0x3fc */ 149 u32 pinmux_ctrl1; /* 0x400 */ 150 u32 pinmux_ctrl2; /* 0x404 */ 151 u32 reserve_0x408; /* 0x408 */ 152 u32 pinmux_ctrl3; /* 0x40C */ 153 u32 pinmux_ctrl4; /* 0x410 */ 154 u32 pinmux_ctrl5; /* 0x414 */ 155 u32 pinmux_ctrl6; /* 0x418 */ 156 u32 pinmux_ctrl7; /* 0x41C */ 157 u32 reserve_0x420[4]; /* 0x420 ~ 0x42c */ 158 u32 pinmux_ctrl8; /* 0x430 */ 159 u32 pinmux_ctrl9; /* 0x434 */ 160 u32 pinmux_ctrl10; /* 0x438 */ 161 u32 reserve_0x43c; /* 0x43c */ 162 u32 pinmux_ctrl12; /* 0x440 */ 163 u32 pinmux_ctrl13; /* 0x444 */ 164 u32 reserv_0x448[2]; /* 0x448 ~ 0x44c */ 165 u32 pinmux_ctrl14; /* 0x450 */ 166 u32 pinmux_ctrl15; /* 0x454 */ 167 u32 pinmux_ctrl16; /* 0x458 */ 168 u32 reserv_0x45c[21]; /* 0x45c ~ 0x4ac */ 169 u32 pinmux_ctrl17; /* 0x4b0 */ 170 u32 pinmux_ctrl18; /* 0x4b4 */ 171 u32 pinmux_ctrl19; /* 0x4b8 */ 172 u32 pinmux_ctrl20; /* 0x4bc */ 173 u32 reserv_0x4c0[5]; /* 0x4c0 ~ 0x4d0 */ 174 u32 pinmux_ctrl22; /* 0x4d4 */ 175 u32 pinmux_ctrl23; /* 0x4d8 */ 176 u32 reserv_0x4dc[9]; /* 0x4dc ~ 0x4fc */ 177 struct hw_strap hwstrap1; /* 0x500 */ 178 u32 reserve_0x50C; /* 0x50C */ 179 struct hw_strap hwstrap2; /* 0x510 */ 180 u32 reserve_0x51C; /* 0x51C */ 181 u32 rng_ctrl; /* 0x520 */ 182 u32 rng_data; /* 0x524 */ 183 u32 reserve_0x528[6]; /* 0x528 */ 184 u32 pwr_save_wakeup_en1; /* 0x540 */ 185 u32 pwr_save_wakeup_ctrl1; /* 0x544 */ 186 u32 reserve_0x548[2]; /* 0x548 */ 187 u32 pwr_save_wakeup_en2; /* 0x550 */ 188 u32 pwr_save_wakeup_ctrl2; /* 0x554 */ 189 u32 reserve_0x558[2]; /* 0x558 */ 190 u32 intr1_ctrl_sts; /* 0x560 */ 191 u32 reserve_0x564[3]; /* 0x564 */ 192 u32 intr2_ctrl_sts; /* 0x570 */ 193 u32 reserve_0x574[3]; /* 0x574 */ 194 u32 reserve_0x580[4]; /* 0x580 */ 195 u32 opt_ctrl; /* 0x590 */ 196 u32 hw_config; /* 0x594 */ 197 u32 reserve_0x598[6]; /* 0x598 */ 198 u32 chip_unique_id[8]; /* 0x5B0 */ 199 u32 reserve_0x5E0[8]; /* 0x5E0 */ 200 u32 disgpio_in_pull_down0; /* 0x610 */ 201 u32 disgpio_in_pull_down1; /* 0x614 */ 202 u32 disgpio_in_pull_down2; /* 0x618 */ 203 u32 disgpio_in_pull_down3; /* 0x61C */ 204 u32 reserve_0x620[4]; /* 0x620 */ 205 u32 disgpio_in_pull_down4; /* 0x630 */ 206 u32 disgpio_in_pull_down5; /* 0x634 */ 207 u32 disgpio_in_pull_down6; /* 0x638 */ 208 u32 reserve_0x63C[5]; /* 0x63Cs */ 209 u32 sli_driving_strength; /* 0x650 */ 210 u32 reserve_0x654[235]; /* 0x654 */ 211 u32 cm3_ctrl; /* 0xA00 */ 212 u32 cm3_base; /* 0xA04 */ 213 u32 cm3_instr_mem_addr; /* 0xA08 */ 214 u32 cm3_data_mem_addr; /* 0xA0C */ 215 u32 reserve_0xA10[12]; /* 0xA10 */ 216 u32 cm3_cache_area; /* 0xA40 */ 217 u32 cm3_cache_invalid_ctrl; /* 0xA44 */ 218 u32 cm3_cache_fun_ctrl; /* 0xA48 */ 219 u32 reserve_0xA4C[108]; /* 0xA4C */ 220 u32 pci_config[3]; /* 0xC00 */ 221 u32 reserve_0xC0C[5]; /* 0xC0C */ 222 u32 pcie_config; /* 0xC20 */ 223 u32 mmio_decode; /* 0xC24 */ 224 u32 reloc_ctrl_decode[2]; /* 0xC28 */ 225 u32 reserve_0xC30[4]; /* 0xC30 */ 226 u32 mailbox_addr; /* 0xC40 */ 227 u32 shared_sram_decode[2]; /* 0xC44 */ 228 u32 bmc_rev_id; /* 0xC4C */ 229 u32 reserve_0xC50[5]; /* 0xC50 */ 230 u32 bmc_device_id; /* 0xC64 */ 231 u32 reserve_0xC68[102]; /* 0xC68 */ 232 u32 vga_scratch[8]; /* 0xE00 */ 233 }; 234 235 #endif /* _ASM_ARCH_SCU_AST2600_H */ 236