linux/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts

// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
 * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
 * Author: Alexandre Torgue <[email protected]> for STMicroelectronics.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/st,stm32mp25-regulator.h>
#include "stm32mp257.dtsi"
#include "stm32mp25xf.dtsi"
#include "stm32mp25-pinctrl.dtsi"
#include "stm32mp25xxai-pinctrl.dtsi"

/ {
	model = "STMicroelectronics STM32MP257F-EV1 Evaluation Board";
	compatible = "st,stm32mp257f-ev1", "st,stm32mp257";

	aliases {
		ethernet0 = &ethernet2;
		serial0 = &usart2;
		serial1 = &usart6;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x0 0x80000000 0x1 0x0>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		fw@80000000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x80000000 0x0 0x4000000>;
			no-map;
		};
	};
};

&arm_wdt {
	timeout-sec = <32>;
	status = "okay";
};

&ethernet2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&eth2_rgmii_pins_a>;
	pinctrl-1 = <&eth2_rgmii_sleep_pins_a>;
	max-speed = <1000>;
	phy-handle = <&phy0_eth2>;
	phy-mode = "rgmii-id";
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "snps,dwmac-mdio";
		phy0_eth2: ethernet-phy@1 {
			compatible = "ethernet-phy-id001c.c916";
			reg = <1>;
			reset-assert-us = <10000>;
			reset-deassert-us = <300>;
			reset-gpios =  <&gpiog 6 GPIO_ACTIVE_LOW>;
		};
	};
};

&i2c2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c2_pins_a>;
	pinctrl-1 = <&i2c2_sleep_pins_a>;
	i2c-scl-rising-time-ns = <100>;
	i2c-scl-falling-time-ns = <13>;
	clock-frequency = <400000>;
	status = "okay";
};

&i2c8 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c8_pins_a>;
	pinctrl-1 = <&i2c8_sleep_pins_a>;
	i2c-scl-rising-time-ns = <57>;
	i2c-scl-falling-time-ns = <7>;
	clock-frequency = <400000>;
	status = "disabled";
};

&scmi_regu {
	scmi_vddio1: regulator@0 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};
	scmi_vddcore: regulator@11  {
		reg = <VOLTD_SCMI_STPMIC2_BUCK2>;
		regulator-name = "vddcore";
	};
	scmi_v1v8: regulator@14  {
		reg = <VOLTD_SCMI_STPMIC2_BUCK5>;
		regulator-name = "v1v8";
	};
	scmi_v3v3: regulator@16 {
		reg = <VOLTD_SCMI_STPMIC2_BUCK7>;
		regulator-name = "v3v3";
	};
	scmi_vdd_emmc: regulator@18 {
		reg = <VOLTD_SCMI_STPMIC2_LDO2>;
		regulator-name = "vdd_emmc";
	};
	scmi_vdd3v3_usb: regulator@20 {
		reg = <VOLTD_SCMI_STPMIC2_LDO4>;
		regulator-name = "vdd3v3_usb";
	};
	scmi_vdd_sdcard: regulator@23 {
		reg = <VOLTD_SCMI_STPMIC2_LDO7>;
		regulator-name = "vdd_sdcard";
	};
};

&sdmmc1 {
	pinctrl-names = "default", "opendrain", "sleep";
	pinctrl-0 = <&sdmmc1_b4_pins_a>;
	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
	cd-gpios = <&gpiod 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
	disable-wp;
	st,neg-edge;
	bus-width = <4>;
	vmmc-supply = <&scmi_vdd_sdcard>;
	vqmmc-supply = <&scmi_vddio1>;
	status = "okay";
};

&spi3 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi3_pins_a>;
	pinctrl-1 = <&spi3_sleep_pins_a>;
	status = "disabled";
};

&spi8 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi8_pins_a>;
	pinctrl-1 = <&spi8_sleep_pins_a>;
	status = "disabled";
};

&usart2 {
	pinctrl-names = "default", "idle", "sleep";
	pinctrl-0 = <&usart2_pins_a>;
	pinctrl-1 = <&usart2_idle_pins_a>;
	pinctrl-2 = <&usart2_sleep_pins_a>;
	status = "okay";
};

&usart6 {
	pinctrl-names = "default", "idle", "sleep";
	pinctrl-0 = <&usart6_pins_a>;
	pinctrl-1 = <&usart6_idle_pins_a>;
	pinctrl-2 = <&usart6_sleep_pins_a>;
	uart-has-rtscts;
	status = "disabled";
};