linux/drivers/pinctrl
Stephen Boyd 691bf5d5a7 pinctrl: qcom: Don't allow protected pins to be requested
Some qcom platforms make some GPIOs or pins unavailable for use
by non-secure operating systems, and thus reading or writing the
registers for those pins will cause access control issues and
reset the device. With a DT/ACPI property to describe the set of
pins that are available for use, parse the available pins and set
the irq valid bits for gpiolib to know what to consider 'valid'.
This should avoid any issues with gpiolib. Furthermore, implement
the pinmux_ops::request function so that pinmux can also make
sure to not use pins that are unavailable.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Tested-by: Timur Tabi <timur@codeaurora.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-03-27 15:34:25 +02:00
..
aspeed pinctrl: aspeed: Rework strap register write logic for the AST2500 2017-08-31 13:39:38 +02:00
bcm This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
berlin pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00
freescale pinctrl: imx7ulp: constify struct imx_cfg_params_decode 2018-01-11 10:29:40 +01:00
intel This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
mediatek pinctrl: mediatek: mt7622: align error handling of mtk_hw_get_value call 2018-01-11 10:43:24 +01:00
meson pinctrl: meson-axg: adjust uart_ao_b pin group naming 2018-02-12 10:47:36 +01:00
mvebu This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
nomadik pinctrl: abx500: Use seq_putc() in abx500_gpio_dbg_show() 2018-01-16 11:06:13 +01:00
pxa pinctrl: pxa: pxa2xx: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE 2017-11-30 14:42:04 +01:00
qcom pinctrl: qcom: Don't allow protected pins to be requested 2018-03-27 15:34:25 +02:00
samsung pinctrl: samsung: Add SPDX license identifiers 2018-01-03 08:46:54 +01:00
sh-pfc pinctrl: sh-pfc: r8a7795: Add SATA pins, groups, and functions 2017-12-21 10:08:23 +01:00
sirf Merge branch 'gpio-irqchip-rework' of /home/linus/linux-gpio into devel 2017-11-09 09:38:42 +01:00
spear pinctrl: spear: Delete an error message for a failed memory allocation in spear_pinctrl_probe() 2018-01-03 08:46:55 +01:00
sprd pinctrl: sprd: Use seq_putc() in sprd_pinconf_group_dbg_show() 2018-01-16 11:08:24 +01:00
stm32 This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
sunxi This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
tegra pinctrl: tegra: Delete two error messages for a failed memory allocation in tegra_pinctrl_probe() 2018-01-03 08:46:55 +01:00
ti pinctrl: ti-iodelay: remove redundant unused variable dev 2017-11-08 13:49:57 +01:00
uniphier pinctrl: uniphier: refactor drive strength get/set functions 2018-01-11 10:40:23 +01:00
vt8500 pinctrl: vt8500: Delete an error message for a failed memory allocation in five functions 2018-01-08 08:15:46 +01:00
zte pinctrl: zte: fix 'functions' allocation in zx_pinctrl_build_state() 2017-08-14 15:01:01 +02:00
core.c pinctrl: Really force states during suspend/resume 2017-12-20 08:24:13 +01:00
core.h pinctrl/gpio: Unify namespace for cross-calls 2017-09-22 11:02:10 +02:00
devicetree.c pinctrl: Delete an error message 2017-08-31 15:45:29 +02:00
devicetree.h pinctrl: core: Use delayed work for hogs 2017-01-03 09:26:16 +01:00
Kconfig pinctrl: Add Microsemi Ocelot SoC driver 2018-01-09 14:54:59 +01:00
Makefile pinctrl: Add Microsemi Ocelot SoC driver 2018-01-09 14:54:59 +01:00
pinconf-generic.c pinctrl: Add skew-delay pin config and bindings 2017-11-08 13:49:45 +01:00
pinconf.c pinctrl: check ops->pin_config_set in pinconf_set_config() 2017-08-14 15:01:59 +02:00
pinconf.h pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00
pinctrl-adi2-bf54x.c
pinctrl-adi2-bf60x.c
pinctrl-adi2.c pinctrl: adi2: Improve a size determination in two functions 2017-12-21 10:22:41 +01:00
pinctrl-adi2.h
pinctrl-amd.c This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
pinctrl-amd.h pinctrl/amd: save pin registers over suspend/resume 2017-09-12 15:58:45 +02:00
pinctrl-artpec6.c pinctrl: artpec6: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:36:59 +02:00
pinctrl-as3722.c pinctrl: as3722: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:21 +02:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: account for const type of of_device_id.data 2018-01-08 08:15:47 +01:00
pinctrl-at91.c pinctrl: at91: Delete an error message for a failed memory allocation in at91_pinctrl_mux_mask() 2018-01-03 08:46:49 +01:00
pinctrl-at91.h
pinctrl-axp209.c pinctrl: axp209: account for const type of of_device_id.data 2018-01-08 08:15:47 +01:00
pinctrl-coh901.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-coh901.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pinctrl-da850-pupd.c Merge branch 'ib-pinctrl-genprops' into devel 2017-01-26 15:27:54 +01:00
pinctrl-digicolor.c pinctrl: digicolor: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:39:36 +02:00
pinctrl-falcon.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-gemini.c This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
pinctrl-ingenic.c pinctrl: ingenic: Remove redundant dev_err call in ingenic_pinctrl_probe() 2018-01-18 08:51:32 +01:00
pinctrl-lantiq.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lantiq.h pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lpc18xx.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-max77620.c pinctrl: max77620: Use common error handling code in max77620_pinconf_set() 2017-11-08 13:49:57 +01:00
pinctrl-mcp23s08.c pinctrl: mcp23s08: fix irq setup order 2018-01-30 15:17:14 +01:00
pinctrl-ocelot.c pinctrl: Add Microsemi Ocelot SoC driver 2018-01-09 14:54:59 +01:00
pinctrl-oxnas.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-palmas.c pinctrl: palmas: Delete an error message for a failed memory allocation in palmas_pinctrl_probe() 2018-01-03 08:46:49 +01:00
pinctrl-pic32.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-pic32.h pinctrl: pinctrl-pic32: Add PIC32 pin control driver 2016-02-05 23:54:47 +01:00
pinctrl-pistachio.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-rk805.c pinctrl: Add pinctrl driver for the RK805 PMIC 2017-08-21 08:54:46 +01:00
pinctrl-rockchip.c pinctrl: rockchip: Fix a typo in four comment lines 2018-01-03 08:46:51 +01:00
pinctrl-rza1.c pinctrl: rza1: Add support for RZ/A1L 2017-10-09 09:16:21 +02:00
pinctrl-single.c This is the bulk of pin control changes for the v4.16 kernel cycle: 2018-02-02 14:22:53 -08:00
pinctrl-st.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-sx150x.c pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping 2018-01-18 11:04:47 +01:00
pinctrl-tb10x.c pinctrl: tb10x: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:41:40 +02:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: Delete an error message for a failed memory allocation in two functions 2018-01-03 08:46:52 +01:00
pinctrl-tz1090.c pinctrl: tz1090: Delete an error message for a failed memory allocation in two functions 2018-01-03 08:46:52 +01:00
pinctrl-u300.c pinctrl: u300: make u300_pmx_registers static 2016-06-13 09:27:43 +02:00
pinctrl-utils.c pinctrl: utils: Delete an error message for a failed memory allocation in pinctrl_utils_add_map_configs() 2018-01-03 08:46:53 +01:00
pinctrl-utils.h pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02:00
pinctrl-xway.c pinctrl: xway: Delete two error messages for a failed memory allocation in pinmux_xway_probe() 2018-01-03 08:46:53 +01:00
pinctrl-zynq.c pinctrl: zynq: Fix warnings in the driver 2017-08-14 15:01:01 +02:00
pinmux.c pinctrl: pinmux: Use seq_putc() in pinmux_pins_show() 2018-01-16 11:07:18 +01:00
pinmux.h pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00