diff --git a/dts/arm/st/c0/stm32c091.dtsi b/dts/arm/st/c0/stm32c091.dtsi new file mode 100644 index 00000000000..5fb3f47cd58 --- /dev/null +++ b/dts/arm/st/c0/stm32c091.dtsi @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/* STM32C091 is a superset of the C071 with the exception of USB support. + * Since C071 provides the same set of peripheral as the C051, + * along with the addition of USB, once the C051 is introduced, + * it can be included instead, and the delete-node can be removed. + */ +/delete-node/ &usb; +/delete-node/ &usb_fs_phy; + +/ { + soc { + compatible = "st,stm32c091", "st,stm32c0", "simple-bus"; + + timers15: timers@40014000 { + compatible = "st,stm32-timers"; + reg = <0x40014000 0x400>; + clocks = <&rcc STM32_CLOCK(APB1_2, 16)>; + resets = <&rctl STM32_RESET(APB1H, 16)>; + interrupts = <20 0>; + interrupt-names = "global"; + st,prescaler = <0>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + status = "disabled"; + #pwm-cells = <3>; + }; + + counter { + compatible = "st,stm32-counter"; + status = "disabled"; + }; + }; + + usart3: serial@40004800 { + compatible = "st,stm32-usart", "st,stm32-uart"; + reg = <0x40004800 0x400>; + clocks = <&rcc STM32_CLOCK(APB1, 18)>; + resets = <&rctl STM32_RESET(APB1L, 18)>; + interrupts = <29 0>; + status = "disabled"; + }; + + usart4: serial@40004c00 { + compatible = "st,stm32-usart", "st,stm32-uart"; + reg = <0x40004c00 0x400>; + clocks = <&rcc STM32_CLOCK(APB1, 19)>; + resets = <&rctl STM32_RESET(APB1L, 19)>; + interrupts = <29 0>; + status = "disabled"; + }; + + dma1: dma@40020000 { + interrupts = <9 0 10 0 10 0 11 0 11 0 11 0 11 0>; + dma-requests = <7>; + }; + + dmamux1: dmamux@40020800 { + dma-channels = <7>; + dma-requests = <53>; + }; + }; +}; diff --git a/dts/arm/st/c0/stm32c091Xb.dtsi b/dts/arm/st/c0/stm32c091Xb.dtsi new file mode 100644 index 00000000000..d1cd06a0eca --- /dev/null +++ b/dts/arm/st/c0/stm32c091Xb.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + sram0: memory@20000000 { + reg = <0x20000000 DT_SIZE_K(36)>; + }; + + soc { + flash-controller@40022000 { + flash0: flash@8000000 { + reg = <0x08000000 DT_SIZE_K(128)>; + }; + }; + }; +}; diff --git a/dts/arm/st/c0/stm32c091Xc.dtsi b/dts/arm/st/c0/stm32c091Xc.dtsi new file mode 100644 index 00000000000..4b1a595b0e2 --- /dev/null +++ b/dts/arm/st/c0/stm32c091Xc.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + sram0: memory@20000000 { + reg = <0x20000000 DT_SIZE_K(36)>; + }; + + soc { + flash-controller@40022000 { + flash0: flash@8000000 { + reg = <0x08000000 DT_SIZE_K(256)>; + }; + }; + }; +}; diff --git a/dts/arm/st/c0/stm32c092.dtsi b/dts/arm/st/c0/stm32c092.dtsi new file mode 100644 index 00000000000..fd90eab4215 --- /dev/null +++ b/dts/arm/st/c0/stm32c092.dtsi @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + soc { + compatible = "st,stm32c092", "st,stm32c0", "simple-bus"; + + fdcan1: can@40006400 { + compatible = "st,stm32-fdcan"; + reg = <0x40006400 0x400>, <0x4000b400 0x350>; + reg-names = "m_can", "message_ram"; + interrupts = <30 0>, <31 0>; + interrupt-names = "int0", "int1"; + clocks = <&rcc STM32_CLOCK(APB1, 12)>; + bosch,mram-cfg = <0x0 28 8 3 3 0 3 3>; + status = "disabled"; + }; + }; +}; diff --git a/dts/arm/st/c0/stm32c092Xb.dtsi b/dts/arm/st/c0/stm32c092Xb.dtsi new file mode 100644 index 00000000000..889f658029f --- /dev/null +++ b/dts/arm/st/c0/stm32c092Xb.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + sram0: memory@20000000 { + reg = <0x20000000 DT_SIZE_K(30)>; + }; + + soc { + flash-controller@40022000 { + flash0: flash@8000000 { + reg = <0x08000000 DT_SIZE_K(128)>; + }; + }; + }; +}; diff --git a/dts/arm/st/c0/stm32c092Xc.dtsi b/dts/arm/st/c0/stm32c092Xc.dtsi new file mode 100644 index 00000000000..e814ddb4be9 --- /dev/null +++ b/dts/arm/st/c0/stm32c092Xc.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * Copyright (c) 2025 Thomas Stranger + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + sram0: memory@20000000 { + reg = <0x20000000 DT_SIZE_K(30)>; + }; + + soc { + flash-controller@40022000 { + flash0: flash@8000000 { + reg = <0x08000000 DT_SIZE_K(256)>; + }; + }; + }; +};