// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /* * Copyright (C) 2019-2023, STMicroelectronics - All Rights Reserved * Author: DCM Board Support - TF-A simplified version */ /dts-v1/; #include "stm32mp157.dtsi" #include "stm32mp15xc.dtsi" #include "stm32mp15-pinctrl.dtsi" #include "stm32mp15xxac-pinctrl.dtsi" / { model = "STM32MP157C DCM Board"; compatible = "st,stm32mp157c-dcm", "st,stm32mp157"; memory@c0000000 { device_type = "memory"; reg = <0xc0000000 0x40000000>; /* 1GB */ }; aliases { mmc0 = &sdmmc1; /* SD-Karte */ mmc1 = &sdmmc2; /* eMMC */ serial0 = &usart2; /* Console */ }; chosen { stdout-path = "serial0:115200n8"; }; /* Clock configuration - vereinfacht für TF-A */ clocks { clk_hse: clk-hse { clock-frequency = <24000000>; }; clk_lse: clk-lse { clock-frequency = <32768>; }; }; /* Override ARM PMU to fix cpu1 reference for BL2 */ arm-pmu { compatible = "arm,cortex-a7-pmu"; interrupts = <0 200 4>; interrupt-affinity = <&cpu0>; interrupt-parent = <&intc>; }; }; &pinctrl { /* SDMMC1 sd-card */ sdmmc1_pins_mx: sdmmc1_mx-0 { pins1 { pinmux = , /* SDMMC1_D0 */ , /* SDMMC1_D1 */ , /* SDMMC1_D2 */ , /* SDMMC1_D3 */ ; /* SDMMC1_CMD */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = ; /* SDMMC1_CK */ bias-disable; drive-push-pull; slew-rate = <3>; }; }; sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 { pins1 { pinmux = , /* SDMMC1_D0 */ , /* SDMMC1_D1 */ , /* SDMMC1_D2 */ ; /* SDMMC1_D3 */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = ; /* SDMMC1_CK */ bias-disable; drive-push-pull; slew-rate = <3>; }; pins3 { pinmux = ; /* SDMMC1_CMD */ bias-disable; drive-open-drain; slew-rate = <1>; }; }; sdmmc1_cd_pins: sdmmc1_cd_pins-0 { pins { u-boot,dm-pre-reloc; pinmux = ; /* SD_DETECT */ bias-pull-up; }; }; /* SDMMC2 eMMC */ sdmmc2_pins_mx: sdmmc2_mx-0 { pins1 { pinmux = , /* SDMMC2_D0 */ , /* SDMMC2_D1 */ , /* SDMMC2_D2 */ , /* SDMMC2_D3 */ , /* SDMMC2_D4 */ , /* SDMMC2_D5 */ , /* SDMMC2_D6 */ , /* SDMMC2_D7 */ ; /* SDMMC2_CMD */ bias-pull-up; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = ; /* SDMMC2_CK */ bias-pull-up; drive-push-pull; slew-rate = <3>; }; }; sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 { pins1 { pinmux = , /* SDMMC2_D0 */ , /* SDMMC2_D1 */ , /* SDMMC2_D2 */ , /* SDMMC2_D3 */ , /* SDMMC2_D4 */ , /* SDMMC2_D5 */ , /* SDMMC2_D6 */ ; /* SDMMC2_D7 */ bias-pull-up; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = ; /* SDMMC2_CK */ bias-pull-up; drive-push-pull; slew-rate = <3>; }; pins3 { pinmux = ; /* SDMMC2_CMD */ bias-pull-up; drive-open-drain; slew-rate = <1>; }; }; usart2_pins_mx: usart2_mx-0 { pins1 { pinmux = ; /* USART2_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins2 { pinmux = ; /* USART2_RX */ bias-disable; }; }; }; &pinctrl_z { i2c4_pins_z_mx: i2c4_mx-0 { u-boot,dm-pre-reloc; pins { u-boot,dm-pre-reloc; pinmux = , /* I2C4_SCL */ ; /* I2C4_SDA */ bias-disable; drive-open-drain; slew-rate = <0>; }; }; }; /* Console UART */ &usart2 { status = "okay"; }; /* SD-Karte für Boot */ &sdmmc1 { status = "okay"; st,neg-edge; bus-width = <4>; }; /* eMMC für Boot */ &sdmmc2 { status = "okay"; non-removable; no-sd; no-sdio; st,neg-edge; bus-width = <8>; }; /* USB Controllers - fix usbphyc references */ &usbh_ohci { clocks = <&rcc 111>; resets = <&rcc 3288>; status = "disabled"; }; &usbh_ehci { clocks = <&rcc 111>; resets = <&rcc 3288>; status = "disabled"; }; &usbotg_hs { clocks = <&rcc 166>; clock-names = "otg"; resets = <&rcc 19656>; reset-names = "dwc2"; status = "disabled"; }; /* I2C4 für PMIC - minimal für TF-A */ &i2c4 { status = "okay"; pmic: stpmic@33 { compatible = "st,stpmic1"; reg = <0x33>; status = "okay"; regulators { compatible = "st,stpmic1-regulators"; vddcore: buck1 { regulator-name = "vddcore"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1350000>; regulator-always-on; }; vdd_ddr: buck2 { regulator-name = "vdd_ddr"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; }; v3v3: buck4 { regulator-name = "v3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; }; }; }; /* RNG für TF-A Entropy */ &rng1 { status = "okay"; }; /* Crypto für Secure Boot */ &cryp1 { status = "okay"; }; &hash1 { status = "okay"; }; /* CPU Voltage Supply */ &cpu0 { cpu-supply = <&vddcore>; }; &cpu1 { cpu-supply = <&vddcore>; };