Linux-libre 5.7.6-gnu
[librecmc/linux-libre.git] / arch / arm / boot / dts / bcm2835-common.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2
3 /* This include file covers the common peripherals and configuration between
4  * bcm2835, bcm2836 and bcm2837 implementations.
5  */
6
7 / {
8         interrupt-parent = <&intc>;
9
10         soc {
11                 dma: dma@7e007000 {
12                         compatible = "brcm,bcm2835-dma";
13                         reg = <0x7e007000 0xf00>;
14                         interrupts = <1 16>,
15                                      <1 17>,
16                                      <1 18>,
17                                      <1 19>,
18                                      <1 20>,
19                                      <1 21>,
20                                      <1 22>,
21                                      <1 23>,
22                                      <1 24>,
23                                      <1 25>,
24                                      <1 26>,
25                                      /* dma channel 11-14 share one irq */
26                                      <1 27>,
27                                      <1 27>,
28                                      <1 27>,
29                                      <1 27>,
30                                      /* unused shared irq for all channels */
31                                      <1 28>;
32                         interrupt-names = "dma0",
33                                           "dma1",
34                                           "dma2",
35                                           "dma3",
36                                           "dma4",
37                                           "dma5",
38                                           "dma6",
39                                           "dma7",
40                                           "dma8",
41                                           "dma9",
42                                           "dma10",
43                                           "dma11",
44                                           "dma12",
45                                           "dma13",
46                                           "dma14",
47                                           "dma-shared-all";
48                         #dma-cells = <1>;
49                         brcm,dma-channel-mask = <0x7f35>;
50                 };
51
52                 intc: interrupt-controller@7e00b200 {
53                         compatible = "brcm,bcm2835-armctrl-ic";
54                         reg = <0x7e00b200 0x200>;
55                         interrupt-controller;
56                         #interrupt-cells = <2>;
57                 };
58
59                 pm: watchdog@7e100000 {
60                         compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
61                         #power-domain-cells = <1>;
62                         #reset-cells = <1>;
63                         reg = <0x7e100000 0x114>,
64                               <0x7e00a000 0x24>;
65                         clocks = <&clocks BCM2835_CLOCK_V3D>,
66                                  <&clocks BCM2835_CLOCK_PERI_IMAGE>,
67                                  <&clocks BCM2835_CLOCK_H264>,
68                                  <&clocks BCM2835_CLOCK_ISP>;
69                         clock-names = "v3d", "peri_image", "h264", "isp";
70                         system-power-controller;
71                 };
72
73                 rng@7e104000 {
74                         compatible = "brcm,bcm2835-rng";
75                         reg = <0x7e104000 0x10>;
76                         interrupts = <2 29>;
77                 };
78
79                 pixelvalve@7e206000 {
80                         compatible = "brcm,bcm2835-pixelvalve0";
81                         reg = <0x7e206000 0x100>;
82                         interrupts = <2 13>; /* pwa0 */
83                 };
84
85                 pixelvalve@7e207000 {
86                         compatible = "brcm,bcm2835-pixelvalve1";
87                         reg = <0x7e207000 0x100>;
88                         interrupts = <2 14>; /* pwa1 */
89                 };
90
91                 thermal: thermal@7e212000 {
92                         compatible = "brcm,bcm2835-thermal";
93                         reg = <0x7e212000 0x8>;
94                         clocks = <&clocks BCM2835_CLOCK_TSENS>;
95                         #thermal-sensor-cells = <0>;
96                         status = "disabled";
97                 };
98
99                 i2c2: i2c@7e805000 {
100                         compatible = "brcm,bcm2835-i2c";
101                         reg = <0x7e805000 0x1000>;
102                         interrupts = <2 21>;
103                         clocks = <&clocks BCM2835_CLOCK_VPU>;
104                         #address-cells = <1>;
105                         #size-cells = <0>;
106                         status = "okay";
107                 };
108
109                 pixelvalve@7e807000 {
110                         compatible = "brcm,bcm2835-pixelvalve2";
111                         reg = <0x7e807000 0x100>;
112                         interrupts = <2 10>; /* pixelvalve */
113                 };
114
115                 hdmi: hdmi@7e902000 {
116                         compatible = "brcm,bcm2835-hdmi";
117                         reg = <0x7e902000 0x600>,
118                               <0x7e808000 0x100>;
119                         interrupts = <2 8>, <2 9>;
120                         ddc = <&i2c2>;
121                         clocks = <&clocks BCM2835_PLLH_PIX>,
122                                  <&clocks BCM2835_CLOCK_HSM>;
123                         clock-names = "pixel", "hdmi";
124                         dmas = <&dma 17>;
125                         dma-names = "audio-rx";
126                         status = "disabled";
127                 };
128
129                 v3d: v3d@7ec00000 {
130                         compatible = "brcm,bcm2835-v3d";
131                         reg = <0x7ec00000 0x1000>;
132                         interrupts = <1 10>;
133                 };
134
135                 vc4: gpu {
136                         compatible = "brcm,bcm2835-vc4";
137                 };
138         };
139 };
140
141 &cpu_thermal {
142         thermal-sensors = <&thermal>;
143 };
144
145 &gpio {
146         i2c_slave_gpio18: i2c_slave_gpio18 {
147                 brcm,pins = <18 19 20 21>;
148                 brcm,function = <BCM2835_FSEL_ALT3>;
149         };
150
151         jtag_gpio4: jtag_gpio4 {
152                 brcm,pins = <4 5 6 12 13>;
153                 brcm,function = <BCM2835_FSEL_ALT5>;
154         };
155
156         pwm0_gpio12: pwm0_gpio12 {
157                 brcm,pins = <12>;
158                 brcm,function = <BCM2835_FSEL_ALT0>;
159         };
160         pwm0_gpio18: pwm0_gpio18 {
161                 brcm,pins = <18>;
162                 brcm,function = <BCM2835_FSEL_ALT5>;
163         };
164         pwm0_gpio40: pwm0_gpio40 {
165                 brcm,pins = <40>;
166                 brcm,function = <BCM2835_FSEL_ALT0>;
167         };
168         pwm1_gpio13: pwm1_gpio13 {
169                 brcm,pins = <13>;
170                 brcm,function = <BCM2835_FSEL_ALT0>;
171         };
172         pwm1_gpio19: pwm1_gpio19 {
173                 brcm,pins = <19>;
174                 brcm,function = <BCM2835_FSEL_ALT5>;
175         };
176         pwm1_gpio41: pwm1_gpio41 {
177                 brcm,pins = <41>;
178                 brcm,function = <BCM2835_FSEL_ALT0>;
179         };
180         pwm1_gpio45: pwm1_gpio45 {
181                 brcm,pins = <45>;
182                 brcm,function = <BCM2835_FSEL_ALT0>;
183         };
184 };
185
186 &i2s {
187         dmas = <&dma 2>, <&dma 3>;
188         dma-names = "tx", "rx";
189 };
190
191 &sdhost {
192         dmas = <&dma 13>;
193         dma-names = "rx-tx";
194 };
195
196 &spi {
197         dmas = <&dma 6>, <&dma 7>;
198         dma-names = "tx", "rx";
199 };