Index: ./sys/dts/arm/overlays/spigen-rpi-b.dtso =================================================================== --- ./sys/dts/arm/overlays/spigen-rpi-b.dtso +++ ./sys/dts/arm/overlays/spigen-rpi-b.dtso @@ -0,0 +1,27 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; +}; + +&{/soc/spi@7e204000} { + status = "okay"; + + spigen1: spigen1 { + compatible = "freebsd,spigen"; + reg = <1>; + status = "okay"; + }; + spigen0: spigen0 { + compatible = "freebsd,spigen"; + reg = <0>; + status = "okay"; + }; +}; + +&{/soc/gpio@7e200000/spi0_cs_pins} { + brcm,pins = <8 7>; + brcm,function = <4>; /* ALT0 */ +}; + Index: ./sys/dts/arm/overlays/spigen-rpi2.dtso =================================================================== --- ./sys/dts/arm/overlays/spigen-rpi2.dtso +++ ./sys/dts/arm/overlays/spigen-rpi2.dtso @@ -0,0 +1,35 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2836"; +}; + +&{/soc/spi@7e204000} { + status = "okay"; + spigen2: spigen2 { + compatible = "freebsd,spigen"; + reg = <2>; // to invert clock polarity, add property spi-cs-high + status = "okay"; + }; + spigen1: spigen1 { + compatible = "freebsd,spigen"; + reg = <1>; + status = "okay"; + }; + spigen0: spigen0 { + compatible = "freebsd,spigen"; + reg = <0>; + 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>; +}; + Index: ./sys/modules/dtb/rpi/Makefile =================================================================== --- ./sys/modules/dtb/rpi/Makefile +++ ./sys/modules/dtb/rpi/Makefile @@ -2,6 +2,9 @@ # 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 \