1/* 2 * Copyright (c) 2020 Alexander Kozhinov <AlexanderKozhinov@yandex.com> 3 * Copyright (c) 2022 Georgij Cernysiov <geo.cgv@gmail.com> 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8#include <mem.h> 9#include <st/h7/stm32h7.dtsi> 10#include <zephyr/dt-bindings/display/panel.h> 11#include <zephyr/dt-bindings/flash_controller/ospi.h> 12 13/ { 14 soc { 15 compatible = "st,stm32h723", "st,stm32h7", "simple-bus"; 16 17 flash-controller@52002000 { 18 flash0: flash@8000000 { 19 compatible = "st,stm32-nv-flash", "soc-nv-flash"; 20 write-block-size = <32>; 21 erase-block-size = <DT_SIZE_K(128)>; 22 /* maximum erase time for a 128K sector */ 23 max-erase-time = <4000>; 24 }; 25 }; 26 27 uart9: serial@40011800 { 28 compatible = "st,stm32-uart"; 29 reg = <0x40011800 0x400>; 30 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000040>; 31 resets = <&rctl STM32_RESET(APB2, 6U)>; 32 interrupts = <155 0>; 33 status = "disabled"; 34 }; 35 36 usart10: serial@40011c00 { 37 compatible = "st,stm32-usart", "st,stm32-uart"; 38 reg = <0x40011c00 0x400>; 39 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000080>; 40 resets = <&rctl STM32_RESET(APB2, 7U)>; 41 interrupts = <156 0>; 42 status = "disabled"; 43 }; 44 45 /* 46 * ADC3 on STM32H723, 725, 730, 733 & 735 is a 12-bit resolution 47 * ADC, so we redefine the resolution for these devices. 48 */ 49 adc3: adc@58026000 { 50 resolutions = <STM32H72X_ADC3_RES(12, 0x00) 51 STM32H72X_ADC3_RES(10, 0x01) 52 STM32H72X_ADC3_RES(8, 0x02) 53 STM32H72X_ADC3_RES(6, 0x03)>; 54 sampling-times = <3 7 13 25 48 93 248 641>; 55 st,adc-sequencer = <FULLY_CONFIGURABLE>; 56 }; 57 58 dmamux1: dmamux@40020800 { 59 dma-requests= <129>; 60 }; 61 62 dmamux2: dmamux@58025800 { 63 dma-requests= <129>; 64 }; 65 66 rng: rng@48021800 { 67 health-test-magic = <0x17590abc>; 68 health-test-config = <0xaa74>; 69 }; 70 71 usbotg_hs: usb@40040000 { 72 compatible = "st,stm32-otghs"; 73 reg = <0x40040000 0x40000>; 74 interrupts = <77 0>, <74 0>, <75 0>; 75 interrupt-names = "otghs", "ep1_out", "ep1_in"; 76 num-bidir-endpoints = <9>; 77 ram-size = <DT_SIZE_K(4)>; 78 maximum-speed = "full-speed"; 79 clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x02000000>, 80 <&rcc STM32_SRC_HSI48 USB_SEL(3)>; 81 phys = <&otghs_fs_phy>; 82 status = "disabled"; 83 }; 84 85 ltdc: display-controller@50001000 { 86 compatible = "st,stm32-ltdc"; 87 reg = <0x50001000 0x200>; 88 interrupts = <88 0>, <89 0>; 89 interrupt-names = "ltdc", "ltdc_er"; 90 clocks = <&rcc STM32_CLOCK_BUS_APB3 0x00000008>; 91 status = "disabled"; 92 }; 93 94 octospi1: octospi@52005000 { 95 compatible = "st,stm32-ospi"; 96 reg = <0x52005000 0x1000>; 97 interrupts = <92 0>; 98 clock-names = "ospix", "ospi-ker"; 99 clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00004000>, 100 <&rcc STM32_SRC_PLL1_Q OSPI_SEL(1)>; 101 #address-cells = <1>; 102 #size-cells = <0>; 103 status = "disabled"; 104 }; 105 106 octospi2: octospi@5200a000 { 107 compatible = "st,stm32-ospi"; 108 reg = <0x5200a000 0x1000>; 109 interrupts = <150 0>; 110 clock-names = "ospix", "ospi-ker"; 111 clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x000080000>, 112 <&rcc STM32_SRC_PLL1_Q OSPI_SEL(1)>; 113 #address-cells = <1>; 114 #size-cells = <0>; 115 status = "disabled"; 116 }; 117 118 fdcan3: can@4000d400 { 119 compatible = "st,stm32h7-fdcan"; 120 reg = <0x4000d400 0x400>, <0x4000ac00 0x9f0>; 121 reg-names = "m_can", "message_ram"; 122 clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00000100>; 123 interrupts = <159 0>, <160 0>, <63 0>; 124 interrupt-names = "LINE_0", "LINE_1", "CALIB"; 125 bosch,mram-cfg = <0x6a0 28 8 3 3 0 3 3>; 126 sample-point = <875>; 127 sample-point-data = <875>; 128 status = "disabled"; 129 }; 130 131 rtc@58004000 { 132 bbram: backup_regs { 133 compatible = "st,stm32-bbram"; 134 st,backup-regs = <32>; 135 status = "disabled"; 136 }; 137 }; 138 }; 139 140 /* D1 domain, AXI SRAM (128KB with shared ITCM 192KB as `TCM_AXI_SHARED` is `000`) */ 141 sram0: memory@24000000 { 142 reg = <0x24000000 DT_SIZE_K(320)>; 143 compatible = "mmio-sram"; 144 }; 145 146 /* D2 domain, AHB SRAM */ 147 sram1: memory@30000000 { 148 reg = <0x30000000 DT_SIZE_K(16)>; 149 compatible = "zephyr,memory-region", "mmio-sram"; 150 zephyr,memory-region = "SRAM1"; 151 }; 152 153 /* D2 domain, AHB SRAM */ 154 sram2: memory@30004000 { 155 reg = <0x30004000 DT_SIZE_K(16)>; 156 compatible = "zephyr,memory-region", "mmio-sram"; 157 zephyr,memory-region = "SRAM2"; 158 }; 159 160 /* D3 domain, AHB SRAM */ 161 sram4: memory@38000000 { 162 reg = <0x38000000 DT_SIZE_K(16)>; 163 compatible = "zephyr,memory-region", "mmio-sram"; 164 zephyr,memory-region = "SRAM4"; 165 }; 166 167 /* Data TCM RAM */ 168 dtcm: memory@20000000 { 169 compatible = "zephyr,memory-region", "arm,dtcm"; 170 reg = <0x20000000 DT_SIZE_K(128)>; 171 zephyr,memory-region = "DTCM"; 172 }; 173 174 /* Instruction TCM RAM (64KB as `TCM_AXI_SHARED` is `000`) */ 175 itcm: memory@0 { 176 compatible = "zephyr,memory-region", "arm,itcm"; 177 reg = <0x00000000 DT_SIZE_K(64)>; 178 zephyr,memory-region = "ITCM"; 179 }; 180 181 otghs_fs_phy: otghs_fs_phy { 182 compatible = "usb-nop-xceiv"; 183 #phy-cells = <0>; 184 }; 185 186 die_temp: dietemp { 187 io-channels = <&adc3 17>; 188 ts-cal2-temp = <130>; 189 }; 190 191 vref: vref { 192 io-channels = <&adc3 18>; 193 }; 194 195 vbat: vbat { 196 io-channels = <&adc3 16>; 197 }; 198}; 199