From 3a80019cd6ac26cd39af80e69b167899b178844b Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sat, 26 Jul 2025 01:47:54 -0600 Subject: [PATCH] try again to deliver our devicetree content as an overlay --- bcm2837-rpi-zero-2-w.dtb | Bin 14822 -> 0 bytes bcm2837-rpi-zero-2-w.dts | 152 ---------------------------------- debian/quantimotor.install | 2 +- debian/quantimotor.postinst | 5 +- devicetree/Makefile | 10 +-- devicetree/append_cmdline.dts | 16 ---- devicetree/quantimotor.dts | 19 +++++ raspi-firmware-custom | 3 + z99-quantimotor | 7 -- 9 files changed, 27 insertions(+), 187 deletions(-) delete mode 100644 bcm2837-rpi-zero-2-w.dtb delete mode 100644 bcm2837-rpi-zero-2-w.dts delete mode 100644 devicetree/append_cmdline.dts create mode 100644 devicetree/quantimotor.dts delete mode 100755 z99-quantimotor diff --git a/bcm2837-rpi-zero-2-w.dtb b/bcm2837-rpi-zero-2-w.dtb deleted file mode 100644 index bb70310d1398908398360909b062707cafd09c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14822 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 - */ - -/dts-v1/; -#include "bcm2837.dtsi" -#include "bcm2836-rpi.dtsi" -#include "bcm283x-rpi-usb-otg.dtsi" -#include "bcm283x-rpi-wifi-bt.dtsi" - -/ { - compatible = "raspberrypi,model-zero-2-w", "brcm,bcm2837"; - model = "Raspberry Pi Zero 2 W"; - - memory@0 { - device_type = "memory"; - reg = <0 0x20000000>; - }; - - chosen { - /* 8250 auxiliary UART instead of pl011 */ - stdout-path = "serial1:115200n8"; - }; - - leds { - led-act { - gpios = <&gpio 29 GPIO_ACTIVE_LOW>; - }; - }; -}; - -&bt { - shutdown-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; -}; - -&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 = "ID_SDA", - "ID_SCL", - "SDA1", - "SCL1", - "GPIO_GCLK", - "GPIO5", - "GPIO6", - "SPI_CE1_N", - "SPI_CE0_N", - "SPI_MISO", - "SPI_MOSI", - "SPI_SCLK", - "GPIO12", - "GPIO13", - /* Serial port */ - "TXD0", - "RXD0", - "GPIO16", - "GPIO17", - "GPIO18", - "GPIO19", - "GPIO20", - "GPIO21", - "GPIO22", - "GPIO23", - "GPIO24", - "GPIO25", - "GPIO26", - "GPIO27", - "HDMI_HPD_N", - "STATUS_LED_N", - "NC", /* GPIO30 */ - "NC", /* GPIO31 */ - "NC", /* GPIO32 */ - "NC", /* GPIO33 */ - "NC", /* GPIO34 */ - "NC", /* GPIO35 */ - "NC", /* GPIO36 */ - "NC", /* GPIO37 */ - "NC", /* GPIO38 */ - "NC", /* GPIO39 */ - "CAM_GPIO0", /* GPIO40 */ - "WL_ON", /* GPIO41 */ - "BT_ON", /* GPIO42 */ - "WIFI_CLK", /* GPIO43 */ - "SDA0", /* GPIO44 */ - "SCL0", /* GPIO45 */ - "SMPS_SCL", - "SMPS_SDA", - /* Used by SD Card */ - "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 = <&gpio 28 GPIO_ACTIVE_LOW>; - power-domains = <&power RPI_POWER_DOMAIN_HDMI>; - status = "okay"; -}; - -&sdhci { - pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>; -}; - -&sdhost { - pinctrl-names = "default"; - pinctrl-0 = <&sdhost_gpio48>; - bus-width = <4>; - status = "okay"; -}; - -&uart0 { - pinctrl-names = "default"; - pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>; -}; - -&uart1 { - pinctrl-names = "default"; - pinctrl-0 = <&uart1_gpio14>; - status = "okay"; -}; - -&wifi_pwrseq { - reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>; -}; - -&spi { - status = "okay"; - - pinctrl-names = "default"; - cs-gpios = <&gpio 8 GPIO_ACTIVE_LOW>, <&gpio 7 GPIO_ACTIVE_LOW>; - - #address-cells = <1>; - #size-cells = <0>; - - ads8688: ads8688@0 { - compatible = "ti,ads8688"; - reg = <0>; - spi-max-frequency = <1000000>; - }; -}; diff --git a/debian/quantimotor.install b/debian/quantimotor.install index 57a9d2f..366a5a8 100644 --- a/debian/quantimotor.install +++ b/debian/quantimotor.install @@ -1,3 +1,4 @@ +devicetree/*.dtbo boot/overlays ui/* usr/share/quantimotor/ui bcm2837-rpi-zero-2-w.dtb usr/share/quantimotor enable_ads.py usr/share/quantimotor @@ -7,4 +8,3 @@ quantimotor.conf etc/modules-load.d raspi-extra-cmdline etc/default raspi-firmware-custom etc/default startup usr/share/quantimotor -z99-quantimotor etc/kernel/postinst.d diff --git a/debian/quantimotor.postinst b/debian/quantimotor.postinst index f9e566d..65b6769 100644 --- a/debian/quantimotor.postinst +++ b/debian/quantimotor.postinst @@ -4,11 +4,8 @@ set -e case "$1" in configure) - # trigger raspi-firmware postinst hook so our gpio config is included + # trigger raspi-firmware postinst hook so our content is included DEB_MAINT_PARAMS="configure" /etc/kernel/postinst.d/z50-raspi-firmware - - # trigger kernel postinst hook to ensure our dtb is in place - DEB_MAINT_PARAMS="configure" /etc/kernel/postinst.d/z99-quantimotor ;; esac diff --git a/devicetree/Makefile b/devicetree/Makefile index 4957e57..65585a5 100644 --- a/devicetree/Makefile +++ b/devicetree/Makefile @@ -1,9 +1,5 @@ -all: append_cmdline.dtbo - -append_cmdline.dtbo: append_cmdline.dts - dtc -I dts -O dtb -o $@ $< +quantimotor.dtbo: quantimotor.dts + dtc -@ -O dtb -o quantimotor.dtbo quantimotor.dts clean: - rm -f append_cmdline.dtbo - -.PHONY: clean + rm -f quantimotor.dtbo diff --git a/devicetree/append_cmdline.dts b/devicetree/append_cmdline.dts deleted file mode 100644 index 3f9509f..0000000 --- a/devicetree/append_cmdline.dts +++ /dev/null @@ -1,16 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "brcm,bcm2835"; - - fragment@0 { - target = <&chosen>; - frag0: __overlay__ { - }; - }; - - __overrides__ { - append = <&frag0>, "bootargs"; - }; -}; diff --git a/devicetree/quantimotor.dts b/devicetree/quantimotor.dts new file mode 100644 index 0000000..30c8e84 --- /dev/null +++ b/devicetree/quantimotor.dts @@ -0,0 +1,19 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2837"; +}; + +&spi { + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + + ads8688: ads8688@0 { + compatible = "ti,ads8688"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; diff --git a/raspi-firmware-custom b/raspi-firmware-custom index 5fe9388..a425860 100644 --- a/raspi-firmware-custom +++ b/raspi-firmware-custom @@ -8,3 +8,6 @@ gpio=27=op,dl # make armed line an input with a pull-up configured so comparator works gpio=12=ip,pu + +# load our devicetree content +dtoverlay=quantimotor diff --git a/z99-quantimotor b/z99-quantimotor deleted file mode 100755 index 3fefa02..0000000 --- a/z99-quantimotor +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# force /boot/firmware/bcm2837-rpi-zero-2-w.dtb to be the QuantiMotor dtb - -cp /usr/share/quantimotor/bcm2837-rpi-zero-2-w.dtb \ - /boot/firmware/bcm2837-rpi-zero-2-w.dtb - -- 2.47.2