From ce0b0df7ab9fd067a6b3f3c7c9b025fdb9d62d69 Mon Sep 17 00:00:00 2001 From: Ian Lepore Date: Fri, 22 Jun 2018 20:45:40 +0000 Subject: [PATCH] Add spigen(4) fdt data overlays for RPI-B, RPI-2. By adding spigen-rpi{2,-b}.dtso to fdt_overlays= in loader.conf, the fdt data will set up the correct pinmux and device nodes to create a spigen(4) device for each available chipselect pin. Submitted by: Bob Frazier Differential Revision: https://reviews.freebsd.org/D15067 --- sys/dts/arm/overlays/spigen-rpi-b.dtso | 29 ++++++++++++++++++++ sys/dts/arm/overlays/spigen-rpi2.dtso | 37 ++++++++++++++++++++++++++ sys/modules/dtb/rpi/Makefile | 4 +++ 3 files changed, 70 insertions(+) create mode 100644 sys/dts/arm/overlays/spigen-rpi-b.dtso create mode 100644 sys/dts/arm/overlays/spigen-rpi2.dtso diff --git a/sys/dts/arm/overlays/spigen-rpi-b.dtso b/sys/dts/arm/overlays/spigen-rpi-b.dtso new file mode 100644 index 000000000000..14ee02dafe85 --- /dev/null +++ b/sys/dts/arm/overlays/spigen-rpi-b.dtso @@ -0,0 +1,29 @@ +/* $FreeBSD$ */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; +}; + +&{/soc/spi@7e204000} { + status = "okay"; + + spigen0: spigen0 { + compatible = "freebsd,spigen"; + reg = <0>; + status = "okay"; + }; + spigen1: spigen1 { + compatible = "freebsd,spigen"; + reg = <1>; + status = "okay"; + }; +}; + +&{/soc/gpio@7e200000/spi0_cs_pins} { + brcm,pins = <8 7>; + brcm,function = <4>; /* ALT0 */ +}; + diff --git a/sys/dts/arm/overlays/spigen-rpi2.dtso b/sys/dts/arm/overlays/spigen-rpi2.dtso new file mode 100644 index 000000000000..204e1245b6f1 --- /dev/null +++ b/sys/dts/arm/overlays/spigen-rpi2.dtso @@ -0,0 +1,37 @@ +/* $FreeBSD$ */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2836"; +}; + +&{/soc/spi@7e204000} { + status = "okay"; + spigen0: spigen0 { + compatible = "freebsd,spigen"; + reg = <0>; + status = "okay"; + }; + spigen1: spigen1 { + compatible = "freebsd,spigen"; + reg = <1>; + status = "okay"; + }; + spigen2: spigen2 { + compatible = "freebsd,spigen"; + reg = <2>; + status = "okay"; + }; +}; + +&{/soc/gpio@7e200000/spi0_cs_pins} { + brcm,pins = <8 7 16>; + brcm,function = <4>; /* ALT0 */ +}; + +&{/soc/gpio@7e200000/spi0_gpio7} { + brcm,pins = <7 8 16 9 10 11>; +}; + diff --git a/sys/modules/dtb/rpi/Makefile b/sys/modules/dtb/rpi/Makefile index 2feb371ab08e..fc7f640102c6 100644 --- a/sys/modules/dtb/rpi/Makefile +++ b/sys/modules/dtb/rpi/Makefile @@ -2,6 +2,10 @@ # DTS files for the Raspberry Pi-B DTS=rpi.dts rpi2.dts +DTSO= \ + spigen-rpi-b.dtso \ + spigen-rpi2.dtso \ + LINKS= \ ${DTBDIR}/rpi.dtb ${DTBDIR}/bcm2835-rpi-b.dtb \ ${DTBDIR}/rpi.dtb ${DTBDIR}/bcm2835-rpi-b-rev2.dtb \