drivers/disk: sdmmc: stm32: use new pinctrl API

Use the new pinctrl API to configure pins.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
Erwan Gouriou 2021-11-05 16:23:16 +01:00 committed by Carles Cufí
commit d55905b2f7
2 changed files with 6 additions and 27 deletions

View file

@ -10,7 +10,7 @@
#include <drivers/disk.h> #include <drivers/disk.h>
#include <drivers/clock_control.h> #include <drivers/clock_control.h>
#include <drivers/clock_control/stm32_clock_control.h> #include <drivers/clock_control/stm32_clock_control.h>
#include <pinmux/pinmux_stm32.h> #include <drivers/pinctrl.h>
#include <drivers/gpio.h> #include <drivers/gpio.h>
#include <logging/log.h> #include <logging/log.h>
#include <soc.h> #include <soc.h>
@ -45,10 +45,7 @@ struct stm32_sdmmc_priv {
int flags; int flags;
} pe; } pe;
struct stm32_pclken pclken; struct stm32_pclken pclken;
struct { const struct pinctrl_dev_config *pcfg;
const struct soc_gpio_pinctrl *list;
size_t len;
} pinctrl;
}; };
#ifdef CONFIG_SDMMC_STM32_HWFC #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); k_work_init(&priv->work, stm32_sdmmc_cd_handler);
/* Configure dt provided device signals when available */ /* Configure dt provided device signals when available */
err = stm32_dt_pinctrl_configure(priv->pinctrl.list, err = pinctrl_apply_state(priv->pcfg, PINCTRL_STATE_DEFAULT);
priv->pinctrl.len,
(uint32_t)priv->hsd.Instance);
if (err < 0) { if (err < 0) {
return err; return err;
} }
@ -489,8 +484,7 @@ err_card_detect:
#if DT_NODE_HAS_STATUS(DT_DRV_INST(0), okay) #if DT_NODE_HAS_STATUS(DT_DRV_INST(0), okay)
static const struct soc_gpio_pinctrl sdmmc_pins_1[] = PINCTRL_DT_INST_DEFINE(0)
ST_STM32_DT_INST_PINCTRL(0, 0);
static void stm32_sdmmc_irq_config_func(const struct device *dev) 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), .bus = DT_INST_CLOCKS_CELL(0, bus),
.enr = DT_INST_CLOCKS_CELL(0, bits), .enr = DT_INST_CLOCKS_CELL(0, bits),
}, },
.pinctrl = { .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0),
.list = sdmmc_pins_1,
.len = ARRAY_SIZE(sdmmc_pins_1)
}
}; };
DEVICE_DT_INST_DEFINE(0, disk_stm32_sdmmc_init, NULL, DEVICE_DT_INST_DEFINE(0, disk_stm32_sdmmc_init, NULL,

View file

@ -2,7 +2,7 @@ description: stm32 sdmmc disk access
compatible: "st,stm32-sdmmc" compatible: "st,stm32-sdmmc"
include: mmc.yaml include: [mmc.yaml, pinctrl-device.yaml]
properties: properties:
clocks: clocks:
@ -23,15 +23,3 @@ properties:
type: phandle-array type: phandle-array
required: false required: false
description: Power pin 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>;