[PATCH v2] pinctrl: mediatek: correct debounce time unit in mtk_gpio_set_debounce
Hongzhou Yang
hongzhou.yang at mediatek.com
Wed Apr 13 10:30:03 PDT 2016
On Sat, 2016-04-02 at 14:57 +0800, Yingjoe Chen wrote:
> The debounce time unit for gpio_chip.set_debounce is us but
> mtk_gpio_set_debounce regard it as ms.
> Fix this by correct debounce time array dbnc_arr so it can find correct
> debounce setting. Debounce time for first debounce setting is 500us,
> correct this as well.
>
> While I'm at it, also change the debounce time array name to
> "debounce_time" for readability.
>
> Signed-off-by: Yingjoe Chen <yingjoe.chen at mediatek.com>
Acked-by: Hongzhou Yang <hongzhou.yang at mediatek.com>
> ---
> This was based on v4.6-rc1
> Change since v1:
> - Improve commit message.
> - Change dbnc_arr name to debounce_time
> ---
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
> index 2bbe6f7..6ab8c3c 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
> @@ -1004,7 +1004,8 @@ static int mtk_gpio_set_debounce(struct gpio_chip *chip, unsigned offset,
> struct mtk_pinctrl *pctl = dev_get_drvdata(chip->parent);
> int eint_num, virq, eint_offset;
> unsigned int set_offset, bit, clr_bit, clr_offset, rst, i, unmask, dbnc;
> - static const unsigned int dbnc_arr[] = {0 , 1, 16, 32, 64, 128, 256};
> + static const unsigned int debounce_time[] = {500, 1000, 16000, 32000, 64000,
> + 128000, 256000};
> const struct mtk_desc_pin *pin;
> struct irq_data *d;
>
> @@ -1022,9 +1023,9 @@ static int mtk_gpio_set_debounce(struct gpio_chip *chip, unsigned offset,
> if (!mtk_eint_can_en_debounce(pctl, eint_num))
> return -ENOSYS;
>
> - dbnc = ARRAY_SIZE(dbnc_arr);
> - for (i = 0; i < ARRAY_SIZE(dbnc_arr); i++) {
> - if (debounce <= dbnc_arr[i]) {
> + dbnc = ARRAY_SIZE(debounce_time);
> + for (i = 0; i < ARRAY_SIZE(debounce_time); i++) {
> + if (debounce <= debounce_time[i]) {
> dbnc = i;
> break;
> }
More information about the Linux-mediatek
mailing list