[PATCH 0/8] pinctrl: meson: clean pin offsets
From: jbrunet@baylibre.com (Jerome Brunet)
Date: 2017-09-21 15:00:16
Also in:
linux-amlogic, linux-devicetree, linux-gpio, lkml
On Thu, 2017-09-21 at 14:21 +0200, Linus Walleij wrote:
On Wed, Sep 20, 2017 at 3:39 PM, Jerome Brunet [off-list ref] wrote:quoted
The initial goal of this series was move to TEST_N pin from the EE controller to AO controller, where it belongs. This meant modify the EE_OFF value. This offset is a quirk we brought from the vendor driver when it was initially merged. There no reason to keep this around and we could simply let pinctrl figure the pin base value. Removing this offset, while simple, ends up being quite a patch bomb. This is why I split the change over 5 first patches, so the important change, patch #1 remains visible. Of course, to avoid breaking bisect, these first 5 patches should be squashed into one. (If you prefer that I squash it myself, I may have to send you a PR as the patch would exceed VGER 100000 characters limit) The last change is this series, while not directly related, also requires to adjust the gpio-line-names property in DT. Having these changes going together would make it easier to coordinate the DTS changes. This was changeset has been test on gxbb P200, gxl libretech-cc. It was also boot tested on meson8 (Thx Martin!) Jerome Brunet (8): pinctrl: meson: remove offset from pinctrl pinctrl: meson: remove offset continued - gxbb pinctrl: meson: remove offset continued - gxl pinctrl: meson: remove offset continued - meson8 pinctrl: meson: remove offset continued - meson8b pinctrl: meson: get rid of pin_base pinctrl: meson-gx: TEST_N belongs to the AO controller pinctrl: meson-gxbb: add missing GPIOX_22 pinLooks good just waiting for review from Carlo && || Kevin.
Thanks Linus, After doing this rework, I noticed that this driver (not the only one though) assume gpio offset (param of gpio calls) and pin offset are the same thing ... instead of relying pinctrl (and gpio-ranges) to do the translation. To make things a bit more clean, I was thinking about forwarding all gpios framework calls to pinconf, so the gpio to pin offset would go through the proper mapping function. Is this the way to do it ? Using gpio_pinctrl_set_config() I should be able to achieve almost any "write" functions but I got stuck on gpio_get() ATM the moment there is no gpio_pinctrl_get_config() or something similar to read stuff in the gpio framework from pinconf. Would you be open to add something like this ?
Yours, Linus Walleij