blob: eae623f7640138abb794f52cfc2604321947308e [file] [log] [blame]
Rafał Miłeckie90d2d52016-08-23 07:37:43 +02001/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include "skeleton.dtsi"
12
13/ {
14 interrupt-parent = <&gic>;
15
Rafał Miłecki3a599e02017-03-15 18:03:28 +010016 aliases {
17 serial0 = &uart0;
18 };
19
Rafał Miłeckie90d2d52016-08-23 07:37:43 +020020 chosen {
Rafał Miłecki3a599e02017-03-15 18:03:28 +010021 stdout-path = "serial0:115200n8";
Rafał Miłeckie90d2d52016-08-23 07:37:43 +020022 };
23
24 cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 cpu@0 {
29 device_type = "cpu";
30 compatible = "arm,cortex-a7";
31 reg = <0x0>;
32 };
33 };
34
35 mpcore {
36 compatible = "simple-bus";
37 ranges = <0x00000000 0x18310000 0x00008000>;
38 #address-cells = <1>;
39 #size-cells = <1>;
40
41 gic: interrupt-controller@1000 {
42 compatible = "arm,cortex-a7-gic";
43 #interrupt-cells = <3>;
44 #address-cells = <0>;
45 interrupt-controller;
46 reg = <0x1000 0x1000>,
47 <0x2000 0x0100>;
48 };
49 };
50
51 clocks {
52 #address-cells = <1>;
53 #size-cells = <1>;
54 ranges;
55
56 alp: oscillator {
57 #clock-cells = <0>;
58 compatible = "fixed-clock";
59 clock-frequency = <40000000>;
60 };
61 };
62
63 axi@18000000 {
64 compatible = "brcm,bus-axi";
65 reg = <0x18000000 0x1000>;
66 ranges = <0x00000000 0x18000000 0x00100000>;
67 #address-cells = <1>;
68 #size-cells = <1>;
69
70 #interrupt-cells = <1>;
71 interrupt-map-mask = <0x000fffff 0xffff>;
72 interrupt-map =
73 /* ChipCommon */
74 <0x00000000 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
75
76 /* IEEE 802.11 0 */
77 <0x00001000 0 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
78
79 /* PCIe Controller 0 */
80 <0x00002000 0 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
81 <0x00002000 1 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
82 <0x00002000 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
83 <0x00002000 3 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
84 <0x00002000 4 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
85 <0x00002000 5 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
86
87 /* USB 2.0 Controller */
88 <0x00004000 0 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
89
90 /* Ethernet Controller 0 */
91 <0x00005000 0 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
92
93 /* IEEE 802.11 1 */
94 <0x0000a000 0 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
95
96 /* Ethernet Controller 1 */
97 <0x0000b000 0 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
98
99 chipcommon: chipcommon@0 {
100 compatible = "simple-bus";
101 reg = <0x00000000 0x1000>;
102 ranges;
103
104 #address-cells = <1>;
105 #size-cells = <1>;
106
107 gpio-controller;
108 #gpio-cells = <2>;
109
110 uart0: serial@0300 {
111 compatible = "ns16550a";
112 reg = <0x0300 0x100>;
113 interrupt-parent = <&gic>;
114 interrupts = <GIC_PPI 16 IRQ_TYPE_LEVEL_HIGH>;
115 clocks = <&alp>;
116 status = "okay";
117 };
118 };
119
Rafał Miłeckib76907c2017-02-14 17:49:05 +0100120 pcie0: pcie@2000 {
121 reg = <0x00002000 0x1000>;
122 };
123
Rafał Miłeckie90d2d52016-08-23 07:37:43 +0200124 usb2: usb2@4000 {
125 reg = <0x4000 0x1000>;
126 ranges;
127 #address-cells = <1>;
128 #size-cells = <1>;
129
130 ehci: ehci@4000 {
131 compatible = "generic-ehci";
132 reg = <0x4000 0x1000>;
133 interrupt-parent = <&gic>;
134 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
Rafał Miłeckia503cf02016-12-07 08:56:55 +0100135
136 #address-cells = <1>;
137 #size-cells = <0>;
138
139 ehci_port1: port@1 {
140 reg = <1>;
141 };
142
143 ehci_port2: port@2 {
144 reg = <2>;
145 };
Rafał Miłeckie90d2d52016-08-23 07:37:43 +0200146 };
147
148 ohci: ohci@d000 {
149 #usb-cells = <0>;
150
151 compatible = "generic-ohci";
152 reg = <0xd000 0x1000>;
153 interrupt-parent = <&gic>;
154 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
Rafał Miłeckia503cf02016-12-07 08:56:55 +0100155
156 #address-cells = <1>;
157 #size-cells = <0>;
158
159 ohci_port1: port@1 {
160 reg = <1>;
161 };
162
163 ohci_port2: port@2 {
164 reg = <2>;
165 };
Rafał Miłeckie90d2d52016-08-23 07:37:43 +0200166 };
167 };
168
169 gmac0: ethernet@5000 {
170 reg = <0x5000 0x1000>;
171 };
172
173 gmac1: ethernet@b000 {
174 reg = <0xb000 0x1000>;
175 };
Rafał Miłecki547f2312016-09-17 22:13:46 +0200176
177 pmu@12000 {
178 compatible = "simple-mfd", "syscon";
179 reg = <0x00012000 0x00001000>;
180
181 ilp: ilp {
182 compatible = "brcm,bcm53573-ilp";
183 clocks = <&alp>;
184 #clock-cells = <0>;
185 clock-output-names = "ilp";
186 };
187 };
Rafał Miłeckie90d2d52016-08-23 07:37:43 +0200188 };
189};