summaryrefslogtreecommitdiffstats
path: root/arch/mips/boot/dts/loongson/loongson1.dtsi
blob: 5ba5a5d131ba0a8cdaa9cd1a1423a6f8c6aad442 (plain)
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
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2023-2025 Keguang Zhang <keguang.zhang@gmail.com>
 */

/dts-v1/;

#include <dt-bindings/clock/loongson,ls1x-clk.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;

	xtal: clock {
		compatible = "fixed-clock";
		clock-output-names = "xtal";
		#clock-cells = <0>;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			reg = <0>;
			device_type = "cpu";
			clocks = <&clkc LS1X_CLKID_CPU>;
			#clock-cells = <1>;
		};
	};

	cpu_intc: interrupt-controller {
		compatible = "mti,cpu-interrupt-controller";
		interrupt-controller;
		#interrupt-cells = <1>;
		#address-cells = <0>;
	};

	soc: bus@1fd00000 {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x1fd00000 0x130000>;

		intc0: interrupt-controller@1040 {
			compatible = "loongson,ls1x-intc";
			reg = <0x1040 0x18>;
			interrupt-controller;
			interrupt-parent = <&cpu_intc>;
			interrupts = <2>;
			#interrupt-cells = <2>;
		};

		intc1: interrupt-controller@1058 {
			compatible = "loongson,ls1x-intc";
			reg = <0x1058 0x18>;
			interrupt-controller;
			interrupt-parent = <&cpu_intc>;
			interrupts = <3>;
			#interrupt-cells = <2>;
		};

		intc2: interrupt-controller@1070 {
			compatible = "loongson,ls1x-intc";
			reg = <0x1070 0x18>;
			interrupt-controller;
			interrupt-parent = <&cpu_intc>;
			interrupts = <4>;
			#interrupt-cells = <2>;
		};

		intc3: interrupt-controller@1088 {
			compatible = "loongson,ls1x-intc";
			reg = <0x1088 0x18>;
			interrupt-controller;
			interrupt-parent = <&cpu_intc>;
			interrupts = <5>;
			#interrupt-cells = <2>;
		};

		gpio0: gpio@10c0 {
			compatible = "loongson,ls1x-gpio";
			reg = <0x10c0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio1: gpio@10c4 {
			compatible = "loongson,ls1x-gpio";
			reg = <0x10c4 0x4>;
			gpio-controller;
			#gpio-cells = <2>;
		};
	};

	apb: bus@1fe40000 {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x1fe40000 0xc0000>;

		uart0: serial@0 {
			compatible = "ns16550a";
			reg = <0x0 0x8>;
			clocks = <&clkc LS1X_CLKID_APB>;
			interrupt-parent = <&intc0>;
			interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
		};

		uart1: serial@4000 {
			compatible = "ns16550a";
			reg = <0x4000 0x8>;
			clocks = <&clkc LS1X_CLKID_APB>;
			interrupt-parent = <&intc0>;
			status = "disabled";
		};

		uart2: serial@8000 {
			compatible = "ns16550a";
			reg = <0x8000 0x8>;
			clocks = <&clkc LS1X_CLKID_APB>;
			interrupt-parent = <&intc0>;
			status = "disabled";
		};

		uart3: serial@c000 {
			compatible = "ns16550a";
			reg = <0xc000 0x8>;
			clocks = <&clkc LS1X_CLKID_APB>;
			interrupt-parent = <&intc0>;
			status = "disabled";
		};
	};
};