diff options
| -rw-r--r-- | arch/riscv/boot/dts/starfive/jh7100-common.dtsi | 2 | ||||
| -rw-r--r-- | drivers/pinctrl/pinctrl-starfive.c | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/riscv/boot/dts/starfive/jh7100-common.dtsi b/arch/riscv/boot/dts/starfive/jh7100-common.dtsi index a59aea9ed553..f73ea76c4f53 100644 --- a/arch/riscv/boot/dts/starfive/jh7100-common.dtsi +++ b/arch/riscv/boot/dts/starfive/jh7100-common.dtsi @@ -17,6 +17,8 @@ aliases { mshc0 = &sdio0; mshc1 = &sdio1; + mmc0 = &sdio0; + mmc1 = &sdio1; serial0 = &uart3; serial1 = &uart0; }; diff --git a/drivers/pinctrl/pinctrl-starfive.c b/drivers/pinctrl/pinctrl-starfive.c index 7147f3e4446b..1bb99359f389 100644 --- a/drivers/pinctrl/pinctrl-starfive.c +++ b/drivers/pinctrl/pinctrl-starfive.c @@ -211,6 +211,7 @@ struct starfive_pinctrl { void __iomem *base; void __iomem *padctl; struct pinctrl_dev *pctl; + struct mutex mutex; }; static inline unsigned int starfive_pin_to_gpio(const struct starfive_pinctrl *sfp, @@ -526,6 +527,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, nmaps = 0; ngroups = 0; + mutex_lock(&sfp->mutex); for_each_child_of_node(np, child) { int npins; int i; @@ -619,12 +621,14 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, *maps = map; *num_maps = nmaps; + mutex_unlock(&sfp->mutex); return 0; put_child: of_node_put(child); free_map: pinctrl_utils_free_map(pctldev, map, nmaps); + mutex_unlock(&sfp->mutex); return ret; } @@ -1321,6 +1325,8 @@ static int starfive_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "could not deassert reset\n"); + mutex_init(&sfp->mutex); + platform_set_drvdata(pdev, sfp); sfp->gc.parent = dev; raw_spin_lock_init(&sfp->lock); |
