From: Dmitry Torokhov <dmitry.torokhov@gmail.com> To: Bartosz Golaszewski <brgl@bgdev.pl>, Linus Walleij <linus.walleij@linaro.org> Cc: linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Alexander Stein <alexander.stein@ew.tq-group.com>, linux-kernel@vger.kernel.org, Daniel Thompson <daniel.thompson@linaro.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, linux-gpio@vger.kernel.org Subject: [PATCH v2 9/9] gpiolib: of: add a quirk for reset line polarity for Himax LCDs Date: Fri, 14 Oct 2022 10:54:33 -0700 [thread overview] Message-ID: <20221011-gpiolib-quirks-v2-9-73cb7176fd94@gmail.com> (raw) In-Reply-To: <20221011-gpiolib-quirks-v2-0-73cb7176fd94@gmail.com> Existing DTS that use legacy (non-standard) property name for the reset line "gpios-reset" also specify incorrect polarity (0 which maps to "active high"). Add a quirk to force polarity to "active low" so that once driver is converted to gpiod API that pays attention to line polarity it will work properly. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> --- drivers/gpio/gpiolib-of.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 805222a2e6bc..26d57465fec9 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -152,11 +152,47 @@ static void of_gpio_quirk_polarity(const struct device_node *np, } } +/* + * This quirk does static polarity overrides in cases where existing + * DTS specified incorrect polarity. + */ +static void of_gpio_try_fixup_polarity(const struct device_node *np, + const char *propname, + enum of_gpio_flags *flags) +{ + static const struct { + const char *compatible; + const char *propname; + bool active_high; + } gpios[] = { +#if !IS_ENABLED(CONFIG_LCD_HX8357) + /* + * Himax LCD controllers used incorrectly named + * "gpios-reset" property and also specified wrong + * polarity. + */ + { "himax,hx8357", "gpios-reset", false }, + { "himax,hx8369", "gpios-reset", false }, +#endif + }; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(gpios); i++) { + if (of_device_is_compatible(np, gpios[i].compatible) && + !strcmp(propname, gpios[i].propname)) { + of_gpio_quirk_polarity(np, gpios[i].active_high, flags); + break; + } + } +} + static void of_gpio_flags_quirks(const struct device_node *np, const char *propname, enum of_gpio_flags *flags, int index) { + of_gpio_try_fixup_polarity(np, propname, flags); + /* * Some GPIO fixed regulator quirks. * Note that active low is the default. -- b4 0.11.0-dev-5166b
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Torokhov <dmitry.torokhov@gmail.com> To: Bartosz Golaszewski <brgl@bgdev.pl>, Linus Walleij <linus.walleij@linaro.org> Cc: linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Alexander Stein <alexander.stein@ew.tq-group.com>, linux-kernel@vger.kernel.org, Daniel Thompson <daniel.thompson@linaro.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, linux-gpio@vger.kernel.org Subject: [PATCH v2 9/9] gpiolib: of: add a quirk for reset line polarity for Himax LCDs Date: Fri, 14 Oct 2022 10:54:33 -0700 [thread overview] Message-ID: <20221011-gpiolib-quirks-v2-9-73cb7176fd94@gmail.com> (raw) In-Reply-To: <20221011-gpiolib-quirks-v2-0-73cb7176fd94@gmail.com> Existing DTS that use legacy (non-standard) property name for the reset line "gpios-reset" also specify incorrect polarity (0 which maps to "active high"). Add a quirk to force polarity to "active low" so that once driver is converted to gpiod API that pays attention to line polarity it will work properly. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> --- drivers/gpio/gpiolib-of.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 805222a2e6bc..26d57465fec9 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -152,11 +152,47 @@ static void of_gpio_quirk_polarity(const struct device_node *np, } } +/* + * This quirk does static polarity overrides in cases where existing + * DTS specified incorrect polarity. + */ +static void of_gpio_try_fixup_polarity(const struct device_node *np, + const char *propname, + enum of_gpio_flags *flags) +{ + static const struct { + const char *compatible; + const char *propname; + bool active_high; + } gpios[] = { +#if !IS_ENABLED(CONFIG_LCD_HX8357) + /* + * Himax LCD controllers used incorrectly named + * "gpios-reset" property and also specified wrong + * polarity. + */ + { "himax,hx8357", "gpios-reset", false }, + { "himax,hx8369", "gpios-reset", false }, +#endif + }; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(gpios); i++) { + if (of_device_is_compatible(np, gpios[i].compatible) && + !strcmp(propname, gpios[i].propname)) { + of_gpio_quirk_polarity(np, gpios[i].active_high, flags); + break; + } + } +} + static void of_gpio_flags_quirks(const struct device_node *np, const char *propname, enum of_gpio_flags *flags, int index) { + of_gpio_try_fixup_polarity(np, propname, flags); + /* * Some GPIO fixed regulator quirks. * Note that active low is the default. -- b4 0.11.0-dev-5166b _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-10-14 17:55 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-10-14 17:54 [PATCH v2 0/9] gpiolib: more quirks to handle legacy names Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 1/9] gpiolib: of: add a quirk for legacy names in Mediatek mt2701-cs42448 Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 2/9] gpiolib: of: consolidate simple renames into a single quirk Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 3/9] gpiolib: of: tighten selection of gpio renaming quirks Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 19:34 ` Daniel Thompson 2022-10-14 19:34 ` Daniel Thompson 2022-10-14 17:54 ` [PATCH v2 4/9] gpiolib: of: add quirk for locating reset lines with legacy bindings Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 5/9] gpiolib: of: add a quirk for reset line for Marvell NFC controller Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-15 5:01 ` Dmitry Torokhov 2022-10-15 5:01 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 6/9] gpiolib: of: add a quirk for reset line for Cirrus CS42L56 codec Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 7/9] gpiolib: of: factor out code overriding gpio line polarity Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` [PATCH v2 8/9] gpiolib: of: add quirk for phy reset polarity for Freescale Ethernet Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov 2022-10-14 17:54 ` Dmitry Torokhov [this message] 2022-10-14 17:54 ` [PATCH v2 9/9] gpiolib: of: add a quirk for reset line polarity for Himax LCDs Dmitry Torokhov 2022-10-17 10:09 ` [PATCH v2 0/9] gpiolib: more quirks to handle legacy names Linus Walleij 2022-10-17 10:09 ` Linus Walleij
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221011-gpiolib-quirks-v2-9-73cb7176fd94@gmail.com \ --to=dmitry.torokhov@gmail.com \ --cc=alexander.stein@ew.tq-group.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=brgl@bgdev.pl \ --cc=daniel.thompson@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.