aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arm64/conf/GENERIC2
-rw-r--r--sys/dts/arm/overlays/spigen-rpi2.dtso13
-rw-r--r--sys/dts/arm64/overlays/spigen-rpi3.dtso30
-rw-r--r--sys/modules/dtb/rpi/Makefile7
4 files changed, 39 insertions, 13 deletions
diff --git a/sys/arm64/conf/GENERIC b/sys/arm64/conf/GENERIC
index 091414f52dc2d..b1149a377ba3b 100644
--- a/sys/arm64/conf/GENERIC
+++ b/sys/arm64/conf/GENERIC
@@ -296,4 +296,4 @@ options FDT
device acpi
# DTBs
-makeoptions MODULES_EXTRA="dtb/allwinner dtb/rockchip"
+makeoptions MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
diff --git a/sys/dts/arm/overlays/spigen-rpi2.dtso b/sys/dts/arm/overlays/spigen-rpi2.dtso
index 4b0e9fa0d8566..6d3862d1406ba 100644
--- a/sys/dts/arm/overlays/spigen-rpi2.dtso
+++ b/sys/dts/arm/overlays/spigen-rpi2.dtso
@@ -12,6 +12,7 @@
spigen0: spigen0 {
compatible = "freebsd,spigen";
reg = <0>;
+ spi-max-frequency = <500000>; /* Req'd property, override with spi(8) */
status = "okay";
};
spigen1: spigen1 {
@@ -20,20 +21,10 @@
spi-max-frequency = <500000>; /* Req'd property, override with spi(8) */
status = "okay";
};
- spigen2: spigen2 {
- compatible = "freebsd,spigen";
- reg = <2>;
- spi-max-frequency = <500000>; /* Req'd property, override with spi(8) */
- status = "okay";
- };
};
&{/soc/gpio@7e200000/spi0_cs_pins} {
- brcm,pins = <8 7 16>;
+ brcm,pins = <8 7>;
brcm,function = <4>; /* ALT0 */
};
-&{/soc/gpio@7e200000/spi0_gpio7} {
- brcm,pins = <7 8 16 9 10 11>;
-};
-
diff --git a/sys/dts/arm64/overlays/spigen-rpi3.dtso b/sys/dts/arm64/overlays/spigen-rpi3.dtso
new file mode 100644
index 0000000000000..a708699c73d50
--- /dev/null
+++ b/sys/dts/arm64/overlays/spigen-rpi3.dtso
@@ -0,0 +1,30 @@
+/* $FreeBSD$ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2837";
+};
+
+&{/soc/spi@7e204000} {
+ status = "okay";
+ spigen0: spigen0 {
+ compatible = "freebsd,spigen";
+ reg = <0>;
+ spi-max-frequency = <500000>; /* Req'd property, override with spi(8) */
+ status = "okay";
+ };
+ spigen1: spigen1 {
+ compatible = "freebsd,spigen";
+ reg = <1>;
+ spi-max-frequency = <500000>; /* Req'd property, override with spi(8) */
+ status = "okay";
+ };
+};
+
+&{/soc/gpio@7e200000/spi0_cs_pins} {
+ brcm,pins = <8 7>;
+ brcm,function = <4>; /* ALT0 */
+};
+
diff --git a/sys/modules/dtb/rpi/Makefile b/sys/modules/dtb/rpi/Makefile
index 3205e7ae46406..692528047078b 100644
--- a/sys/modules/dtb/rpi/Makefile
+++ b/sys/modules/dtb/rpi/Makefile
@@ -1,7 +1,12 @@
# $FreeBSD$
# DTS files for the Raspberry Pi-B
+.if ${MACHINE_ARCH:Marmv[67]*} != ""
DTSO= \
spigen-rpi-b.dtso \
- spigen-rpi2.dtso \
+ spigen-rpi2.dtso
+.elif ${MACHINE_ARCH} == "aarch64"
+DTSO= \
+ spigen-rpi3.dtso
+.endif
.include <bsd.dtb.mk>