/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ /* * Copyright (C) STMicroelectronics 2020 - All Rights Reserved * Author: STM32CubeMX code generation for STMicroelectronics. */ /* For more information on Device Tree configuration, please refer to * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration */ /dts-v1/; #include #include #include #include "stm32mp15-mx.dtsi" #include "stm32mp151.dtsi" #include "stm32mp15xa.dtsi" #include "stm32mp15xxaa-pinctrl.dtsi" #include "stm32mp15-ddr.dtsi" /* USER CODE BEGIN includes */ #include /* USER CODE END includes */ / { model = "STMicroelectronics custom STM32CubeMX board"; compatible = "st,stm32mp151a-stm32mp151aaa-mx", "st,stm32mp151"; /* USER CODE BEGIN root */ memory@c0000000{ device_type = "memory"; reg = <0xC0000000 0x20000000>; }; vin:vin{ compatible = "regulator-fixed"; regulator-name = "vin"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; chosen{ stdout-path = "serial0:115200n8"; }; aliases{ serial0 = &uart4; serial1 = &uart7; }; /* USER CODE END root */ clocks { /* USER CODE BEGIN clocks */ /* USER CODE END clocks */ clk_lse: clk-lse { /* USER CODE BEGIN clk_lse */ /* USER CODE END clk_lse */ }; clk_hse: clk-hse { st,digbypass; /* USER CODE BEGIN clk_hse */ /* USER CODE END clk_hse */ }; }; }; /*root*/ &pinctrl { sdmmc2_pins_mx: sdmmc2_mx-0 { pins1 { pinmux = , /* SDMMC2_D4 */ , /* SDMMC2_D5 */ , /* SDMMC2_D2 */ , /* SDMMC2_D3 */ , /* SDMMC2_D0 */ , /* SDMMC2_D1 */ , /* SDMMC2_D6 */ , /* SDMMC2_D7 */ ; /* SDMMC2_CMD */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = ; /* SDMMC2_CK */ bias-disable; drive-push-pull; slew-rate = <3>; }; }; uart4_pins_mx: uart4_mx-0 { pins1 { pinmux = ; /* UART4_RX */ bias-disable; }; pins2 { pinmux = ; /* UART4_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; }; uart7_pins_mx: uart7_mx-0 { pins1 { pinmux = ; /* UART7_RX */ bias-disable; }; pins2 { pinmux = ; /* UART7_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; }; /* USER CODE BEGIN pinctrl */ /* USER CODE END pinctrl */ }; &pinctrl_z { i2c4_pins_z_mx: i2c4_mx-0 { pins { pinmux = , /* I2C4_SCL */ ; /* I2C4_SDA */ bias-disable; drive-open-drain; slew-rate = <0>; }; }; /* USER CODE BEGIN pinctrl_z */ /* USER CODE END pinctrl_z */ }; &rcc { st,csi-cal; st,hsi-cal; st,cal-sec = <60>; st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC_LSI CLK_MCO1_DISABLED CLK_MCO2_DISABLED >; st,clkdiv = < 1 /*MPU*/ 0 /*AXI*/ 0 /*MCU*/ 1 /*APB1*/ 1 /*APB2*/ 1 /*APB3*/ 1 /*APB4*/ 2 /*APB5*/ 23 /*RTC*/ 0 /*MCO1*/ 0 /*MCO2*/ >; st,pkcs = < CLK_CKPER_DISABLED CLK_ETH_DISABLED CLK_SDMMC12_PLL4P CLK_STGEN_HSE CLK_USBPHY_DISABLED CLK_SPI2S1_DISABLED CLK_SPI2S23_DISABLED CLK_SPI45_DISABLED CLK_SPI6_DISABLED CLK_I2C46_HSI CLK_SDMMC3_DISABLED CLK_ADC_DISABLED CLK_CEC_DISABLED CLK_I2C12_DISABLED CLK_I2C35_DISABLED CLK_UART1_DISABLED CLK_UART24_HSI CLK_UART35_DISABLED CLK_UART6_DISABLED CLK_UART78_HSI CLK_SPDIF_DISABLED CLK_SAI1_DISABLED CLK_SAI2_DISABLED CLK_SAI3_DISABLED CLK_SAI4_DISABLED CLK_RNG1_LSI CLK_LPTIM1_DISABLED CLK_LPTIM23_DISABLED CLK_LPTIM45_DISABLED >; pll2:st,pll@1 { compatible = "st,stm32mp1-pll"; reg = <1>; cfg = < 2 65 1 1 0 PQR(1,0,1) >; frac = < 0x1400 >; }; pll3:st,pll@2 { compatible = "st,stm32mp1-pll"; reg = <2>; cfg = < 1 33 1 1 1 PQR(1,0,0) >; frac = < 0x1a04 >; }; pll4:st,pll@3 { compatible = "st,stm32mp1-pll"; reg = <3>; cfg = < 3 98 5 7 7 PQR(1,0,0) >; }; }; &bsec{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN bsec */ board_id:board_id@ec{ reg = <0xec 0x4>; st,non-secure-otp; }; /* USER CODE END bsec */ }; &etzpc{ st,decprot = < /*"Non Secured" peripherals*/ DECPROT(STM32MP1_ETZPC_DMA1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_DMA2_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_DMAMUX_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_HASH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_TIM6_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_UART4_ID, DECPROT_NS_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_UART7_ID, DECPROT_NS_RW, DECPROT_UNLOCK) /*"Secured" peripherals*/ DECPROT(STM32MP1_ETZPC_DDRCTRL_ID, DECPROT_S_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_DDRPHYC_ID, DECPROT_S_RW, DECPROT_UNLOCK) DECPROT(STM32MP1_ETZPC_STGENC_ID, DECPROT_S_RW, DECPROT_UNLOCK) /*Restriction: following IDs are not managed - please to use User-Section if needed: STM32MP1_ETZPC_SRAMx_ID, STM32MP1_ETZPC_RETRAM_ID, STM32MP1_ETZPC_BKPSRAM_ID*/ /* USER CODE BEGIN etzpc_decprot */ /*STM32CubeMX generates a basic and standard configuration for ETZPC. Additional device configurations can be added here if needed. "etzpc" node could be also overloaded in "addons" User-Section.*/ DECPROT(STM32MP1_ETZPC_BKPSRAM_ID, DECPROT_S_RW, DECPROT_UNLOCK) /* USER CODE END etzpc_decprot */ >; secure-status = "okay"; /* USER CODE BEGIN etzpc */ /* USER CODE END etzpc */ }; &hash1{ status = "okay"; /* USER CODE BEGIN hash1 */ /* USER CODE END hash1 */ }; &i2c4{ pinctrl-names = "default"; pinctrl-0 = <&i2c4_pins_z_mx>; status = "okay"; secure-status = "okay"; /* USER CODE BEGIN i2c4 */ i2c-scl-rising-time-ns = <185>; i2c-scl-falling-time-ns = <20>; clock-frequency = <400000>; pmic:stpmic@33{ compatible = "st,stpmic1"; reg = <0x33>; interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; interrupt-controller; #interrupt-cells = <2>; status = "okay"; regulators{ compatible = "st,stpmic1-regulators"; buck1-supply = <&vin>; buck2-supply = <&vin>; buck3-supply = <&vin>; buck4-supply = <&vin>; ldo1-supply = <&v3v3>; ldo2-supply = <&v3v3>; ldo3-supply = <&vdd_ddr>; ldo4-supply = <&vin>; ldo5-supply = <&v3v3>; ldo6-supply = <&v3v3>; vref_ddr-supply = <&vin>; boost-supply = <&vin>; pwr_sw1-supply = <&bst_out>; pwr_sw2-supply = <&bst_out>; vddcore:buck1{ regulator-name = "vddcore"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-initial-mode = <0>; regulator-over-current-protection; lp-stop{ regulator-on-in-suspend; regulator-suspend-microvolt = <1200000>; }; lplv-stop{ regulator-on-in-suspend; regulator-suspend-microvolt = <900000>; }; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vdd_ddr:buck2{ regulator-name = "vdd_ddr"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-initial-mode = <0>; regulator-over-current-protection; lp-stop{ regulator-suspend-microvolt = <1350000>; regulator-on-in-suspend; }; lplv-stop{ regulator-suspend-microvolt = <1350000>; regulator-on-in-suspend; }; standby-ddr-sr{ regulator-suspend-microvolt = <1350000>; regulator-on-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vdd:buck3{ regulator-name = "vdd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; st,mask-reset; regulator-initial-mode = <0>; regulator-over-current-protection; lp-stop{ regulator-suspend-microvolt = <3300000>; regulator-on-in-suspend; }; lplv-stop{ regulator-suspend-microvolt = <3300000>; regulator-on-in-suspend; }; standby-ddr-sr{ regulator-suspend-microvolt = <3300000>; regulator-on-in-suspend; }; standby-ddr-off{ regulator-suspend-microvolt = <3300000>; regulator-on-in-suspend; }; }; v3v3:buck4{ regulator-name = "v3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-over-current-protection; regulator-initial-mode = <0>; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vdda:ldo1{ regulator-name = "vdda"; regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; v2v8:ldo2{ regulator-name = "v2v8"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vtt_ddr:ldo3{ regulator-name = "vtt_ddr"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <750000>; regulator-always-on; regulator-over-current-protection; lp-stop{ regulator-off-in-suspend; }; lplv-stop{ regulator-off-in-suspend; }; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vdd_usb:ldo4{ regulator-name = "vdd_usb"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; standby-ddr-sr{ regulator-on-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vdd_sd:ldo5{ regulator-name = "vdd_sd"; regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; regulator-boot-on; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; v1v8:ldo6{ regulator-name = "v1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-enable-ramp-delay = <300000>; standby-ddr-sr{ regulator-off-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; vref_ddr:vref_ddr{ regulator-name = "vref_ddr"; regulator-always-on; regulator-over-current-protection; lp-stop{ regulator-on-in-suspend; }; lplv-stop{ regulator-on-in-suspend; }; standby-ddr-sr{ regulator-on-in-suspend; }; standby-ddr-off{ regulator-off-in-suspend; }; }; bst_out:boost{ regulator-name = "bst_out"; }; vbus_otg:pwr_sw1{ regulator-name = "vbus_otg"; }; vbus_sw:pwr_sw2{ regulator-name = "vbus_sw"; regulator-active-discharge = <1>; }; }; }; /* USER CODE END i2c4 */ }; &pwr_regulators{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN pwr_regulators */ system_suspend_supported_soc_modes = < STM32_PM_CSLEEP_RUN STM32_PM_CSTOP_ALLOW_LP_STOP STM32_PM_CSTOP_ALLOW_LPLV_STOP STM32_PM_CSTOP_ALLOW_STANDBY_DDR_SR >; system_off_soc_mode = ; vdd-supply = <&vdd>; /* USER CODE END pwr_regulators */ }; &rcc{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN rcc */ /* USER CODE END rcc */ }; &rng1{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN rng1 */ /* USER CODE END rng1 */ }; &rtc{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN rtc */ /* USER CODE END rtc */ }; &sdmmc2{ pinctrl-names = "default"; pinctrl-0 = <&sdmmc2_pins_mx>; status = "okay"; /* USER CODE BEGIN sdmmc2 */ /* USER CODE END sdmmc2 */ }; &tamp{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN tamp */ /* USER CODE END tamp */ }; &timers15{ secure-status = "okay"; /* USER CODE BEGIN timers15 */ st,hsi-cal-input = <7>; st,csi-cal-input = <8>; /* USER CODE END timers15 */ }; &uart4{ pinctrl-names = "default"; pinctrl-0 = <&uart4_pins_mx>; status = "okay"; /* USER CODE BEGIN uart4 */ /* USER CODE END uart4 */ }; &uart7{ pinctrl-names = "default"; pinctrl-0 = <&uart7_pins_mx>; status = "okay"; /* USER CODE BEGIN uart7 */ /* USER CODE END uart7 */ }; /* USER CODE BEGIN addons */ &cpu0{ cpu-supply = <&vddcore>; }; /* USER CODE END addons */