/dts-v1/; #include #include / { model = "Telem3"; compatible = "vendor,telem3"; #address-cells = <1>; #size-cells = <1>; leds { compatible = "gpio-leds"; fault_led: led_d12 { gpios = <&gpiod 12 GPIO_ACTIVE_HIGH>; label = "Fault Indicator"; }; status_led0: led_d10 { gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>; label = "Status 0 Indicator"; }; status_led1: led_d15 { gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>; label = "Status 1 Indicator"; }; status_led2: led_d13 { gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>; label = "Status 2 Indicator"; }; status_led3: led_d11 { gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; label = "Status 3 Indicator"; }; good_led: led_d14 { gpios = <&gpiod 14 GPIO_ACTIVE_HIGH>; label = "Good Indicator"; }; // TODO: should this really be here gps_en: gps_en { gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>; label = "GPS power enable"; }; }; option_switches { compatible = "gpio-keys"; option_0: opt_0 { gpios = <&gpioe 15 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; label = "Switch Option 0"; }; option_1: opt_1 { gpios = <&gpioe 14 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; label = "Switch Option 1"; }; option_2: opt_2 { gpios = <&gpioe 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; label = "Switch Option 2"; }; }; chosen { zephyr,console = &cdc_acm_uart; zephyr,shell-uart = &cdc_acm_uart; zephyr,sram = &sram0; zephyr,flash = &flash0; zephyr,canbus = &fdcan1; zephyr,sdmmc-disk = &sdmmc1; }; aliases { led0 = &good_led; sw0 = &option_0; die-temp0 = &die_temp; volt-sensor0 = &vref; volt-sensor1 = &vbat; spi-flash0 = &spiflash0; }; soc { fdcan1: can@4000a400 { compatible = "st,stm32-fdcan"; reg = <0x4000a400 0x400>, <0x4000ac00 0x350>; reg-names = "m_can", "message_ram"; interrupts = <39 0>, <40 0>; interrupt-names = "int0", "int1"; clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00000200>; bosch,mram-cfg = <0x0 28 8 3 3 0 3 3>; status = "disabled"; }; }; }; // &clk_lse { // status = "okay"; // }; &clk_hsi48 { status = "okay"; }; &clk_hse { status = "okay"; clock-frequency = ; }; &pll { // 96 MHz core, 48/24 elsewhere div-m = <1>; mul-n = <24>; div-p = <7>; div-q = <4>; div-r = <2>; status = "okay"; clocks = <&clk_hse>; }; &rcc { clocks = <&pll>; clock-frequency = ; ahb-prescaler = <1>; apb1-prescaler = <4>; apb2-prescaler = <4>; }; // stm32_lp_tick_source: &lptim1 { // clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>, // <&rcc STM32_SRC_LSE LPTIM1_SEL(3)>; // status = "okay"; // }; &usart1 { current-speed = <115200>; pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; pinctrl-names = "default"; status = "okay"; }; &usart2 { current-speed = <9600>; pinctrl-0 = <&usart2_tx_pd5 &usart2_rx_pd6>; pinctrl-names = "default"; status = "okay"; gnss: l80_gps { compatible = "gnss-nmea-generic"; }; }; &rng { status = "okay"; }; &die_temp { status = "okay"; }; zephyr_udc0: &usb { pinctrl-0 = <&usb_dp_pa12 &usb_dm_pa11>; pinctrl-names = "default"; status = "okay"; cdc_acm_uart: cdc_acm_uart { compatible = "zephyr,cdc-acm-uart"; }; }; &sdmmc1 { status = "okay"; pinctrl-0 = <&sdmmc1_d0_pc8 &sdmmc1_d1_pc9 &sdmmc1_d2_pc10 &sdmmc1_d3_pc11 &sdmmc1_ck_pc12 &sdmmc1_cmd_pd2>; // bus-width = <4>; pinctrl-names = "default"; }; &spi1 { pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>; pinctrl-names = "default"; cs-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>, <&gpioc 4 GPIO_ACTIVE_LOW>; status = "okay"; bme280@0 { compatible = "bosch,bme280"; reg = <0>; spi-max-frequency = ; status = "okay"; }; /* TODO: add LSM6DS3 may need custom driver */ lsm6ds3: lsm6dsl@1 { compatible = "st,lsm6dsl"; reg = <1>; irq-gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>; spi-max-frequency = ; status = "okay"; }; }; &vref { status = "okay"; }; &vbat { status = "okay"; }; &iwdg { status = "okay"; }; &aes { status = "okay"; }; &fdcan1 { status = "okay"; clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00000200>, <&rcc STM32_SRC_PLL_Q SAI2_SEL(0)>; bus-speed = <125000>; bus-speed-data = <125000>; pinctrl-0 = <&fdcan1_tx_pd1 &fdcan1_rx_pd0>; pinctrl-names = "default"; }; &octospi1 { pinctrl-0 = <&octospi1_clk_pf10 &octospi1_ncs_pa2 \ &octospi1_io0_pf8 &octospi1_io1_pf9 &octospi1_io2_pf7 &octospi1_io3_pf6 &octospi1_io4_pc1 &octospi1_io5_pc2 &octospi1_io6_pc3 &octospi1_io7_pc0>; pinctrl-names = "default"; status = "okay"; spiflash0: ospi-nor-flash@90000000 { compatible = "st,stm32-ospi-nor"; reg = <0x90000000 DT_SIZE_M(16)>; /* 128 Mbits */ ospi-max-frequency = <80000000>; spi-bus-width = ; data-rate = ; status = "okay"; }; };