OpenCloudOS-Kernel/drivers/pinctrl/bcm
Phil Elwell 266423e60e pinctrl: bcm2835: Change init order for gpio hogs
...and gpio-ranges

pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
side is registered first, but this breaks gpio hogs (which are
configured during gpiochip_add_data). Part of the hog initialisation
is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
yet been registered this results in an -EPROBE_DEFER from which it can
never recover.

Change the initialisation sequence to register the pinctrl driver
first.

This also solves a similar problem with the gpio-ranges property, which
is required in order for released pins to be returned to inputs.

Fixes: 73345a18d4 ("pinctrl: bcm2835: Pass irqchip when adding gpiochip")
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20211206092237.4105895-2-phil@raspberrypi.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-12-10 00:23:29 +01:00
..
Kconfig pinctrl: bcm2835: Allow building driver as a module 2021-10-25 00:54:21 +02:00
Makefile pinctrl: add a pincontrol driver for BCM6318 2021-03-29 12:20:09 +02:00
pinctrl-bcm63xx.c pinctrl: bcm: add bcm63xx base code 2021-03-29 12:20:07 +02:00
pinctrl-bcm63xx.h pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm281xx.c pinctrl: bcm: pinctrl-bcm281xx: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-16 15:12:38 +02:00
pinctrl-bcm2835.c pinctrl: bcm2835: Change init order for gpio hogs 2021-12-10 00:23:29 +01:00
pinctrl-bcm6318.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm6328.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm6358.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm6362.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm6368.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-bcm63268.c pinctrl: bcm: Constify static pinmux_ops 2021-06-09 11:18:33 +02:00
pinctrl-cygnus-mux.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-iproc-gpio.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-ns.c Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode" 2021-10-14 01:09:07 +02:00
pinctrl-ns2-mux.c pinctrl: bcm: Simplify bool comparison 2021-01-18 16:30:08 +01:00
pinctrl-nsp-gpio.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-nsp-mux.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00