linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Sekhar Nori <nsekhar@ti.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] ARM: davinci: Use GPIO lookup table for DA850 LEDs
Date: Tue, 4 Jun 2019 13:51:35 +0200	[thread overview]
Message-ID: <CAMRc=Mf8G-5F978VvrO+47REdHYGfyME-mQp_f3F7wDrvbWoLg@mail.gmail.com> (raw)
In-Reply-To: <20190531224333.3335-1-linus.walleij@linaro.org>

sob., 1 cze 2019 o 00:43 Linus Walleij <linus.walleij@linaro.org> napisał(a):
>
> This switches the DA850 board to use a GPIO lookup table to
> look up the GPIO LEDs. Thanks to the offset handling when
> we define GPIOs as an offset into the chip, we can drop
> some complex code.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Sekhar, Bartosz: I had this patch sitting around in my
> tree, can any of you test it and/or apply it? The
> prerequisite patch naming the GPIO expander properly
> after .dev_name was commited a while back.
> ---
>  arch/arm/mach-davinci/board-da850-evm.c | 43 +++++++++++++------------
>  1 file changed, 22 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
> index 4ee65a8a3b80..acf3013f4ae5 100644
> --- a/arch/arm/mach-davinci/board-da850-evm.c
> +++ b/arch/arm/mach-davinci/board-da850-evm.c
> @@ -631,13 +631,12 @@ static void da850_evm_bb_keys_init(unsigned gpio)
>         }
>  }
>
> -#define DA850_N_BB_USER_LED    2
> -
>  static struct gpio_led da850_evm_bb_leds[] = {
> -       [0 ... DA850_N_BB_USER_LED - 1] = {
> -               .active_low = 1,
> -               .gpio = -1, /* assigned at runtime */
> -               .name = NULL, /* assigned at runtime */
> +       {
> +               .name = "user_led2",
> +       },
> +       {
> +               .name = "user_led1",
>         },
>  };
>
> @@ -646,6 +645,20 @@ static struct gpio_led_platform_data da850_evm_bb_leds_pdata = {
>         .num_leds = ARRAY_SIZE(da850_evm_bb_leds),
>  };
>
> +static struct gpiod_lookup_table da850_evm_bb_leds_gpio_table = {
> +       .dev_id = "leds-gpio",
> +       .table = {
> +               GPIO_LOOKUP_IDX("i2c-bb-expander",
> +                               DA850_EVM_BB_EXP_USER_LED2, NULL,
> +                               0, GPIO_ACTIVE_LOW),
> +               GPIO_LOOKUP_IDX("i2c-bb-expander",
> +                               DA850_EVM_BB_EXP_USER_LED2 + 1, NULL,
> +                               1, GPIO_ACTIVE_LOW),
> +
> +               { },
> +       },
> +};
> +
>  static struct platform_device da850_evm_bb_leds_device = {
>         .name           = "leds-gpio",
>         .id             = -1,
> @@ -654,20 +667,6 @@ static struct platform_device da850_evm_bb_leds_device = {
>         }
>  };
>
> -static void da850_evm_bb_leds_init(unsigned gpio)
> -{
> -       int i;
> -       struct gpio_led *led;
> -
> -       for (i = 0; i < DA850_N_BB_USER_LED; i++) {
> -               led = &da850_evm_bb_leds[i];
> -
> -               led->gpio = gpio + DA850_EVM_BB_EXP_USER_LED2 + i;
> -               led->name =
> -                       da850_evm_bb_exp[DA850_EVM_BB_EXP_USER_LED2 + i];
> -       }
> -}
> -
>  static int da850_evm_bb_expander_setup(struct i2c_client *client,
>                                                 unsigned gpio, unsigned ngpio,
>                                                 void *c)
> @@ -685,7 +684,7 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client,
>                 goto io_exp_setup_sw_fail;
>         }
>
> -       da850_evm_bb_leds_init(gpio);
> +       gpiod_add_lookup_table(&da850_evm_bb_leds_gpio_table);
>         ret = platform_device_register(&da850_evm_bb_leds_device);
>         if (ret) {
>                 pr_warn("Could not register baseboard GPIO expander LEDs");
> @@ -729,10 +728,12 @@ static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
>         },
>         {
>                 I2C_BOARD_INFO("tca6416", 0x20),
> +               .dev_name = "ui-expander",
>                 .platform_data = &da850_evm_ui_expander_info,
>         },
>         {
>                 I2C_BOARD_INFO("tca6416", 0x21),
> +               .dev_name = "bb-expander",
>                 .platform_data = &da850_evm_bb_expander_info,
>         },
>  };
> --
> 2.20.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Hi Linus,

this expander fails to probe on da850-evm in current mainline:

pca953x 1-0021: incomplete constraints, dummy supplies not allowed
pca953x 1-0021: reg get err: -19

I'm not sure how long it's been this way but it should be easy to fix.
Unfortunately I'm very busy this week and leaving on vacation for the
next two weeks, so this has to wait on my side.

Bart

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-06-04 11:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-31 22:43 [PATCH] ARM: davinci: Use GPIO lookup table for DA850 LEDs Linus Walleij
2019-06-04 11:51 ` Bartosz Golaszewski [this message]
2019-06-07  9:04 ` Bartosz Golaszewski
2019-06-20 11:16   ` Sekhar Nori

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='CAMRc=Mf8G-5F978VvrO+47REdHYGfyME-mQp_f3F7wDrvbWoLg@mail.gmail.com' \
    --to=brgl@bgdev.pl \
    --cc=bgolaszewski@baylibre.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=nsekhar@ti.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).