[PATCH v5 0/9] Introduce STMFX I2C Multi-Function eXpander

From: Amelie Delaunay
Date: Tue Apr 09 2019 - 03:24:37 EST


This series adds support for STMicroelectronics Multi-Function eXpander
(STMFX), used on some STM32 discovery and evaluation boards.

STMFX is an STM32L152 slave controller whose firmware embeds the following
features:
- I/O expander (16 GPIOs + 8 extra if the other features are not enabled),
- resistive touchscreen controller,
- IDD measurement.

I2C stuff and chip initialization is based on an MFD parent driver, which
registers STMFX features MFD children.

---
Changes in v5:
- mfd: fix Lee's comments (reorder struct declaration, drop mfd cells
platform data initialization, typos)
- pinctrl: get stmfx struct through dev_get_drvdata(pdev->dev.parent)
instead of dev_get_platdata(&pdev->dev);
Changes in v4:
- mfd: move registers #define into the header
- mfd: merge stmfx and stmfx_ddata structures into one stmfx structure
- mfd: change stmfx_chip_init/exit and stmfx_irq_init/exit args: use
i2c_client struct and i2c_get_clientdata
- mfd: fix typos
- mfd: add MFD cells for IDD and TS features
- pinctrl: rework registers #define
- dts: add STMFX support on stm32mp157c-ev1
Changes in v3:
- fix MFD interrupt bindings
- fix drivers/mfd/stmfx.c:103:8: warning: 'mask' may be used uninitialized
in this function
Changes in v2:
- move to MFD parent driver for i2c stuff and chip initialization
- improve regmap configuration
- take advantage of the use of gpio-ranges

Amelie Delaunay (9):
dt-bindings: mfd: Add ST Multi-Function eXpander (STMFX) core bindings
mfd: Add ST Multi-Function eXpander (STMFX) core driver
dt-bindings: pinctrl: document the STMFX pinctrl bindings
pinctrl: Add STMFX GPIO expander Pinctrl/GPIO driver
ARM: dts: stm32: add STMFX support on stm32746g-eval
ARM: dts: stm32: add joystick support on stm32746g-eval
ARM: dts: stm32: add orange and blue leds on stm32746g-eval
ARM: dts: stm32: add STMFX support on stm32mp157c-ev1
ARM: dts: stm32: add joystick support on stm32mp157c-ev1

Documentation/devicetree/bindings/mfd/stmfx.txt | 28 +
.../devicetree/bindings/pinctrl/pinctrl-stmfx.txt | 116 +++
arch/arm/boot/dts/stm32746g-eval.dts | 66 ++
arch/arm/boot/dts/stm32mp157c-ev1.dts | 60 ++
drivers/mfd/Kconfig | 13 +
drivers/mfd/Makefile | 2 +-
drivers/mfd/stmfx.c | 566 ++++++++++++++
drivers/pinctrl/Kconfig | 12 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-stmfx.c | 820 +++++++++++++++++++++
include/linux/mfd/stmfx.h | 123 ++++
11 files changed, 1806 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/mfd/stmfx.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-stmfx.txt
create mode 100644 drivers/mfd/stmfx.c
create mode 100644 drivers/pinctrl/pinctrl-stmfx.c
create mode 100644 include/linux/mfd/stmfx.h

--
2.7.4