linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] ARM: Add GPIO support
@ 2023-05-31 15:19 nick.hawkins
  2023-05-31 15:19 ` [PATCH v2 1/5] dt-bindings: gpio: Add HPE GXP GPIO nick.hawkins
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: nick.hawkins @ 2023-05-31 15:19 UTC (permalink / raw)
  To: verdun, nick.hawkins, linus.walleij, brgl, robh+dt,
	krzysztof.kozlowski+dt, jdelvare, linux, andy.shevchenko,
	linux-gpio, devicetree, linux-kernel, linux-hwmon

From: Nick Hawkins <nick.hawkins@hpe.com>

Note: The previous version of this patchset was titled "Add GPIO and PSU
support". Based on feedback and in an effort to reduce size PSU has been
removed. Link:
https://lore.kernel.org/all/20230418152824.110823-1-nick.hawkins@hpe.com/

The GXP SoC supports GPIO on multiple interfaces. The interfaces are
CPLD and Host. The GPIOs is a combination of both physical and virtual
I/O across the interfaces. The gpio-gxp driver specifically covers the
CSM(physical), FN2(virtual), and VUHC(virtual) which are the host. The
gpio-gxp-pl driver covers the CPLD which takes physical I/O from the
board and shares it with GXP via a propriety interface that maps the I/O
onto a specific register area of the GXP. The drivers both support
interrupts but from different interrupt parents.

There is a need for both the host OpenBMC and the gxp-fan-ctrl driver to
access the same GPIO information from the CPLD. The OpenBMC stack is
reacting to changes in GPIOs and taking action. This requires it to hold
the GPIO which creates a problem where both the host and linux cannot
have the same GPIO. Thus an attempt to remedy this was to add a shared
variable between the GPIO driver and the fan control driver to provide
fan presence and failure information. This is why hwmon has been included
in this patchset.

---

Changes since v1:
 *Removed ARM device tree changes and defconfig changes to reduce
  patchset size
 *Removed GXP PSU changes to reduce patchset size
 *Corrected hpe,gxp-gpio YAML file based on feedback
 *Created new gpio-gxp-pl file to reduce complexity
 *Separated code into two files to keep size down: gpio-gxp.c and
  gpio-gxp-pl.c
 *Fixed Kconfig indentation as well as add new entry for gpio-gxp-pl
 *Removed use of linux/of.h and linux/of_device.h
 *Added mod_devicetable.h and property.h
 *Fixed indentation of defines and uses consistent number of digits
 *Corrected defines with improper GPIO_ namespace.
 *For masks now use BIT()
 *Added comment for PLREG offsets
 *Move gpio_chip to be first in structure
 *Calculate offset for high and low byte GPIO reads instead of having
  H(High) and L(Low) letters added to the variables.
 *Removed repeditive use of "? 1 : 0"
 *Switched to handle_bad_irq()
 *Removed improper bailout on gpiochip_add_data
 *Used GENMASK to arm interrupts
 *Removed use of of_match_device
 *fixed sizeof in devm_kzalloc
 *Added COMPILE_TEST to Kconfig
 *Added dev_err_probe where applicable
 *Removed unecessary parent and compatible checks

Nick Hawkins (5):
  dt-bindings: gpio: Add HPE GXP GPIO
  gpio: gxp: Add HPE GXP GPIO
  dt-bindings: hwmon: hpe,gxp-fanctrl: remove fn2 and pl regs
  hwmon: (gxp_fan_ctrl) Provide fan info via gpio
  MAINTAINERS: hpe: Add GPIO

 .../bindings/gpio/hpe,gxp-gpio.yaml           | 190 ++++++
 .../bindings/hwmon/hpe,gxp-fan-ctrl.yaml      |  16 +-
 MAINTAINERS                                   |   2 +
 drivers/gpio/Kconfig                          |  18 +
 drivers/gpio/Makefile                         |   2 +
 drivers/gpio/gpio-gxp-pl.c                    | 536 +++++++++++++++
 drivers/gpio/gpio-gxp.c                       | 637 ++++++++++++++++++
 drivers/hwmon/Kconfig                         |   2 +-
 drivers/hwmon/gxp-fan-ctrl.c                  |  61 +-
 drivers/hwmon/gxp-gpio.h                      |  13 +
 10 files changed, 1409 insertions(+), 68 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/gpio/hpe,gxp-gpio.yaml
 create mode 100644 drivers/gpio/gpio-gxp-pl.c
 create mode 100644 drivers/gpio/gpio-gxp.c
 create mode 100644 drivers/hwmon/gxp-gpio.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-06-06  6:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-31 15:19 [PATCH v2 0/5] ARM: Add GPIO support nick.hawkins
2023-05-31 15:19 ` [PATCH v2 1/5] dt-bindings: gpio: Add HPE GXP GPIO nick.hawkins
2023-06-01  6:52   ` Krzysztof Kozlowski
2023-05-31 15:19 ` [PATCH v2 2/5] gpio: gxp: " nick.hawkins
2023-06-01  8:11   ` Bartosz Golaszewski
2023-06-01 11:39   ` Linus Walleij
2023-05-31 15:19 ` [PATCH v2 3/5] dt-bindings: hwmon: hpe,gxp-fanctrl: remove fn2 and pl regs nick.hawkins
2023-06-01  6:53   ` Krzysztof Kozlowski
2023-06-05 16:52     ` Hawkins, Nick
2023-06-06  6:22       ` Krzysztof Kozlowski
2023-05-31 15:19 ` [PATCH v2 4/5] hwmon: (gxp_fan_ctrl) Provide fan info via gpio nick.hawkins
2023-05-31 16:42   ` Guenter Roeck
     [not found]     ` <DM4PR84MB19274F575858CBCB2FA5C23E88489@DM4PR84MB1927.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]       ` <b1d8f851-4e87-333c-229c-b9dc37ea3c40@roeck-us.net>
2023-06-01 15:47         ` Hawkins, Nick
2023-06-01 17:11           ` Linus Walleij
2023-06-01 17:45             ` Guenter Roeck
2023-06-02 15:02               ` Hawkins, Nick
2023-05-31 15:19 ` [PATCH v2 5/5] MAINTAINERS: hpe: Add GPIO nick.hawkins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).