diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-stm32.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-stm32.c | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/drivers/pinctrl/pinctrl-stm32.c b/drivers/pinctrl/pinctrl-stm32.c index fc0cc78f43..63a01b6ec6 100644 --- a/drivers/pinctrl/pinctrl-stm32.c +++ b/drivers/pinctrl/pinctrl-stm32.c @@ -86,7 +86,8 @@ static inline u32 stm32_gpio_get_alt(u32 function) return 0; } -static int __stm32_pinctrl_set_state(struct device_d *dev, struct device_node *pins) +static int __stm32_pinctrl_set_state(struct device *dev, + struct device_node *pins) { int ret; @@ -100,8 +101,7 @@ static int __stm32_pinctrl_set_state(struct device_d *dev, struct device_node *p of_get_property(pins, "pinmux", &num_pins); num_pins /= sizeof(__be32); if (!num_pins) { - dev_err(dev, "Invalid pinmux property in %s\n", - pins->full_name); + dev_err(dev, "Invalid pinmux property in %pOF\n", pins); return -EINVAL; } @@ -128,7 +128,7 @@ static int __stm32_pinctrl_set_state(struct device_d *dev, struct device_node *p else if (of_get_property(pins, "output-high", NULL)) dir = PIN_OUTPUT_HIGH; - dev_dbg(dev, "%s: multiplexing %d pins\n", pins->full_name, num_pins); + dev_dbg(dev, "%pOF: multiplexing %d pins\n", pins, num_pins); for (i = 0; i < num_pins; i++) { struct stm32_gpio_bank *bank = NULL; @@ -178,7 +178,7 @@ static int __stm32_pinctrl_set_state(struct device_d *dev, struct device_node *p static int stm32_pinctrl_set_state(struct pinctrl_device *pdev, struct device_node *np) { struct stm32_pinctrl *pinctrl = to_stm32_pinctrl(pdev); - struct device_d *dev = pdev->dev; + struct device *dev = pdev->dev; struct device_node *pins; void *prop; int ret; @@ -268,9 +268,9 @@ static struct gpio_ops stm32_gpio_ops = { static int stm32_gpiochip_add(struct stm32_gpio_bank *bank, struct device_node *np, - struct device_d *parent) + struct device *parent) { - struct device_d *dev; + struct device *dev; struct resource *iores; enum { PINCTRL_PHANDLE, GPIOCTRL_OFFSET, PINCTRL_OFFSET, PINCOUNT, GPIO_RANGE_NCELLS }; const __be32 *gpio_ranges; @@ -285,8 +285,7 @@ static int stm32_gpiochip_add(struct stm32_gpio_bank *bank, gpio_ranges = of_get_property(np, "gpio-ranges", &size); size /= sizeof(__be32); if (!gpio_ranges || size < GPIO_RANGE_NCELLS) { - dev_err(dev, "Couldn't read 'gpio-ranges' property in %s\n", - np->full_name); + dev_err(dev, "Couldn't read 'gpio-ranges' property in %pOF\n", np); return -EINVAL; } @@ -297,14 +296,13 @@ static int stm32_gpiochip_add(struct stm32_gpio_bank *bank, bank->chip.ngpio = ngpios; if (size > GPIO_RANGE_NCELLS) { - dev_err(dev, "Unsupported disjunct 'gpio-ranges' in %s\n", - np->full_name); + dev_err(dev, "Unsupported disjunct 'gpio-ranges' in %pOF\n", np); return -EINVAL; } if (ngpios > STM32_GPIO_PINS_PER_BANK) { - dev_err(dev, "ngpios property expected to be %u at most in %s\n", - ngpios, np->full_name); + dev_err(dev, "ngpios property expected to be %u at most in %pOF\n", + ngpios, np); return -EINVAL; } @@ -339,19 +337,14 @@ static struct pinctrl_ops stm32_pinctrl_ops = { .set_state = stm32_pinctrl_set_state, }; -static int stm32_pinctrl_probe(struct device_d *dev) +static int stm32_pinctrl_probe(struct device *dev) { struct stm32_pinctrl *pinctrl; unsigned nbanks = 0; struct stm32_gpio_bank *gpio_bank; - struct device_node *np = dev->device_node, *child; + struct device_node *np = dev->of_node, *child; int ret; - if (!of_find_property(np, "pins-are-numbered", NULL)) { - dev_err(dev, "only pins-are-numbered format supported\n"); - return -EINVAL; - } - for_each_available_child_of_node(np, child) if (of_property_read_bool(child, "gpio-controller")) nbanks++; @@ -367,12 +360,6 @@ static int stm32_pinctrl_probe(struct device_d *dev) dev_dbg(dev, "proceeding without hw spinlock support: (%d)\n", ret); - ret = pinctrl_register(&pinctrl->pdev); - if (ret) { - dev_dbg(dev, "pinctrl_register failed: (%d)\n", ret); - return ret; - } - gpio_bank = pinctrl->gpio_banks; for_each_available_child_of_node(np, child) { if (!of_property_read_bool(child, "gpio-controller")) @@ -388,9 +375,7 @@ static int stm32_pinctrl_probe(struct device_d *dev) gpio_bank++; } - dev_dbg(dev, "pinctrl/gpio driver registered\n"); - - return 0; + return pinctrl_register(&pinctrl->pdev); } static __maybe_unused struct of_device_id stm32_pinctrl_dt_ids[] = { @@ -400,10 +385,12 @@ static __maybe_unused struct of_device_id stm32_pinctrl_dt_ids[] = { { .compatible = "st,stm32h743-pinctrl" }, { .compatible = "st,stm32mp157-pinctrl" }, { .compatible = "st,stm32mp157-z-pinctrl" }, + { .compatible = "st,stm32mp135-pinctrl" }, { /* sentinel */ } }; +MODULE_DEVICE_TABLE(of, stm32_pinctrl_dt_ids); -static struct driver_d stm32_pinctrl_driver = { +static struct driver stm32_pinctrl_driver = { .name = "stm32-pinctrl", .probe = stm32_pinctrl_probe, .of_compatible = DRV_OF_COMPAT(stm32_pinctrl_dt_ids), |