Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a54fe8a6 authored by Stefan Wahren's avatar Stefan Wahren
Browse files

ARM: dts: add Raspberry Pi Compute Module 3 and IO board



The Raspberry Pi Compute Module 3 (CM3) and the Raspberry Pi
Compute Module 3 Lite (CM3L) are SoMs which contains a BCM2837 processor,
1 GB RAM and a GPIO expander. The CM3 has a 4 GB eMMC, but on the CM3L
the eMMC is unpopulated and it's up to the user to connect their
own SD/MMC device. The dtsi file is designed to work for both modules.
There is also a matching carrier board which is called
Compute Module IO Board V3.

Signed-off-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
parent b33b8071
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
	bcm2836-rpi-2-b.dtb \
	bcm2837-rpi-3-b.dtb \
	bcm2837-rpi-3-b-plus.dtb \
	bcm2837-rpi-cm3-io3.dtb \
	bcm2835-rpi-zero.dtb \
	bcm2835-rpi-zero-w.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \
+87 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837-rpi-cm3.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"

/ {
	compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
	model = "Raspberry Pi Compute Module 3 IO board V3.0";
};

&gpio {
	/*
	 * This is based on the official GPU firmware DT blob.
	 *
	 * Legend:
	 * "NC" = not connected (no rail from the SoC)
	 * "FOO" = GPIO line named "FOO" on the schematic
	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
	 */
	gpio-line-names = "GPIO0",
			  "GPIO1",
			  "GPIO2",
			  "GPIO3",
			  "GPIO4",
			  "GPIO5",
			  "GPIO6",
			  "GPIO7",
			  "GPIO8",
			  "GPIO9",
			  "GPIO10",
			  "GPIO11",
			  "GPIO12",
			  "GPIO13",
			  "GPIO14",
			  "GPIO15",
			  "GPIO16",
			  "GPIO17",
			  "GPIO18",
			  "GPIO19",
			  "GPIO20",
			  "GPIO21",
			  "GPIO22",
			  "GPIO23",
			  "GPIO24",
			  "GPIO25",
			  "GPIO26",
			  "GPIO27",
			  "GPIO28",
			  "GPIO29",
			  "GPIO30",
			  "GPIO31",
			  "GPIO32",
			  "GPIO33",
			  "GPIO34",
			  "GPIO35",
			  "GPIO36",
			  "GPIO37",
			  "GPIO38",
			  "GPIO39",
			  "GPIO40",
			  "GPIO41",
			  "GPIO42",
			  "GPIO43",
			  "GPIO44",
			  "GPIO45",
			  "GPIO46",
			  "GPIO47",
			  /* Used by eMMC */
			  "SD_CLK_R",
			  "SD_CMD_R",
			  "SD_DATA0_R",
			  "SD_DATA1_R",
			  "SD_DATA2_R",
			  "SD_DATA3_R";

	pinctrl-0 = <&gpioout &alt0>;
};

&hdmi {
	hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_gpio14>;
	status = "okay";
};
+52 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2835-rpi.dtsi"

/ {
	memory {
		reg = <0 0x40000000>;
	};

	reg_3v3: fixed-regulator {
		compatible = "regulator-fixed";
		regulator-name = "3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_1v8: fixed-regulator {
		compatible = "regulator-fixed";
		regulator-name = "1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};
};

&firmware {
	expgpio: gpio {
		compatible = "raspberrypi,firmware-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		gpio-line-names = "HDMI_HPD_N",
				  "EMMC_EN_N",
				  "NC",
				  "NC",
				  "NC",
				  "NC",
				  "NC",
				  "NC";
		status = "okay";
	};
};

&sdhost {
	pinctrl-names = "default";
	pinctrl-0 = <&sdhost_gpio48>;
	bus-width = <4>;
	vmmc-supply = <&reg_3v3>;
	vqmmc-supply = <&reg_1v8>;
	status = "okay";
};