[PATCH v6 0/8] RTL8231 GPIO expander support

Sander Vanheule posted 8 patches 3 months, 2 weeks ago
There is a newer version of this series
.../bindings/leds/realtek,rtl8231-leds.yaml   | 167 ++++++
.../bindings/mfd/realtek,rtl8231.yaml         | 189 ++++++
MAINTAINERS                                   |  10 +
drivers/gpio/gpio-regmap.c                    |  18 +-
drivers/leds/Kconfig                          |  10 +
drivers/leds/Makefile                         |   1 +
drivers/leds/leds-rtl8231.c                   | 285 ++++++++++
drivers/mfd/Kconfig                           |   9 +
drivers/mfd/Makefile                          |   1 +
drivers/mfd/rtl8231.c                         | 193 +++++++
drivers/pinctrl/Kconfig                       |  11 +
drivers/pinctrl/Makefile                      |   1 +
drivers/pinctrl/pinctrl-rtl8231.c             | 538 ++++++++++++++++++
include/linux/mfd/rtl8231.h                   |  71 +++
14 files changed, 1500 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/leds/realtek,rtl8231-leds.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
create mode 100644 drivers/leds/leds-rtl8231.c
create mode 100644 drivers/mfd/rtl8231.c
create mode 100644 drivers/pinctrl/pinctrl-rtl8231.c
create mode 100644 include/linux/mfd/rtl8231.h
[PATCH v6 0/8] RTL8231 GPIO expander support
Posted by Sander Vanheule 3 months, 2 weeks ago
The RTL8231 GPIO and LED expander can be configured for use as an MDIO
or SMI bus device. Currently only the MDIO mode is supported, although
SMI mode support should be fairly straightforward, once an SMI bus
driver is available.

Provided features by the RTL8231:
  - Up to 37 GPIOs
    - Configurable drive strength: 8mA or 4mA (currently unsupported)
    - Input debouncing on GPIOs 31-36
  - Up to 88 LEDs in multiple scan matrix groups
    - On, off, or one of six toggling intervals
    - "single-color mode": 2×36 single color LEDs + 8 bi-color LEDs
    - "bi-color mode": (12 + 2×6) bi-color LEDs + 24 single color LEDs
  - Up to one PWM output (currently unsupported)
    - Fixed duty cycle, 8 selectable frequencies (1.2kHz - 4.8kHz)

The patches have been in use downstream by OpenWrt for some months. As
the original patches are already a few years old, I would like to request
all patches to be reviewed again (and I've dropped all provided tags and
changelogs).
---
RFC for gpio-regmap changes:
Link: https://lore.kernel.org/lkml/20251020115636.55417-1-sander@svanheule.net/

Patch series v5 (June 2021):
Link: https://lore.kernel.org/lkml/cover.1623532208.git.sander@svanheule.net/

Sander Vanheule (8):
  gpio: regmap: Force writes for aliased data regs
  gpio: regmap: Bypass cache for aliased inputs
  dt-bindings: leds: Binding for RTL8231 scan matrix
  dt-bindings: mfd: Binding for RTL8231
  mfd: Add RTL8231 core device
  pinctrl: Add RTL8231 pin control and GPIO support
  leds: Add support for RTL8231 LED scan matrix
  MAINTAINERS: Add RTL8231 MFD driver

 .../bindings/leds/realtek,rtl8231-leds.yaml   | 167 ++++++
 .../bindings/mfd/realtek,rtl8231.yaml         | 189 ++++++
 MAINTAINERS                                   |  10 +
 drivers/gpio/gpio-regmap.c                    |  18 +-
 drivers/leds/Kconfig                          |  10 +
 drivers/leds/Makefile                         |   1 +
 drivers/leds/leds-rtl8231.c                   | 285 ++++++++++
 drivers/mfd/Kconfig                           |   9 +
 drivers/mfd/Makefile                          |   1 +
 drivers/mfd/rtl8231.c                         | 193 +++++++
 drivers/pinctrl/Kconfig                       |  11 +
 drivers/pinctrl/Makefile                      |   1 +
 drivers/pinctrl/pinctrl-rtl8231.c             | 538 ++++++++++++++++++
 include/linux/mfd/rtl8231.h                   |  71 +++
 14 files changed, 1500 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/leds/realtek,rtl8231-leds.yaml
 create mode 100644 Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
 create mode 100644 drivers/leds/leds-rtl8231.c
 create mode 100644 drivers/mfd/rtl8231.c
 create mode 100644 drivers/pinctrl/pinctrl-rtl8231.c
 create mode 100644 include/linux/mfd/rtl8231.h

-- 
2.51.0

Re: [PATCH v6 0/8] RTL8231 GPIO expander support
Posted by Bartosz Golaszewski 3 months, 2 weeks ago
On Tue, Oct 21, 2025 at 4:24 PM Sander Vanheule <sander@svanheule.net> wrote:
>
> The RTL8231 GPIO and LED expander can be configured for use as an MDIO
> or SMI bus device. Currently only the MDIO mode is supported, although
> SMI mode support should be fairly straightforward, once an SMI bus
> driver is available.
>
> Provided features by the RTL8231:
>   - Up to 37 GPIOs
>     - Configurable drive strength: 8mA or 4mA (currently unsupported)
>     - Input debouncing on GPIOs 31-36
>   - Up to 88 LEDs in multiple scan matrix groups
>     - On, off, or one of six toggling intervals
>     - "single-color mode": 2×36 single color LEDs + 8 bi-color LEDs
>     - "bi-color mode": (12 + 2×6) bi-color LEDs + 24 single color LEDs
>   - Up to one PWM output (currently unsupported)
>     - Fixed duty cycle, 8 selectable frequencies (1.2kHz - 4.8kHz)
>
> The patches have been in use downstream by OpenWrt for some months. As
> the original patches are already a few years old, I would like to request
> all patches to be reviewed again (and I've dropped all provided tags and
> changelogs).
> ---
> RFC for gpio-regmap changes:
> Link: https://lore.kernel.org/lkml/20251020115636.55417-1-sander@svanheule.net/
>
> Patch series v5 (June 2021):
> Link: https://lore.kernel.org/lkml/cover.1623532208.git.sander@svanheule.net/
>
> Sander Vanheule (8):
>   gpio: regmap: Force writes for aliased data regs
>   gpio: regmap: Bypass cache for aliased inputs

If I'm not mistaken, nothing depends on these two at build-time, so I
can just take them through the GPIO tree for v6.19?

Bart

>   dt-bindings: leds: Binding for RTL8231 scan matrix
>   dt-bindings: mfd: Binding for RTL8231
>   mfd: Add RTL8231 core device
>   pinctrl: Add RTL8231 pin control and GPIO support
>   leds: Add support for RTL8231 LED scan matrix
>   MAINTAINERS: Add RTL8231 MFD driver
>
>  .../bindings/leds/realtek,rtl8231-leds.yaml   | 167 ++++++
>  .../bindings/mfd/realtek,rtl8231.yaml         | 189 ++++++
>  MAINTAINERS                                   |  10 +
>  drivers/gpio/gpio-regmap.c                    |  18 +-
>  drivers/leds/Kconfig                          |  10 +
>  drivers/leds/Makefile                         |   1 +
>  drivers/leds/leds-rtl8231.c                   | 285 ++++++++++
>  drivers/mfd/Kconfig                           |   9 +
>  drivers/mfd/Makefile                          |   1 +
>  drivers/mfd/rtl8231.c                         | 193 +++++++
>  drivers/pinctrl/Kconfig                       |  11 +
>  drivers/pinctrl/Makefile                      |   1 +
>  drivers/pinctrl/pinctrl-rtl8231.c             | 538 ++++++++++++++++++
>  include/linux/mfd/rtl8231.h                   |  71 +++
>  14 files changed, 1500 insertions(+), 4 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/leds/realtek,rtl8231-leds.yaml
>  create mode 100644 Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
>  create mode 100644 drivers/leds/leds-rtl8231.c
>  create mode 100644 drivers/mfd/rtl8231.c
>  create mode 100644 drivers/pinctrl/pinctrl-rtl8231.c
>  create mode 100644 include/linux/mfd/rtl8231.h
>
> --
> 2.51.0
>
Re: [PATCH v6 0/8] RTL8231 GPIO expander support
Posted by Sander Vanheule 3 months, 2 weeks ago
Hi,

On Thu, 2025-10-23 at 11:05 +0200, Bartosz Golaszewski wrote:
> On Tue, Oct 21, 2025 at 4:24 PM Sander Vanheule <sander@svanheule.net> wrote:
> > 
> > The RTL8231 GPIO and LED expander can be configured for use as an MDIO
> > or SMI bus device. Currently only the MDIO mode is supported, although
> > SMI mode support should be fairly straightforward, once an SMI bus
> > driver is available.
> > 
> > Provided features by the RTL8231:
> >   - Up to 37 GPIOs
> >     - Configurable drive strength: 8mA or 4mA (currently unsupported)
> >     - Input debouncing on GPIOs 31-36
> >   - Up to 88 LEDs in multiple scan matrix groups
> >     - On, off, or one of six toggling intervals
> >     - "single-color mode": 2×36 single color LEDs + 8 bi-color LEDs
> >     - "bi-color mode": (12 + 2×6) bi-color LEDs + 24 single color LEDs
> >   - Up to one PWM output (currently unsupported)
> >     - Fixed duty cycle, 8 selectable frequencies (1.2kHz - 4.8kHz)
> > 
> > The patches have been in use downstream by OpenWrt for some months. As
> > the original patches are already a few years old, I would like to request
> > all patches to be reviewed again (and I've dropped all provided tags and
> > changelogs).
> > ---
> > RFC for gpio-regmap changes:
> > Link:
> > https://lore.kernel.org/lkml/20251020115636.55417-1-sander@svanheule.net/
> > 
> > Patch series v5 (June 2021):
> > Link:
> > https://lore.kernel.org/lkml/cover.1623532208.git.sander@svanheule.net/
> > 
> > Sander Vanheule (8):
> >   gpio: regmap: Force writes for aliased data regs
> >   gpio: regmap: Bypass cache for aliased inputs
> 
> If I'm not mistaken, nothing depends on these two at build-time, so I
> can just take them through the GPIO tree for v6.19?

That's okay for me.

Best,
Sander
Re: (subset) [PATCH v6 0/8] RTL8231 GPIO expander support
Posted by Bartosz Golaszewski 3 months, 2 weeks ago
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>


On Tue, 21 Oct 2025 16:23:55 +0200, Sander Vanheule wrote:
> The RTL8231 GPIO and LED expander can be configured for use as an MDIO
> or SMI bus device. Currently only the MDIO mode is supported, although
> SMI mode support should be fairly straightforward, once an SMI bus
> driver is available.
> 
> Provided features by the RTL8231:
>   - Up to 37 GPIOs
>     - Configurable drive strength: 8mA or 4mA (currently unsupported)
>     - Input debouncing on GPIOs 31-36
>   - Up to 88 LEDs in multiple scan matrix groups
>     - On, off, or one of six toggling intervals
>     - "single-color mode": 2×36 single color LEDs + 8 bi-color LEDs
>     - "bi-color mode": (12 + 2×6) bi-color LEDs + 24 single color LEDs
>   - Up to one PWM output (currently unsupported)
>     - Fixed duty cycle, 8 selectable frequencies (1.2kHz - 4.8kHz)
> 
> [...]

Applied, thanks!

[1/8] gpio: regmap: Force writes for aliased data regs
      https://git.kernel.org/brgl/linux/c/ed2bd02d24947e36c9438bee1449d9bf87671b16
[2/8] gpio: regmap: Bypass cache for aliased inputs
      https://git.kernel.org/brgl/linux/c/3233741c0be59dd224e797deb2dd1621695ac95c

Best regards,
-- 
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>