linux-hardened/drivers/pinctrl
Neil Armstrong 9e80f9064e pinctrl: Add SX150X GPIO Extender Pinctrl Driver
Since the I2C sx150x GPIO expander driver uses platform_data to manage
the pins configurations, rewrite the driver as a pinctrl driver using
pinconf to get/set pin configurations from DT or debugfs.

The pinctrl driver is functionnally equivalent as the gpio-only driver
and can use DT for pinconf. The platform_data confirmation is dropped.

This patchset removed the gpio-only driver and selects the Pinctrl driver
config instead. This patchset also migrates the gpio dt-bindings to pinctrl
and add the pinctrl optional properties.

The driver was tested with a SX1509 device on a BeagleBone black with
interrupt support and on an X86_64 machine over an I2C to USB converter.

This is a fixed version that builds and runs on non-OF platforms and on
arm based OF. The GPIO version is removed and the bindings are also moved
to the pinctrl bindings.

Changes since v2
 - rebased on v4.9-rc1
 - removed MODULE_DEVICE_TABLE as in upstream bb411e771b
   ("gpio: sx150x: fix implicit assumption module.h is present")

Changes since v1
 - Fix Kconfig descriptions on pinctrl and gpio
 - Fix Kconfig dependency
 - Remove oscio support for non-789 devices
 - correct typo in dt bindings
 - remove probe reset for non-789 devices

Changes since RFC
 - Put #ifdef CONFIG_OF/CONFIG_OF_GPIO to remove OF code for non-of platforms
 - No more rely on OF_GPIO config
 - Moved and enhanced bindings to pinctrl bindings
 - Removed gpio-sx150x.c
 - Temporary select PINCTRL_SX150X when GPIO_SX150X
 - Temporary mark GPIO_SX150X as deprecated

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Peter Rosin <peda@axentia.se>
Acked-by: Rob Herring <robh@kernel.org>
ested-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-10-24 16:30:40 +02:00
..
aspeed pinctrl: aspeed-g5: Fix pin association of SPI1 function 2016-10-18 14:36:12 +02:00
bcm pinctrl: bcm281xx: constify pinctrl_ops and pinmux_ops structures 2016-09-07 22:41:30 +02:00
berlin pinctrl: berlin: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:02:13 +02:00
freescale pinctrl: imx: accept gpio request/free from pinctrl 2016-09-12 14:25:52 +02:00
intel pinctrl: intel: Only restore pins that are used by the driver 2016-10-18 14:38:16 +02:00
mediatek pinctrl: mediatek: constify gpio_chip structures 2016-09-13 10:39:33 +02:00
meson Linux 4.8-rc6 2016-09-23 14:57:16 +02:00
mvebu pinctrl: mvebu: orion5x: Generalise mv88f5181l support for 88f5181 2016-09-21 11:49:18 +02:00
nomadik pinctrl: nomadik: don't default-flag IRQs as falling 2016-09-19 11:01:33 +02:00
pxa pinctrl: pxa: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:03:04 +02:00
qcom pinctrl: qcom: fix masking of pinmux functions 2016-10-04 00:36:20 +02:00
samsung Merge branch 'fixes' into devel 2016-09-23 17:41:40 +02:00
sh-pfc pinctrl: sh-pfc: r8a7794: Implement voltage switching for SDHI 2016-09-14 09:26:54 +02:00
sirf pinctrl: sirf: make core support explicitly non-modular 2016-08-27 13:16:12 +02:00
spear pinctrl: spear: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:03:18 +02:00
stm32 pinctrl: stm32: add IRQ_DOMAIN_HIERARCHY dependency 2016-09-15 14:13:10 +02:00
sunxi This is the bulk of GPIO changes for the v4.9 series: 2016-10-05 11:49:09 -07:00
tegra This is the bulk of pin control changes for the v4.8 kernel cycle. 2016-07-28 17:06:51 -07:00
uniphier pinctrl: uniphier: add Ethernet pin-mux settings 2016-07-11 09:53:25 +02:00
vt8500 pinctrl: vt8500: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:20 +02:00
core.c pinctrl: copy per-pin driver private data to struct pin_desc 2016-05-31 10:27:19 +02:00
core.h pinctrl: copy per-pin driver private data to struct pin_desc 2016-05-31 10:27:19 +02:00
devicetree.c pinctrl: OF: Don't create a pinctrl handle if no pinctrl entries exist 2016-06-18 10:40:15 +02:00
devicetree.h
Kconfig pinctrl: Add SX150X GPIO Extender Pinctrl Driver 2016-10-24 16:30:40 +02:00
Makefile pinctrl: Add SX150X GPIO Extender Pinctrl Driver 2016-10-24 16:30:40 +02:00
pinconf-generic.c Merge branch 'devel-dt-free-map' into devel 2016-06-23 11:19:14 +02:00
pinconf.c pinctrl: pinconf: separate config parameters with commas for debugfs 2016-05-31 10:29:06 +02:00
pinconf.h
pinctrl-adi2-bf54x.c
pinctrl-adi2-bf60x.c added tabs instead of spaces 2015-07-16 09:39:01 +02:00
pinctrl-adi2.c pinctrl: adi2: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:20 +02:00
pinctrl-adi2.h
pinctrl-amd.c Linux 4.8-rc6 2016-09-23 14:57:16 +02:00
pinctrl-amd.h Fix inconsistent spinlock of AMD GPIO driver which can be 2015-04-07 11:36:49 +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: make it explicitly non-modular 2016-06-13 08:40:14 +02:00
pinctrl-at91.c pinctrl/at91: Don't provide a default trigger type 2016-09-12 14:17:02 +02:00
pinctrl-at91.h
pinctrl-coh901.c pinctrl: coh901: fix initconst annotation 2016-02-15 20:40:52 +01:00
pinctrl-coh901.h
pinctrl-digicolor.c Revert "pinctrl: digicolor: add missing platform_set_drvdata() call" 2016-06-23 09:50:05 +02:00
pinctrl-falcon.c
pinctrl-lantiq.c pinctrl: lantiq: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:23 +02:00
pinctrl-lantiq.h pinctrl/lantiq: introduce new dedicated devicetree bindings 2015-11-30 13:12:07 +01:00
pinctrl-lpc18xx.c pinctrl: lpc18xx: make it explicitly non-modular 2016-06-13 08:28:18 +02:00
pinctrl-max77620.c pinctrl: max77620: Remove unused structure definition 2016-06-15 08:37:40 +02:00
pinctrl-oxnas.c pinctrl: oxnas: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-05-31 12:59:29 +02:00
pinctrl-palmas.c pinctrl: palmas: fix a possible NULL dereference 2016-08-22 14:11:00 +02:00
pinctrl-pic32.c pinctrl: pic32: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:24 +02:00
pinctrl-pic32.h pinctrl: pinctrl-pic32: Add PIC32 pin control driver 2016-02-05 23:54:47 +01:00
pinctrl-pistachio.c pinctrl: pistachio: fix mfio pll_lock pinmux 2016-08-22 15:28:35 +02:00
pinctrl-rockchip.c pinctrl: rockchip: make it explicitly non-modular 2016-08-27 13:14:21 +02:00
pinctrl-single.c pinctrl: single: Fix missing flush of posted write for a wakeirq 2016-06-22 17:58:07 +02:00
pinctrl-st.c pinctrl: st: Remove STiH415/6 SoC pinctrl driver support. 2016-09-15 15:55:25 +02:00
pinctrl-sx150x.c pinctrl: Add SX150X GPIO Extender Pinctrl Driver 2016-10-24 16:30:40 +02:00
pinctrl-tb10x.c pinctrl: tb10x: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:25 +02:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:26 +02:00
pinctrl-tz1090.c pinctrl: tz1090 Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:26 +02:00
pinctrl-u300.c pinctrl: u300: make u300_pmx_registers static 2016-06-13 09:27:43 +02:00
pinctrl-utils.c pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02: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 This is the bulk of pin control changes for the v4.8 kernel cycle. 2016-07-28 17:06:51 -07:00
pinctrl-zynq.c pinctrl: zynq: fix typo in sdio1_3_grp pin list 2016-09-06 00:49:00 +02:00
pinmux.c pinctrl: return -ENOMEM instead of -EINVAL for kasprintf() failure 2016-05-31 10:33:00 +02:00
pinmux.h