Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / amd / elba.dtsi
1 // SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
2 /*
3  * Copyright 2020-2022 Advanced Micro Devices, Inc.
4  */
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include "dt-bindings/interrupt-controller/arm-gic.h"
8
9 / {
10         model = "Elba ASIC Board";
11         compatible = "amd,pensando-elba";
12         interrupt-parent = <&gic>;
13         #address-cells = <2>;
14         #size-cells = <2>;
15
16         dma-coherent;
17
18         ahb_clk: oscillator0 {
19                 compatible = "fixed-clock";
20                 #clock-cells = <0>;
21         };
22
23         emmc_clk: oscillator2 {
24                 compatible = "fixed-clock";
25                 #clock-cells = <0>;
26         };
27
28         flash_clk: oscillator3 {
29                 compatible = "fixed-clock";
30                 #clock-cells = <0>;
31         };
32
33         ref_clk: oscillator4 {
34                 compatible = "fixed-clock";
35                 #clock-cells = <0>;
36         };
37
38         psci {
39                 compatible = "arm,psci-0.2";
40                 method = "smc";
41         };
42
43         timer {
44                 compatible = "arm,armv8-timer";
45                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
46                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
47                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
48                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
49         };
50
51         pmu {
52                 compatible = "arm,cortex-a72-pmu";
53                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
54         };
55
56         soc: soc {
57                 compatible = "simple-bus";
58                 #address-cells = <2>;
59                 #size-cells = <2>;
60                 ranges;
61
62                 i2c0: i2c@400 {
63                         compatible = "snps,designware-i2c";
64                         reg = <0x0 0x400 0x0 0x100>;
65                         clocks = <&ahb_clk>;
66                         #address-cells = <1>;
67                         #size-cells = <0>;
68                         i2c-sda-hold-time-ns = <480>;
69                         interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
70                         status = "disabled";
71                 };
72
73                 wdt0: watchdog@1400 {
74                         compatible = "snps,dw-wdt";
75                         reg = <0x0 0x1400 0x0 0x100>;
76                         clocks = <&ahb_clk>;
77                         interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
78                         status = "disabled";
79                 };
80
81                 qspi: spi@2400 {
82                         compatible = "amd,pensando-elba-qspi", "cdns,qspi-nor";
83                         reg = <0x0 0x2400 0x0 0x400>,
84                               <0x0 0x7fff0000 0x0 0x1000>;
85                         #address-cells = <1>;
86                         #size-cells = <0>;
87                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
88                         clocks = <&flash_clk>;
89                         cdns,fifo-depth = <1024>;
90                         cdns,fifo-width = <4>;
91                         cdns,trigger-address = <0x7fff0000>;
92                         status = "disabled";
93                 };
94
95                 spi0: spi@2800 {
96                         compatible = "amd,pensando-elba-spi";
97                         reg = <0x0 0x2800 0x0 0x100>;
98                         #address-cells = <1>;
99                         #size-cells = <0>;
100                         amd,pensando-elba-syscon = <&syscon>;
101                         clocks = <&ahb_clk>;
102                         interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
103                         num-cs = <2>;
104                         status = "disabled";
105                 };
106
107                 gpio0: gpio@4000 {
108                         compatible = "snps,dw-apb-gpio";
109                         reg = <0x0 0x4000 0x0 0x78>;
110                         #address-cells = <1>;
111                         #size-cells = <0>;
112                         status = "disabled";
113
114                         porta: gpio-port@0 {
115                                 compatible = "snps,dw-apb-gpio-port";
116                                 reg = <0>;
117                                 gpio-controller;
118                                 #gpio-cells = <2>;
119                                 ngpios = <8>;
120                                 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
121                                 interrupt-controller;
122                                 interrupt-parent = <&gic>;
123                                 #interrupt-cells = <2>;
124                         };
125
126                         portb: gpio-port@1 {
127                                 compatible = "snps,dw-apb-gpio-port";
128                                 reg = <1>;
129                                 gpio-controller;
130                                 #gpio-cells = <2>;
131                                 ngpios = <8>;
132                         };
133                 };
134
135                 uart0: serial@4800 {
136                         compatible = "ns16550a";
137                         reg = <0x0 0x4800 0x0 0x100>;
138                         clocks = <&ref_clk>;
139                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
140                         reg-shift = <2>;
141                         reg-io-width = <4>;
142                 };
143
144                 gic: interrupt-controller@800000 {
145                         compatible = "arm,gic-v3";
146                         reg = <0x0 0x800000 0x0 0x200000>,      /* GICD */
147                               <0x0 0xa00000 0x0 0x200000>,      /* GICR */
148                               <0x0 0x60000000 0x0 0x2000>,      /* GICC */
149                               <0x0 0x60010000 0x0 0x1000>,      /* GICH */
150                               <0x0 0x60020000 0x0 0x2000>;      /* GICV */
151                         #address-cells = <2>;
152                         #size-cells = <2>;
153                         #interrupt-cells = <3>;
154                         ranges;
155                         interrupt-controller;
156                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
157
158                         /*
159                          * Elba specific pre-ITS is enabled using the
160                          * existing property socionext,synquacer-pre-its
161                          */
162                         gic_its: msi-controller@820000 {
163                                 compatible = "arm,gic-v3-its";
164                                 reg = <0x0 0x820000 0x0 0x10000>;
165                                 msi-controller;
166                                 #msi-cells = <1>;
167                                 socionext,synquacer-pre-its =
168                                                         <0xc00000 0x1000000>;
169                         };
170                 };
171
172                 emmc: mmc@30440000 {
173                         compatible = "amd,pensando-elba-sd4hc", "cdns,sd4hc";
174                         reg = <0x0 0x30440000 0x0 0x10000>,
175                               <0x0 0x30480044 0x0 0x4>; /* byte-lane ctrl */
176                         clocks = <&emmc_clk>;
177                         interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
178                         cdns,phy-input-delay-sd-highspeed = <0x4>;
179                         cdns,phy-input-delay-legacy = <0x4>;
180                         cdns,phy-input-delay-sd-uhs-sdr50 = <0x6>;
181                         cdns,phy-input-delay-sd-uhs-ddr50 = <0x16>;
182                         mmc-ddr-1_8v;
183                         status = "disabled";
184                 };
185
186                 syscon: syscon@307c0000 {
187                         compatible = "amd,pensando-elba-syscon", "syscon";
188                         reg = <0x0 0x307c0000 0x0 0x3000>;
189                 };
190         };
191 };