|  | /* | 
|  | * Copyright (c) 2024 Javad Rahimipetroudi <javad.rahimipetroudi@mind.be> | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /dts-v1/; | 
|  | #include <st/wb/stm32wb55Xg.dtsi> | 
|  | #include <st/wb/stm32wb55vgyx-pinctrl.dtsi> | 
|  | #include <zephyr/dt-bindings/input/input-event-codes.h> | 
|  | #include <zephyr/dt-bindings/led/led.h> | 
|  | #include <zephyr/dt-bindings/sensor/ism330dhcx.h> | 
|  |  | 
|  | / { | 
|  | model = "STMicroelectronics STM32WB5MM Discovery Development Kit"; | 
|  | compatible = "st,stm32wb5mm-dk"; | 
|  |  | 
|  | chosen { | 
|  | zephyr,console = &usart1; | 
|  | zephyr,shell-uart = &usart1; | 
|  | zephyr,bt-mon-uart = &lpuart1; | 
|  | zephyr,bt-c2h-uart = &lpuart1; | 
|  | zephyr,sram = &sram0; | 
|  | zephyr,flash = &flash0; | 
|  | zephyr,code-partition = &slot0_partition; | 
|  | }; | 
|  |  | 
|  | rgb_led_strip: rgb_strip { | 
|  | compatible = "ti,tlc59731"; | 
|  | gpios = <&gpioa 7 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; | 
|  | chain-length = <1>; | 
|  | color-mapping = <LED_COLOR_ID_BLUE | 
|  | LED_COLOR_ID_GREEN | 
|  | LED_COLOR_ID_RED>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | buttons { | 
|  | compatible = "gpio-keys"; | 
|  | button0: button_0 { | 
|  | gpios = <&gpioc 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; | 
|  | label = "Push button 1"; | 
|  | zephyr,code = <INPUT_KEY_0>; | 
|  | }; | 
|  | button1: button_1 { | 
|  | gpios = <&gpioc 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; | 
|  | label = "Push button 2"; | 
|  | zephyr,code = <INPUT_KEY_1>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | aliases { | 
|  | watchdog0 = &iwdg; | 
|  | die-temp0 = &die_temp; | 
|  | volt-sensor0 = &vref; | 
|  | volt-sensor1 = &vbat; | 
|  | led-strip = &rgb_led_strip; | 
|  | sw0 = &button0; | 
|  | sw1 = &button1; | 
|  | accel0 = &ism330dhcx; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &die_temp { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &clk_hse { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &clk_lse { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &clk_hsi48 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &clk48 { | 
|  | /* Node is disabled by default as default source is HSI48 */ | 
|  | /* To select another clock, enable the node */ | 
|  | clocks = <&rcc STM32_SRC_HSI48 CLK48_SEL(0)>; | 
|  | }; | 
|  |  | 
|  | &rcc { | 
|  | clocks = <&clk_hse>; | 
|  | clock-frequency = <DT_FREQ_M(32)>; | 
|  | cpu1-prescaler = <1>; | 
|  | cpu2-prescaler = <1>; | 
|  | ahb4-prescaler = <1>; | 
|  | apb1-prescaler = <1>; | 
|  | apb2-prescaler = <1>; | 
|  | }; | 
|  |  | 
|  | &usart1 { | 
|  | pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>; | 
|  | pinctrl-names = "default"; | 
|  | current-speed = <115200>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  |  | 
|  | &lpuart1 { | 
|  | pinctrl-0 = <&lpuart1_tx_pa2 &lpuart1_rx_pa3>; | 
|  | pinctrl-names = "default"; | 
|  | current-speed = <100000>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &adc1 { | 
|  | pinctrl-0 = <&adc1_in3_pc2>; | 
|  | pinctrl-names = "default"; | 
|  | st,adc-clock-source = "SYNC"; | 
|  | st,adc-prescaler = <4>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &iwdg { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | zephyr_udc0: &usb { | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>; | 
|  | pinctrl-names = "default"; | 
|  | }; | 
|  |  | 
|  | &aes1 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &flash0 { | 
|  | partitions { | 
|  | compatible = "fixed-partitions"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <1>; | 
|  |  | 
|  | /* | 
|  | * Configure partitions while leaving space for M0 BLE f/w | 
|  | * Since STM32WBCube release V1.13.2, only _HCIOnly_ f/w are supported. | 
|  | * These FW are expected to be located not before 0x080DB000 | 
|  | * Current partition is using the first 876K of the flash for M4 | 
|  | */ | 
|  |  | 
|  | boot_partition: partition@0 { | 
|  | label = "mcuboot"; | 
|  | reg = <0x00000000 DT_SIZE_K(48)>; | 
|  | }; | 
|  | slot0_partition: partition@c000 { | 
|  | label = "image-0"; | 
|  | reg = <0x0000c000 DT_SIZE_K(400)>; | 
|  | }; | 
|  | slot1_partition: partition@70000 { | 
|  | label = "image-1"; | 
|  | reg = <0x00070000 DT_SIZE_K(400)>; | 
|  | }; | 
|  | scratch_partition: partition@d4000 { | 
|  | label = "image-scratch"; | 
|  | reg = <0x000d4000 DT_SIZE_K(16)>; | 
|  | }; | 
|  | storage_partition: partition@d8000 { | 
|  | label = "storage"; | 
|  | reg = <0x000d8000 DT_SIZE_K(8)>; | 
|  | }; | 
|  |  | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &gpioh { | 
|  | rgb_cs: rgb_cs { | 
|  | gpios = <1 GPIO_ACTIVE_HIGH>; | 
|  | gpio-hog; | 
|  | output-high; | 
|  | status = "disabled"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &i2c3 { | 
|  | pinctrl-0 = <&i2c3_scl_pb13 &i2c3_sda_pb11>; | 
|  | pinctrl-names = "default"; | 
|  | status = "okay"; | 
|  | clock-frequency = <I2C_BITRATE_FAST>; | 
|  |  | 
|  | vl53l0x@29 { | 
|  | compatible = "st,vl53l0x"; | 
|  | reg = <0x29>; | 
|  | xshut-gpios = <&gpioc 6 GPIO_ACTIVE_LOW>; | 
|  | }; | 
|  |  | 
|  | ism330dhcx: ism330dhcx@6b { | 
|  | compatible = "st,ism330dhcx"; | 
|  | reg = <0x6b>; | 
|  | drdy-gpios = <&gpiod 2 GPIO_ACTIVE_HIGH>; | 
|  | accel-odr= <ISM330DHCX_DT_ODR_52Hz>; | 
|  | gyro-odr= <ISM330DHCX_DT_ODR_26H>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &vref { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &vbat { | 
|  | status = "okay"; | 
|  | }; |