forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/arch/mips/include/asm/mach-loongson64/loongson.h
....@@ -1,11 +1,7 @@
1
+/* SPDX-License-Identifier: GPL-2.0-or-later */
12 /*
23 * Copyright (C) 2009 Lemote, Inc.
34 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of the GNU General Public License as published by the
7
- * Free Software Foundation; either version 2 of the License, or (at your
8
- * option) any later version.
95 */
106
117 #ifndef __ASM_MACH_LOONGSON64_LOONGSON_H
....@@ -16,8 +12,6 @@
1612 #include <linux/irq.h>
1713 #include <boot_param.h>
1814
19
-/* loongson internal northbridge initialization */
20
-extern void bonito_irq_init(void);
2115
2216 /* machine-specific reboot/halt operation */
2317 extern void mach_prepare_reboot(void);
....@@ -30,25 +24,10 @@
3024
3125 /* loongson-specific command line, env and memory initialization */
3226 extern void __init prom_init_memory(void);
33
-extern void __init prom_init_cmdline(void);
34
-extern void __init prom_init_machtype(void);
3527 extern void __init prom_init_env(void);
36
-#ifdef CONFIG_LOONGSON_UART_BASE
37
-extern unsigned long _loongson_uart_base[], loongson_uart_base[];
38
-extern void prom_init_loongson_uart_base(void);
39
-#endif
40
-
41
-static inline void prom_init_uart_base(void)
42
-{
43
-#ifdef CONFIG_LOONGSON_UART_BASE
44
- prom_init_loongson_uart_base();
45
-#endif
46
-}
28
+extern void *loongson_fdt_blob;
4729
4830 /* irq operation functions */
49
-extern void bonito_irqdispatch(void);
50
-extern void __init bonito_irq_init(void);
51
-extern void __init mach_init_irq(void);
5231 extern void mach_irq_dispatch(unsigned int pending);
5332 extern int mach_i8259_irq(void);
5433
....@@ -67,17 +46,6 @@
6746
6847 #define LOONGSON3_REG32(base, x) \
6948 (*(volatile u32 *)((char *)TO_UNCAC(base) + (x)))
70
-
71
-#define LOONGSON_IRQ_BASE 32
72
-#define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */
73
-
74
-#include <linux/interrupt.h>
75
-static inline void do_perfcnt_IRQ(void)
76
-{
77
-#if IS_ENABLED(CONFIG_OPROFILE)
78
- do_IRQ(LOONGSON2_PERFCNT_IRQ);
79
-#endif
80
-}
8149
8250 #define LOONGSON_FLASH_BASE 0x1c000000
8351 #define LOONGSON_FLASH_SIZE 0x02000000 /* 32M */
....@@ -113,11 +81,7 @@
11381 #define LOONGSON_PCICFG_SIZE 0x00000800 /* 2K */
11482 #define LOONGSON_PCICFG_TOP (LOONGSON_PCICFG_BASE+LOONGSON_PCICFG_SIZE-1)
11583
116
-#if defined(CONFIG_HT_PCI)
11784 #define LOONGSON_PCIIO_BASE loongson_sysconf.pci_io_base
118
-#else
119
-#define LOONGSON_PCIIO_BASE 0x1fd00000
120
-#endif
12185
12286 #define LOONGSON_PCIIO_SIZE 0x00100000 /* 1M */
12387 #define LOONGSON_PCIIO_TOP (LOONGSON_PCIIO_BASE+LOONGSON_PCIIO_SIZE-1)
....@@ -273,87 +237,5 @@
273237 #define LOONGSON_PCIMAP_PCIMAP_2 0x00040000
274238 #define LOONGSON_PCIMAP_WIN(WIN, ADDR) \
275239 ((((ADDR)>>26) & LOONGSON_PCIMAP_PCIMAP_LO0) << ((WIN)*6))
276
-
277
-#ifdef CONFIG_CPU_SUPPORTS_CPUFREQ
278
-#include <linux/cpufreq.h>
279
-extern struct cpufreq_frequency_table loongson2_clockmod_table[];
280
-#endif
281
-
282
-/*
283
- * address windows configuration module
284
- *
285
- * loongson2e do not have this module
286
- */
287
-#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
288
-
289
-/* address window config module base address */
290
-#define LOONGSON_ADDRWINCFG_BASE 0x3ff00000ul
291
-#define LOONGSON_ADDRWINCFG_SIZE 0x180
292
-
293
-extern unsigned long _loongson_addrwincfg_base;
294
-#define LOONGSON_ADDRWINCFG(offset) \
295
- (*(volatile u64 *)(_loongson_addrwincfg_base + (offset)))
296
-
297
-#define CPU_WIN0_BASE LOONGSON_ADDRWINCFG(0x00)
298
-#define CPU_WIN1_BASE LOONGSON_ADDRWINCFG(0x08)
299
-#define CPU_WIN2_BASE LOONGSON_ADDRWINCFG(0x10)
300
-#define CPU_WIN3_BASE LOONGSON_ADDRWINCFG(0x18)
301
-
302
-#define CPU_WIN0_MASK LOONGSON_ADDRWINCFG(0x20)
303
-#define CPU_WIN1_MASK LOONGSON_ADDRWINCFG(0x28)
304
-#define CPU_WIN2_MASK LOONGSON_ADDRWINCFG(0x30)
305
-#define CPU_WIN3_MASK LOONGSON_ADDRWINCFG(0x38)
306
-
307
-#define CPU_WIN0_MMAP LOONGSON_ADDRWINCFG(0x40)
308
-#define CPU_WIN1_MMAP LOONGSON_ADDRWINCFG(0x48)
309
-#define CPU_WIN2_MMAP LOONGSON_ADDRWINCFG(0x50)
310
-#define CPU_WIN3_MMAP LOONGSON_ADDRWINCFG(0x58)
311
-
312
-#define PCIDMA_WIN0_BASE LOONGSON_ADDRWINCFG(0x60)
313
-#define PCIDMA_WIN1_BASE LOONGSON_ADDRWINCFG(0x68)
314
-#define PCIDMA_WIN2_BASE LOONGSON_ADDRWINCFG(0x70)
315
-#define PCIDMA_WIN3_BASE LOONGSON_ADDRWINCFG(0x78)
316
-
317
-#define PCIDMA_WIN0_MASK LOONGSON_ADDRWINCFG(0x80)
318
-#define PCIDMA_WIN1_MASK LOONGSON_ADDRWINCFG(0x88)
319
-#define PCIDMA_WIN2_MASK LOONGSON_ADDRWINCFG(0x90)
320
-#define PCIDMA_WIN3_MASK LOONGSON_ADDRWINCFG(0x98)
321
-
322
-#define PCIDMA_WIN0_MMAP LOONGSON_ADDRWINCFG(0xa0)
323
-#define PCIDMA_WIN1_MMAP LOONGSON_ADDRWINCFG(0xa8)
324
-#define PCIDMA_WIN2_MMAP LOONGSON_ADDRWINCFG(0xb0)
325
-#define PCIDMA_WIN3_MMAP LOONGSON_ADDRWINCFG(0xb8)
326
-
327
-#define ADDRWIN_WIN0 0
328
-#define ADDRWIN_WIN1 1
329
-#define ADDRWIN_WIN2 2
330
-#define ADDRWIN_WIN3 3
331
-
332
-#define ADDRWIN_MAP_DST_DDR 0
333
-#define ADDRWIN_MAP_DST_PCI 1
334
-#define ADDRWIN_MAP_DST_LIO 1
335
-
336
-/*
337
- * s: CPU, PCIDMA
338
- * d: DDR, PCI, LIO
339
- * win: 0, 1, 2, 3
340
- * src: map source
341
- * dst: map destination
342
- * size: ~mask + 1
343
- */
344
-#define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\
345
- s##_WIN##w##_BASE = (src); \
346
- s##_WIN##w##_MMAP = (dst) | ADDRWIN_MAP_DST_##d; \
347
- s##_WIN##w##_MASK = ~(size-1); \
348
-} while (0)
349
-
350
-#define LOONGSON_ADDRWIN_CPUTOPCI(win, src, dst, size) \
351
- LOONGSON_ADDRWIN_CFG(CPU, PCI, win, src, dst, size)
352
-#define LOONGSON_ADDRWIN_CPUTODDR(win, src, dst, size) \
353
- LOONGSON_ADDRWIN_CFG(CPU, DDR, win, src, dst, size)
354
-#define LOONGSON_ADDRWIN_PCITODDR(win, src, dst, size) \
355
- LOONGSON_ADDRWIN_CFG(PCIDMA, DDR, win, src, dst, size)
356
-
357
-#endif /* ! CONFIG_CPU_SUPPORTS_ADDRWINCFG */
358240
359241 #endif /* __ASM_MACH_LOONGSON64_LOONGSON_H */