From d55905b2f7a2976a0e4a2303071207f818ef95b6 Mon Sep 17 00:00:00 2001 From: Erwan Gouriou Date: Fri, 5 Nov 2021 16:23:16 +0100 Subject: [PATCH] drivers/disk: sdmmc: stm32: use new pinctrl API Use the new pinctrl API to configure pins. Signed-off-by: Erwan Gouriou --- drivers/disk/sdmmc_stm32.c | 19 +++++-------------- dts/bindings/mmc/st,stm32-sdmmc.yaml | 14 +------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/drivers/disk/sdmmc_stm32.c b/drivers/disk/sdmmc_stm32.c index 1eaa6822e3f..b5e0944b178 100644 --- a/drivers/disk/sdmmc_stm32.c +++ b/drivers/disk/sdmmc_stm32.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include @@ -45,10 +45,7 @@ struct stm32_sdmmc_priv { int flags; } pe; struct stm32_pclken pclken; - struct { - const struct soc_gpio_pinctrl *list; - size_t len; - } pinctrl; + const struct pinctrl_dev_config *pcfg; }; #ifdef CONFIG_SDMMC_STM32_HWFC @@ -444,9 +441,7 @@ static int disk_stm32_sdmmc_init(const struct device *dev) k_work_init(&priv->work, stm32_sdmmc_cd_handler); /* Configure dt provided device signals when available */ - err = stm32_dt_pinctrl_configure(priv->pinctrl.list, - priv->pinctrl.len, - (uint32_t)priv->hsd.Instance); + err = pinctrl_apply_state(priv->pcfg, PINCTRL_STATE_DEFAULT); if (err < 0) { return err; } @@ -489,8 +484,7 @@ err_card_detect: #if DT_NODE_HAS_STATUS(DT_DRV_INST(0), okay) -static const struct soc_gpio_pinctrl sdmmc_pins_1[] = - ST_STM32_DT_INST_PINCTRL(0, 0); +PINCTRL_DT_INST_DEFINE(0) static void stm32_sdmmc_irq_config_func(const struct device *dev) { @@ -524,10 +518,7 @@ static struct stm32_sdmmc_priv stm32_sdmmc_priv_1 = { .bus = DT_INST_CLOCKS_CELL(0, bus), .enr = DT_INST_CLOCKS_CELL(0, bits), }, - .pinctrl = { - .list = sdmmc_pins_1, - .len = ARRAY_SIZE(sdmmc_pins_1) - } + .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0), }; DEVICE_DT_INST_DEFINE(0, disk_stm32_sdmmc_init, NULL, diff --git a/dts/bindings/mmc/st,stm32-sdmmc.yaml b/dts/bindings/mmc/st,stm32-sdmmc.yaml index 2ee86d0c1b9..0d0de7dca6d 100644 --- a/dts/bindings/mmc/st,stm32-sdmmc.yaml +++ b/dts/bindings/mmc/st,stm32-sdmmc.yaml @@ -2,7 +2,7 @@ description: stm32 sdmmc disk access compatible: "st,stm32-sdmmc" -include: mmc.yaml +include: [mmc.yaml, pinctrl-device.yaml] properties: clocks: @@ -23,15 +23,3 @@ properties: type: phandle-array required: false description: Power pin - - pinctrl-0: - type: phandles - required: false - description: | - Pin configuration for SDMMC signals. - We expect that the phandles will reference pinctrl nodes. - - For example - pinctrl-0 = <&sdmmc1_d0_pc8 &sdmmc1_d1_pc9 - &sdmmc1_d2_pc10 &sdmmc1_d3_pc11 - &sdmmc1_ck_pc12 &sdmmc1_cmd_pd2>;