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}; 200