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