1/* 2 * Copyright (c) 2023-2024 STMicroelectronics 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7/dts-v1/; 8#include <st/h7/stm32h750Xb.dtsi> 9#include <st/h7/stm32h750xbhx-pinctrl.dtsi> 10#include "arduino_r3_connector.dtsi" 11#include <zephyr/dt-bindings/input/input-event-codes.h> 12 13/ { 14 model = "STMicroelectronics STM32H750B DISCOVERY KIT"; 15 compatible = "st,stm32h750b-dk"; 16 17 chosen { 18 zephyr,console = &usart3; 19 zephyr,shell-uart = &usart3; 20 zephyr,sram = &sram0; 21 zephyr,flash = &flash0; 22 zephyr,flash-controller = &mt25ql512ab1; 23 zephyr,display = <dc; 24 }; 25 26 sdram2: sdram@d0000000 { 27 compatible = "zephyr,memory-region", "mmio-sram"; 28 device_type = "memory"; 29 reg = <0xd0000000 DT_SIZE_M(16)>; /* 128Mbit */ 30 zephyr,memory-region = "SDRAM2"; 31 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; 32 }; 33 34 ext_memory: memory@90000000 { 35 compatible = "zephyr,memory-region"; 36 reg = <0x90000000 DT_SIZE_M(256)>; /* max addressable area */ 37 zephyr,memory-region = "EXTMEM"; 38 /* The ATTR_MPU_EXTMEM attribut causing a MPU FAULT */ 39 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_IO) )>; 40 }; 41 42 leds { 43 compatible = "gpio-leds"; 44 red_led: led_1 { 45 gpios = <&gpioi 13 GPIO_ACTIVE_LOW>; 46 label = "USER1 LD6"; 47 }; 48 green_led: led_2 { 49 gpios = <&gpioj 2 GPIO_ACTIVE_LOW>; 50 label = "USER2 LD7"; 51 }; 52 }; 53 54 gpio_keys { 55 compatible = "gpio-keys"; 56 user_button: button { 57 label = "User"; 58 gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; 59 zephyr,code = <INPUT_KEY_0>; 60 }; 61 }; 62 63 aliases { 64 led0 = &green_led; 65 led1 = &red_led; 66 sw0 = &user_button; 67 die-temp0 = &die_temp; 68 }; 69}; 70 71&clk_hse { 72 clock-frequency = <DT_FREQ_M(25)>; 73 hse-bypass; 74 status = "okay"; 75}; 76 77&clk_lse { 78 status = "okay"; 79}; 80 81<dc { 82 pinctrl-0 = <<dc_r0_pi15 <dc_r1_pj0 <dc_r2_pj1 <dc_r3_ph9 83 <dc_r4_pj3 <dc_r5_pj4 <dc_r6_pj5 <dc_r7_pj6 84 <dc_g0_pj7 <dc_g1_pj8 <dc_g2_pj9 <dc_g3_pj10 85 <dc_g4_pj11 <dc_g5_pi0 <dc_g6_pi1 <dc_g7_pk2 86 <dc_b0_pj12 <dc_b1_pj13 <dc_b2_pj14 <dc_b3_pj15 87 <dc_b4_pk3 <dc_b5_pk4 <dc_b6_pk5 <dc_b7_pk6 88 <dc_de_pk7 <dc_clk_pi14 <dc_hsync_pi12 <dc_vsync_pi9>; 89 pinctrl-names = "default"; 90 91 disp-on-gpios = <&gpiod 7 GPIO_ACTIVE_HIGH>; 92 93 ext-sdram = <&sdram2>; 94 status = "okay"; 95 96 clocks = <&rcc STM32_CLOCK_BUS_APB3 0x00000008>, 97 <&rcc STM32_SRC_PLL3_R NO_SEL>; 98 99 width = <480>; 100 height = <272>; 101 pixel-format = <PANEL_PIXEL_FORMAT_RGB_565>; 102 display-timings { 103 compatible = "zephyr,panel-timing"; 104 de-active = <1>; 105 pixelclk-active = <0>; 106 hsync-active = <0>; 107 vsync-active = <0>; 108 hsync-len = <1>; 109 vsync-len = <10>; 110 hback-porch = <43>; 111 vback-porch = <12>; 112 hfront-porch = <8>; 113 vfront-porch = <4>; 114 }; 115 def-back-color-red = <0xFF>; 116 def-back-color-green = <0xFF>; 117 def-back-color-blue = <0xFF>; 118}; 119 120&pll { 121 div-m = <5>; 122 mul-n = <192>; 123 div-p = <2>; 124 div-q = <4>; 125 div-r = <4>; 126 clocks = <&clk_hse>; 127 status = "okay"; 128}; 129 130&pll3 { 131 div-m = <5>; 132 mul-n = <192>; 133 div-p = <2>; 134 div-q = <20>; 135 div-r = <99>; 136 clocks = <&clk_hse>; 137 status = "okay"; 138}; 139 140&rcc { 141 clocks = <&pll>; 142 clock-frequency = <DT_FREQ_M(480)>; 143 d1cpre = <1>; 144 hpre = <2>; 145 d1ppre = <2>; 146 d2ppre1 = <2>; 147 d2ppre2 = <2>; 148 d3ppre = <2>; 149}; 150 151&usart3 { 152 pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>; 153 pinctrl-names = "default"; 154 current-speed = <115200>; 155 status = "okay"; 156}; 157 158&quadspi { 159 pinctrl-names = "default"; 160 pinctrl-0 = <&quadspi_clk_pf10 &quadspi_bk1_ncs_pg6 161 &quadspi_bk1_io0_pd11 &quadspi_bk1_io1_pf9 162 &quadspi_bk1_io2_pf7 &quadspi_bk1_io3_pf6 163 &quadspi_bk2_io0_ph2 &quadspi_bk2_io1_ph3 164 &quadspi_bk2_io2_pg9 &quadspi_bk2_io3_pg14>; 165 dual-flash; 166 status = "okay"; 167 168 mt25ql512ab1: qspi-nor-flash-1@90000000 { 169 compatible = "st,stm32-qspi-nor"; 170 reg = <0x90000000 DT_SIZE_M(64)>; /* 512 Mbits */ 171 qspi-max-frequency = <72000000>; 172 spi-bus-width = <4>; 173 reset-cmd; 174 status = "okay"; 175 176 partitions { 177 compatible = "fixed-partitions"; 178 #address-cells = <1>; 179 #size-cells = <1>; 180 181 partition@0 { 182 reg = <0x0 DT_SIZE_M(64)>; 183 }; 184 }; 185 }; 186 187 mt25ql512ab2: qspi-nor-flash-2@90000000 { 188 compatible = "st,stm32-qspi-nor"; 189 reg = <0x90000000 DT_SIZE_M(64)>; /* 512 Mbits */ 190 qspi-max-frequency = <72000000>; 191 status = "okay"; 192 }; 193}; 194 195&fmc { 196 pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1 197 &fmc_sdclk_pg8 &fmc_sdnwe_ph5 &fmc_sdcke1_ph7 198 &fmc_sdne1_ph6 &fmc_sdnras_pf11 &fmc_sdncas_pg15 199 &fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3 &fmc_a4_pf4 200 &fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13 &fmc_a8_pf14 201 &fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1 202 &fmc_a14_pg4 &fmc_a15_pg5 &fmc_d0_pd14 &fmc_d1_pd15 203 &fmc_d2_pd0 &fmc_d3_pd1 &fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9 204 &fmc_d7_pe10 &fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13 205 &fmc_d11_pe14 &fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9 206 &fmc_d15_pd10>; 207 pinctrl-names = "default"; 208 status = "okay"; 209 210 sdram { 211 status = "okay"; 212 power-up-delay = <100>; 213 num-auto-refresh = <8>; 214 mode-register = <0x230>; 215 refresh-rate = <0x603>; 216 bank@1 { 217 reg = <1>; 218 st,sdram-control = <STM32_FMC_SDRAM_NC_8 219 STM32_FMC_SDRAM_NR_12 220 STM32_FMC_SDRAM_MWID_16 221 STM32_FMC_SDRAM_NB_4 222 STM32_FMC_SDRAM_CAS_3 223 STM32_FMC_SDRAM_SDCLK_PERIOD_2 224 STM32_FMC_SDRAM_RBURST_ENABLE 225 STM32_FMC_SDRAM_RPIPE_1>; 226 st,sdram-timing = <2 7 4 7 2 2 2>; 227 }; 228 }; 229}; 230 231&rtc { 232 clocks = <&rcc STM32_CLOCK_BUS_APB4 0x00010000>, 233 <&rcc STM32_SRC_LSE RTC_SEL(1)>; 234 status = "okay"; 235}; 236 237&die_temp { 238 status = "okay"; 239}; 240 241&adc3 { 242 st,adc-clock-source = "SYNC"; 243 st,adc-prescaler = <4>; 244 status = "okay"; 245}; 246 247/* Arduino Header pins: Tx:D1, Rx:D0 */ 248/* LPUART1 can also be used with this pins */ 249&usart1 { 250 dma-names = "tx", "rx"; 251 pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>; 252 pinctrl-names = "default"; 253 current-speed = <115200>; 254 status = "okay"; 255}; 256