Commit a71f77e6 authored by Anthony Brandon's avatar Anthony Brandon Committed by Carles Cufi
Browse files

boards: arm: stm32l496g_disco: enable sdmmc support



Update the dtsi for stm32l471 (which the higher SoCs are based on) to
support the stm32-sdmmc disk access device. Enable the device for the
stm32l496g_disco board, and update the pinmuxing.
Note that the stm32l496g_disco board also has a card detect gpio
(MFX_GPIO8), but this is not supported yet. When not specified the
driver will assume a card is present.

Signed-off-by: default avatarAnthony Brandon <anthony@amarulasolutions.com>
parent 631cad42
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -39,6 +39,14 @@ static const struct pin_config pinconf[] = {
#if DT_HAS_NODE_STATUS_OKAY(DT_NODELABEL(pwm2))
	{STM32_PIN_PA0, STM32L4X_PINMUX_FUNC_PA0_PWM2_CH1},
#endif
#if DT_HAS_NODE_STATUS_OKAY(DT_NODELABEL(sdmmc1))
	{STM32_PIN_PC8, STM32L4X_PINMUX_FUNC_PC8_SDMMC1_D0},
	{STM32_PIN_PC9, STM32L4X_PINMUX_FUNC_PC9_SDMMC1_D1},
	{STM32_PIN_PC10, STM32L4X_PINMUX_FUNC_PC10_SDMMC1_D2},
	{STM32_PIN_PC11, STM32L4X_PINMUX_FUNC_PC11_SDMMC1_D3},
	{STM32_PIN_PC12, STM32L4X_PINMUX_FUNC_PC12_SDMMC1_CK},
	{STM32_PIN_PD2, STM32L4X_PINMUX_FUNC_PD2_SDMMC1_CMD},
#endif
};

static int pinmux_stm32_init(struct device *port)
+4 −0
Original line number Diff line number Diff line
@@ -95,3 +95,7 @@ arduino_serial: &lpuart1 {};
&rtc {
	status = "okay";
};

&sdmmc1 {
	status = "okay";
};
+1 −0
Original line number Diff line number Diff line
@@ -15,3 +15,4 @@ supported:
  - spi
  - gpio
  - counter
  - sdhc
+20 −0
Original line number Diff line number Diff line
@@ -253,6 +253,14 @@
#define STM32L4X_PINMUX_FUNC_PC7_USART6_RX                                     \
	(STM32_PINMUX_ALT_FUNC_8 | STM32_PUPDR_NO_PULL)

#define STM32L4X_PINMUX_FUNC_PC8_SDMMC1_D0                                     \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

#define STM32L4X_PINMUX_FUNC_PC9_SDMMC1_D1                                     \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

#define STM32L4X_PINMUX_FUNC_PC10_SPI3_SCK                                     \
	(STM32_PINMUX_ALT_FUNC_6 | STM32_PUPDR_PULL_DOWN | \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)
@@ -260,6 +268,9 @@
	(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
#define STM32L4X_PINMUX_FUNC_PC10_UART4_TX                                     \
	(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
#define STM32L4X_PINMUX_FUNC_PC10_SDMMC1_D2                                    \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

#define STM32L4X_PINMUX_FUNC_PC11_SPI3_MISO                                    \
	(STM32_PINMUX_ALT_FUNC_6 | STM32_PUPDR_PULL_DOWN)
@@ -267,10 +278,16 @@
	(STM32_PINMUX_ALT_FUNC_7 | STM32_PUPDR_NO_PULL)
#define STM32L4X_PINMUX_FUNC_PC11_UART4_RX                                     \
	(STM32_PINMUX_ALT_FUNC_8 | STM32_PUPDR_NO_PULL)
#define STM32L4X_PINMUX_FUNC_PC11_SDMMC1_D3                                    \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

#define STM32L4X_PINMUX_FUNC_PC12_SPI3_MOSI                                    \
	(STM32_PINMUX_ALT_FUNC_6 | STM32_PUPDR_PULL_DOWN | \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)
#define STM32L4X_PINMUX_FUNC_PC12_SDMMC1_CK                                    \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

/* Port D */
#ifndef CONFIG_SOC_STM32L432XX
@@ -285,6 +302,9 @@

#define STM32L4X_PINMUX_FUNC_PD2_USART3_RTS                                    \
	(STM32_PINMUX_ALT_FUNC_7 | STM32_OPENDRAIN_PULLUP)
#define STM32L4X_PINMUX_FUNC_PD2_SDMMC1_CMD                                    \
	(STM32_PINMUX_ALT_FUNC_12 | STM32_PUSHPULL_PULLUP |                    \
	 STM32_OSPEEDR_VERY_HIGH_SPEED)

#define STM32L4X_PINMUX_FUNC_PD3_USART2_CTS                                    \
	(STM32_PINMUX_ALT_FUNC_7 | STM32_OPENDRAIN_PULLUP)
+8 −0
Original line number Diff line number Diff line
@@ -188,5 +188,13 @@
				#pwm-cells = <2>;
			};
		};

		sdmmc1: sdmmc@40012800 {
			compatible = "st,stm32-sdmmc";
			reg = <0x40012800 0x400>;
			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000400>;
			status = "disabled";
			label = "SDMMC_1";
		};
	};
};