Files
ZephCore/zephcore/boards/common/linux_common.overlay
T
2026-06-02 14:50:31 +02:00

116 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* SPDX-License-Identifier: Apache-2.0
*
* ZephCore native Linux DT overlay (auto-paired with linux_common.conf).
*
* Disables the native_sim emulated GPIO/SPI controllers and adds our
* libgpiod/spidev-backed native_linux versions, with an SX1262 child
* node on the SPI bus.
*
* Generic defaults below match the Femtofox SX1262 wiring. Override per
* device by adding boards/common/<device>.conf + .overlay via
* EXTRA_CONF_FILE, or use --lora-* command-line args at runtime.
*/
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/lora/sx126x.h>
/* Disable native_sim emulated controllers (replaced below). */
&spi0 {
status = "disabled";
};
&gpio0 {
status = "disabled";
};
/* LittleFS on native_sim's simulated flash.
* The native_sim board DTS allocates the first 1MB (0x0..0xfffff) for
* MCUBoot + OTA slots. The second half (0x100000..0x1fffff = 1MB) is unused.
* Use 512KB of it for LittleFS — 128 × 4KB blocks, plenty for identity,
* prefs, contacts, and channels.
* The sim-flash is in-memory (lost on exit); add
* CONFIG_FLASH_SIMULATOR_STATS_FILE for file-backed persistence. */
&flash0 {
partitions {
lfs_partition: partition@100000 {
label = "lfs";
reg = <0x00100000 0x00080000>; /* 512 KB */
};
};
};
#include "filesystem.dtsi"
/* Disable the SDL emulated display + touch (we don't use them and the
* SDL2 dev library isn't a useful dep on a headless SBC). */
&sdl_dc {
status = "disabled";
};
&input_sdl_touch {
status = "disabled";
};
/* Drop the chosen zephyr,display node so HAS_SDL doesn't get selected.
* Also drop the led0 alias — native_sim's base DTS attaches it to the
* emulated gpio0 that we just disabled, which would otherwise cause a
* dangling DEVICE_DT_GET in helpers/ui/ui_common.c. */
/ {
chosen {
/delete-property/ zephyr,display;
/delete-property/ zephyr,touch;
};
aliases {
/delete-property/ led0;
};
};
/ {
/delete-node/ leds;
};
/ {
aliases {
/* The mesh adapter reads lora0 alias to bind the SX126x driver. */
lora0 = &lora_sx1262;
};
/* libgpiod v2 GPIO controller bound to a host /dev/gpiochipX. */
zephcore_gpio0: zephcore_gpio0 {
status = "okay";
compatible = "zephcore,gpio-native-linux";
gpio-controller;
gpio-chip = "/dev/gpiochip1";
ngpios = <64>;
#gpio-cells = <2>;
};
/* spidev-backed SPI bus on /dev/spidev0.0 with one SX1262 child. */
zephcore_spi0: zephcore_spi0 {
status = "okay";
compatible = "zephcore,spi-native-linux";
spi-dev = "/dev/spidev0.0";
clock-frequency = <2000000>;
spi-mode = <0>;
#address-cells = <1>;
#size-cells = <0>;
/* CS line: GPIO 16 on chip 1 = GPIO48 = 1C0 (Femtofox default). */
cs-gpios = <&zephcore_gpio0 16 GPIO_ACTIVE_LOW>;
lora_sx1262: lora@0 {
compatible = "semtech,sx1262";
reg = <0>;
spi-max-frequency = <2000000>;
/* Femtofox defaults; overridden by per-device overlays. */
reset-gpios = <&zephcore_gpio0 25 GPIO_ACTIVE_LOW>;
busy-gpios = <&zephcore_gpio0 22 GPIO_ACTIVE_HIGH>;
dio1-gpios = <&zephcore_gpio0 23 GPIO_ACTIVE_HIGH>;
rx-enable-gpios = <&zephcore_gpio0 24 GPIO_ACTIVE_HIGH>;
dio2-tx-enable;
dio3-tcxo-voltage = <SX126X_DIO3_TCXO_1V8>;
tcxo-power-startup-delay-ms = <5>;
};
};
};