Commit 379edbe4 authored by Ludovic Barre's avatar Ludovic Barre Committed by Alexandre Torgue
Browse files

ARM: dts: stm32: add sdmmc1 support on stm32mp157c ed1 board



This patch adds sdmmc1 support on stm32mp157c ed1 board.

Signed-off-by: default avatarLudovic Barre <ludovic.barre@st.com>
Signed-off-by: default avatarAlexandre Torgue <alexandre.torgue@st.com>
parent 8d17cf7a
Loading
Loading
Loading
Loading
+68 −0
Original line number Diff line number Diff line
@@ -325,6 +325,74 @@
				};
			};

			sdmmc1_b4_pins_a: sdmmc1-b4-0 {
				pins {
					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
						 <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1_CK */
						 <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
					slew-rate = <3>;
					drive-push-pull;
					bias-disable;
				};
			};

			sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
				pins1 {
					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
						 <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
					slew-rate = <3>;
					drive-push-pull;
					bias-disable;
				};
				pins2{
					pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
					slew-rate = <3>;
					drive-open-drain;
					bias-disable;
				};
			};

			sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
				pins {
					pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
						 <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
						 <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
						 <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
						 <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
						 <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
				};
			};

			sdmmc1_dir_pins_a: sdmmc1-dir-0 {
				pins1 {
					pinmux = <STM32_PINMUX('F', 2, AF11)>, /* SDMMC1_D0DIR */
						 <STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
						 <STM32_PINMUX('B', 9, AF11)>; /* SDMMC1_CDIR */
					slew-rate = <3>;
					drive-push-pull;
					bias-pull-up;
				};
				pins2{
					pinmux = <STM32_PINMUX('E', 4, AF8)>; /* SDMMC1_CKIN */
					bias-pull-up;
				};
			};

			sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
				pins {
					pinmux = <STM32_PINMUX('F', 2, ANALOG)>, /* SDMMC1_D0DIR */
						 <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
						 <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
						 <STM32_PINMUX('E', 4, ANALOG)>; /* SDMMC1_CKIN */
				};
			};

			uart4_pins_a: uart4-0 {
				pins1 {
					pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
+37 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@

#include "stm32mp157c.dtsi"
#include "stm32mp157-pinctrl.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "STMicroelectronics STM32MP157C eval daughter";
@@ -41,6 +42,14 @@
		regulator-always-on;
	};

	vdd_sd: regulator-vdd_sd {
		compatible = "regulator-fixed";
		regulator-name = "vdd_sd";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	vdd_usb: vdd-usb {
		compatible = "regulator-fixed";
		regulator-name = "vdd_usb";
@@ -48,6 +57,19 @@
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	sd_switch: regulator-sd_switch {
		compatible = "regulator-gpio";
		regulator-name = "sd_switch";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2900000>;
		regulator-type = "voltage";
		regulator-always-on;

		gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
		gpios-states = <0>;
		states = <1800000 0x1 2900000 0x0>;
	};
};

&dts {
@@ -75,6 +97,21 @@
	status = "okay";
};

&sdmmc1 {
	pinctrl-names = "default", "opendrain", "sleep";
	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
	broken-cd;
	st,sig-dir;
	st,neg-edge;
	st,use-ckin;
	bus-width = <4>;
	vmmc-supply = <&vdd_sd>;
	vqmmc-supply = <&sd_switch>;
	status = "okay";
};

&timers6 {
	status = "okay";
	/* spare dmas for other usage */