blob: 2505a2f83d3d892e725f07e14a6521006aa104ce [file] [log] [blame]
Eugen Hristev1e30fa12020-03-10 11:56:03 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * sama7g5.dtsi - Device Tree Include file for SAMA7G5 SoC.
4 *
5 * Copyright (C) 2020 Microchip Technology Inc. and its subsidiaries
6 *
7 * Author: Eugen Hristev <eugen.hristev@microchip.com>
8 * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
9 *
10 */
11
12#include "skeleton.dtsi"
Eugen Hristev130bdad2022-01-04 18:21:54 +020013#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
Claudiu Beznea5002eb72020-06-02 15:26:12 +030015#include <dt-bindings/clk/at91.h>
Eugen Hristev130bdad2022-01-04 18:21:54 +020016#include <dt-bindings/dma/at91.h>
Eugen Hristev1e30fa12020-03-10 11:56:03 +020017
18/ {
19 model = "Microchip SAMA7G5 family SoC";
20 compatible = "microchip,sama7g5";
Eugen Hristev130bdad2022-01-04 18:21:54 +020021 interrupt-parent = <&gic>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +020022
23 clocks {
Claudiu Beznead1092822020-06-02 15:22:21 +030024 slow_rc_osc: slow_rc_osc {
25 compatible = "fixed-clock";
26 #clock-cells = <0>;
27 clock-frequency = <32000>;
28 };
29
30 main_rc: main_rc {
31 compatible = "fixed-clock";
32 #clock-cells = <0>;
33 clock-frequency = <12000000>;
34 };
35
Eugen Hristev1e30fa12020-03-10 11:56:03 +020036 slow_xtal: slow_xtal {
37 compatible = "fixed-clock";
38 #clock-cells = <0>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +020039 };
40
41 main_xtal: main_xtal {
42 compatible = "fixed-clock";
43 #clock-cells = <0>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +020044 };
Eugen Hristev1e30fa12020-03-10 11:56:03 +020045 };
46
Claudiu Beznea1417d1d2020-06-02 15:35:55 +030047 cpus {
48 #address-cells = <1>;
49 #size-cells = <0>;
50
51 A7_0: cpu@0 {
52 device_type = "cpu";
53 compatible = "arm,cortex-a7";
54 clocks = <&pmc PMC_TYPE_CORE 8>, <&pmc PMC_TYPE_CORE 22>, <&main_xtal>;
55 clock-names = "cpu", "master", "xtal";
56 };
57 };
58
Eugen Hristev1e30fa12020-03-10 11:56:03 +020059 ahb {
60 compatible = "simple-bus";
61 #address-cells = <1>;
62 #size-cells = <1>;
63
64 apb {
65 compatible = "simple-bus";
66 #address-cells = <1>;
67 #size-cells = <1>;
68
Eugen Hristevc06e2fe2020-06-04 10:37:13 +030069 pioA: pinctrl@e0014000 {
Eugen Hristevd98cfdb2021-04-07 11:39:29 +030070 compatible = "microchip,sama7g5-gpio";
Eugen Hristevc06e2fe2020-06-04 10:37:13 +030071 reg = <0xe0014000 0x800>;
72 gpio-controller;
73 #gpio-cells = <2>;
74 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
75 status = "okay";
76
77 pinctrl: pinctrl_default {
78 compatible = "microchip,sama7g5-pinctrl";
79 };
80 };
81
Claudiu Beznea18401a22020-06-02 15:24:25 +030082 pmc: pmc@e0018000 {
83 compatible = "microchip,sama7g5-pmc";
84 reg = <0xe0018000 0x200>;
85 #clock-cells = <2>;
86 clocks = <&clk32 1>, <&clk32 0>, <&main_xtal>, <&main_rc>;
87 clock-names = "td_slck", "md_slck", "main_xtal", "main_rc";
88 status = "okay";
89 };
90
Claudiu Bezneac09db792020-06-02 15:23:49 +030091 clk32: sckc@e001d050 {
92 compatible = "microchip,sam9x60-sckc";
93 reg = <0xe001d050 0x4>;
94 clocks = <&slow_rc_osc>, <&slow_xtal>;
95 #clock-cells = <1>;
96 };
97
Tudor Ambarusf774fd92021-11-03 19:07:40 +020098 qspi0: spi@e080c000 {
99 compatible = "microchip,sama7g5-ospi";
100 reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
101 reg-names = "qspi_base", "qspi_mmap";
102 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
103 clock-names = "pclk", "gclk";
104 assigned-clocks = <&pmc PMC_TYPE_GCK 78>;
105 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
106 #address-cells = <1>;
107 #size-cells = <0>;
108 status = "disabled";
109 };
110
111 qspi1: spi@e0810000 {
112 compatible = "microchip,sama7g5-qspi";
113 reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
114 reg-names = "qspi_base", "qspi_mmap";
115 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
116 clock-names = "pclk", "gclk";
117 assigned-clocks = <&pmc PMC_TYPE_GCK 78>;
118 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
119 #address-cells = <1>;
120 #size-cells = <0>;
121 status = "disabled";
122 };
123
Eugen Hristevb67871f2020-07-30 15:52:13 +0300124 sdmmc0: sdio-host@e1204000 {
125 compatible = "microchip,sama7g5-sdhci";
126 reg = <0xe1204000 0x300>;
127 clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
128 clock-names = "hclock", "multclk";
129 assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
130 assigned-clock-rates = <200000000>;
131 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
132 status = "disabled";
133 };
134
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200135 sdmmc1: sdio-host@e1208000 {
136 compatible = "microchip,sama7g5-sdhci";
137 reg = <0xe1208000 0x300>;
Claudiu Beznea5002eb72020-06-02 15:26:12 +0300138 clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
139 clock-names = "hclock", "multclk";
Eugen Hristev5bf95962020-07-30 15:50:59 +0300140 assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
141 assigned-clock-rates = <200000000>;
142 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200143 status = "disabled";
144 };
145
Claudiu Beznea5430a4e2020-06-02 18:42:18 +0300146 pit64b0: timer@e1800000 {
147 compatible = "microchip,sama7g5-pit64b";
148 reg = <0xe1800000 0x4000>;
149 clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
150 clock-names = "pclk", "gclk";
151 status = "okay";
152 };
153
Eugen Hristev9e95bf72020-07-31 15:19:23 +0300154 flx1: flexcom@e181c000 {
155 compatible = "atmel,sama5d2-flexcom";
156 reg = <0xe181c000 0x200>;
157 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
158 #address-cells = <1>;
159 #size-cells = <1>;
160 ranges = <0x0 0xe181c000 0x800>;
161 status = "disabled";
162
163 i2c1: i2c@600 {
164 compatible = "atmel,sama5d2-i2c";
165 reg = <0x600 0x200>;
166 #address-cells = <1>;
167 #size-cells = <0>;
168 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
169 };
170 };
171
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200172 uart0: serial@e1824200 {
173 compatible = "atmel,at91sam9260-usart";
174 reg = <0xe1824200 0x200>;
Claudiu Beznea5002eb72020-06-02 15:26:12 +0300175 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200176 clock-names = "usart";
177 status = "disabled";
178 };
Claudiu Beznea45cca2b2020-06-09 13:53:00 +0300179
180 gmac0: ethernet@e2800000 {
181 compatible = "cdns,sama7g5-gem";
182 reg = <0xe2800000 0x4000>;
183 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>;
184 clock-names = "hclk", "pclk", "tx_clk";
185 assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
186 assigned-clock-parents = <&pmc PMC_TYPE_CORE 21>; /* eth pll div. */
187 assigned-clock-rates = <125000000>;
188 status = "disabled";
189 };
Claudiu Beznea44550122020-06-09 13:53:45 +0300190
191 gmac1: ethernet@e2804000 {
192 compatible = "cdns,sama7g5-emac";
193 reg = <0xe2804000 0x1000>;
194 clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
195 clock-names = "pclk", "hclk";
196 status = "disabled";
197 };
Eugen Hristev130bdad2022-01-04 18:21:54 +0200198
199 dma0: dma-controller@e2808000 {
200 compatible = "microchip,sama7g5-dma";
201 reg = <0xe2808000 0x1000>;
202 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
203 #dma-cells = <1>;
204 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
205 clock-names = "dma_clk";
206 status = "disabled";
207 };
208
209 flx8: flexcom@e2818000 {
210 compatible = "atmel,sama5d2-flexcom";
211 reg = <0xe2818000 0x200>;
212 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
213 #address-cells = <1>;
214 #size-cells = <1>;
215 ranges = <0x0 0xe2818000 0x800>;
216 status = "disabled";
217
218 i2c8: i2c@600 {
219 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
220 reg = <0x600 0x200>;
221 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
222 #address-cells = <1>;
223 #size-cells = <0>;
224 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
225 atmel,fifo-size = <32>;
226 dmas = <&dma0 AT91_XDMAC_DT_PERID(21)>,
227 <&dma0 AT91_XDMAC_DT_PERID(22)>;
228 dma-names = "rx", "tx";
229 atmel,use-dma-rx;
230 atmel,use-dma-tx;
231 status = "disabled";
232 };
233 };
234
235 gic: interrupt-controller@e8c11000 {
236 compatible = "arm,cortex-a7-gic";
237 #interrupt-cells = <3>;
238 #address-cells = <0>;
239 interrupt-controller;
240 interrupt-parent;
241 reg = <0xe8c11000 0x1000>,
242 <0xe8c12000 0x2000>;
243 };
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200244 };
245 };
246};