162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci/* This include file covers the common peripherals and configuration between
462306a36Sopenharmony_ci * bcm2835, bcm2836 and bcm2837 implementations.
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/ {
862306a36Sopenharmony_ci	interrupt-parent = <&intc>;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	soc {
1162306a36Sopenharmony_ci		dma: dma-controller@7e007000 {
1262306a36Sopenharmony_ci			compatible = "brcm,bcm2835-dma";
1362306a36Sopenharmony_ci			reg = <0x7e007000 0xf00>;
1462306a36Sopenharmony_ci			interrupts = <1 16>,
1562306a36Sopenharmony_ci				     <1 17>,
1662306a36Sopenharmony_ci				     <1 18>,
1762306a36Sopenharmony_ci				     <1 19>,
1862306a36Sopenharmony_ci				     <1 20>,
1962306a36Sopenharmony_ci				     <1 21>,
2062306a36Sopenharmony_ci				     <1 22>,
2162306a36Sopenharmony_ci				     <1 23>,
2262306a36Sopenharmony_ci				     <1 24>,
2362306a36Sopenharmony_ci				     <1 25>,
2462306a36Sopenharmony_ci				     <1 26>,
2562306a36Sopenharmony_ci				     /* dma channel 11-14 share one irq */
2662306a36Sopenharmony_ci				     <1 27>,
2762306a36Sopenharmony_ci				     <1 27>,
2862306a36Sopenharmony_ci				     <1 27>,
2962306a36Sopenharmony_ci				     <1 27>,
3062306a36Sopenharmony_ci				     /* unused shared irq for all channels */
3162306a36Sopenharmony_ci				     <1 28>;
3262306a36Sopenharmony_ci			interrupt-names = "dma0",
3362306a36Sopenharmony_ci					  "dma1",
3462306a36Sopenharmony_ci					  "dma2",
3562306a36Sopenharmony_ci					  "dma3",
3662306a36Sopenharmony_ci					  "dma4",
3762306a36Sopenharmony_ci					  "dma5",
3862306a36Sopenharmony_ci					  "dma6",
3962306a36Sopenharmony_ci					  "dma7",
4062306a36Sopenharmony_ci					  "dma8",
4162306a36Sopenharmony_ci					  "dma9",
4262306a36Sopenharmony_ci					  "dma10",
4362306a36Sopenharmony_ci					  "dma11",
4462306a36Sopenharmony_ci					  "dma12",
4562306a36Sopenharmony_ci					  "dma13",
4662306a36Sopenharmony_ci					  "dma14",
4762306a36Sopenharmony_ci					  "dma-shared-all";
4862306a36Sopenharmony_ci			#dma-cells = <1>;
4962306a36Sopenharmony_ci			brcm,dma-channel-mask = <0x7f35>;
5062306a36Sopenharmony_ci		};
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		intc: interrupt-controller@7e00b200 {
5362306a36Sopenharmony_ci			compatible = "brcm,bcm2835-armctrl-ic";
5462306a36Sopenharmony_ci			reg = <0x7e00b200 0x200>;
5562306a36Sopenharmony_ci			interrupt-controller;
5662306a36Sopenharmony_ci			#interrupt-cells = <2>;
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		pm: watchdog@7e100000 {
6062306a36Sopenharmony_ci			compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
6162306a36Sopenharmony_ci			#power-domain-cells = <1>;
6262306a36Sopenharmony_ci			#reset-cells = <1>;
6362306a36Sopenharmony_ci			reg = <0x7e100000 0x114>,
6462306a36Sopenharmony_ci			      <0x7e00a000 0x24>;
6562306a36Sopenharmony_ci			reg-names = "pm", "asb";
6662306a36Sopenharmony_ci			clocks = <&clocks BCM2835_CLOCK_V3D>,
6762306a36Sopenharmony_ci				 <&clocks BCM2835_CLOCK_PERI_IMAGE>,
6862306a36Sopenharmony_ci				 <&clocks BCM2835_CLOCK_H264>,
6962306a36Sopenharmony_ci				 <&clocks BCM2835_CLOCK_ISP>;
7062306a36Sopenharmony_ci			clock-names = "v3d", "peri_image", "h264", "isp";
7162306a36Sopenharmony_ci			system-power-controller;
7262306a36Sopenharmony_ci		};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci		rng@7e104000 {
7562306a36Sopenharmony_ci			compatible = "brcm,bcm2835-rng";
7662306a36Sopenharmony_ci			reg = <0x7e104000 0x10>;
7762306a36Sopenharmony_ci			interrupts = <2 29>;
7862306a36Sopenharmony_ci		};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci		pixelvalve@7e206000 {
8162306a36Sopenharmony_ci			compatible = "brcm,bcm2835-pixelvalve0";
8262306a36Sopenharmony_ci			reg = <0x7e206000 0x100>;
8362306a36Sopenharmony_ci			interrupts = <2 13>; /* pwa0 */
8462306a36Sopenharmony_ci		};
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci		pixelvalve@7e207000 {
8762306a36Sopenharmony_ci			compatible = "brcm,bcm2835-pixelvalve1";
8862306a36Sopenharmony_ci			reg = <0x7e207000 0x100>;
8962306a36Sopenharmony_ci			interrupts = <2 14>; /* pwa1 */
9062306a36Sopenharmony_ci		};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci		thermal: thermal@7e212000 {
9362306a36Sopenharmony_ci			compatible = "brcm,bcm2835-thermal";
9462306a36Sopenharmony_ci			reg = <0x7e212000 0x8>;
9562306a36Sopenharmony_ci			clocks = <&clocks BCM2835_CLOCK_TSENS>;
9662306a36Sopenharmony_ci			#thermal-sensor-cells = <0>;
9762306a36Sopenharmony_ci			status = "disabled";
9862306a36Sopenharmony_ci		};
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci		i2c2: i2c@7e805000 {
10162306a36Sopenharmony_ci			compatible = "brcm,bcm2835-i2c";
10262306a36Sopenharmony_ci			reg = <0x7e805000 0x1000>;
10362306a36Sopenharmony_ci			interrupts = <2 21>;
10462306a36Sopenharmony_ci			clocks = <&clocks BCM2835_CLOCK_VPU>;
10562306a36Sopenharmony_ci			#address-cells = <1>;
10662306a36Sopenharmony_ci			#size-cells = <0>;
10762306a36Sopenharmony_ci			status = "okay";
10862306a36Sopenharmony_ci		};
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci		vec: vec@7e806000 {
11162306a36Sopenharmony_ci			compatible = "brcm,bcm2835-vec";
11262306a36Sopenharmony_ci			reg = <0x7e806000 0x1000>;
11362306a36Sopenharmony_ci			clocks = <&clocks BCM2835_CLOCK_VEC>;
11462306a36Sopenharmony_ci			interrupts = <2 27>;
11562306a36Sopenharmony_ci			status = "disabled";
11662306a36Sopenharmony_ci		};
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci		pixelvalve@7e807000 {
11962306a36Sopenharmony_ci			compatible = "brcm,bcm2835-pixelvalve2";
12062306a36Sopenharmony_ci			reg = <0x7e807000 0x100>;
12162306a36Sopenharmony_ci			interrupts = <2 10>; /* pixelvalve */
12262306a36Sopenharmony_ci		};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		hdmi: hdmi@7e902000 {
12562306a36Sopenharmony_ci			compatible = "brcm,bcm2835-hdmi";
12662306a36Sopenharmony_ci			reg = <0x7e902000 0x600>,
12762306a36Sopenharmony_ci			      <0x7e808000 0x100>;
12862306a36Sopenharmony_ci			interrupts = <2 8>, <2 9>;
12962306a36Sopenharmony_ci			ddc = <&i2c2>;
13062306a36Sopenharmony_ci			clocks = <&clocks BCM2835_PLLH_PIX>,
13162306a36Sopenharmony_ci				 <&clocks BCM2835_CLOCK_HSM>;
13262306a36Sopenharmony_ci			clock-names = "pixel", "hdmi";
13362306a36Sopenharmony_ci			dmas = <&dma 17>;
13462306a36Sopenharmony_ci			dma-names = "audio-rx";
13562306a36Sopenharmony_ci			status = "disabled";
13662306a36Sopenharmony_ci		};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci		v3d: v3d@7ec00000 {
13962306a36Sopenharmony_ci			compatible = "brcm,bcm2835-v3d";
14062306a36Sopenharmony_ci			reg = <0x7ec00000 0x1000>;
14162306a36Sopenharmony_ci			interrupts = <1 10>;
14262306a36Sopenharmony_ci		};
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci		vc4: gpu {
14562306a36Sopenharmony_ci			compatible = "brcm,bcm2835-vc4";
14662306a36Sopenharmony_ci		};
14762306a36Sopenharmony_ci	};
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci&cpu_thermal {
15162306a36Sopenharmony_ci	thermal-sensors = <&thermal>;
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci&gpio {
15562306a36Sopenharmony_ci	i2c_slave_gpio18: i2c-slave-gpio18 {
15662306a36Sopenharmony_ci		brcm,pins = <18 19 20 21>;
15762306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT3>;
15862306a36Sopenharmony_ci	};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	jtag_gpio4: jtag-gpio4 {
16162306a36Sopenharmony_ci		brcm,pins = <4 5 6 12 13>;
16262306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT5>;
16362306a36Sopenharmony_ci	};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci	pwm0_gpio12: pwm0-gpio12 {
16662306a36Sopenharmony_ci		brcm,pins = <12>;
16762306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT0>;
16862306a36Sopenharmony_ci	};
16962306a36Sopenharmony_ci	pwm0_gpio18: pwm0-gpio18 {
17062306a36Sopenharmony_ci		brcm,pins = <18>;
17162306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT5>;
17262306a36Sopenharmony_ci	};
17362306a36Sopenharmony_ci	pwm0_gpio40: pwm0-gpio40 {
17462306a36Sopenharmony_ci		brcm,pins = <40>;
17562306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT0>;
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci	pwm1_gpio13: pwm1-gpio13 {
17862306a36Sopenharmony_ci		brcm,pins = <13>;
17962306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT0>;
18062306a36Sopenharmony_ci	};
18162306a36Sopenharmony_ci	pwm1_gpio19: pwm1-gpio19 {
18262306a36Sopenharmony_ci		brcm,pins = <19>;
18362306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT5>;
18462306a36Sopenharmony_ci	};
18562306a36Sopenharmony_ci	pwm1_gpio41: pwm1-gpio41 {
18662306a36Sopenharmony_ci		brcm,pins = <41>;
18762306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT0>;
18862306a36Sopenharmony_ci	};
18962306a36Sopenharmony_ci	pwm1_gpio45: pwm1-gpio45 {
19062306a36Sopenharmony_ci		brcm,pins = <45>;
19162306a36Sopenharmony_ci		brcm,function = <BCM2835_FSEL_ALT0>;
19262306a36Sopenharmony_ci	};
19362306a36Sopenharmony_ci};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci&i2s {
19662306a36Sopenharmony_ci	dmas = <&dma 2>, <&dma 3>;
19762306a36Sopenharmony_ci	dma-names = "tx", "rx";
19862306a36Sopenharmony_ci};
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci&sdhost {
20162306a36Sopenharmony_ci	dmas = <&dma 13>;
20262306a36Sopenharmony_ci	dma-names = "rx-tx";
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci&spi {
20662306a36Sopenharmony_ci	dmas = <&dma 6>, <&dma 7>;
20762306a36Sopenharmony_ci	dma-names = "tx", "rx";
20862306a36Sopenharmony_ci};
209