Commit 9060463b authored by Olof Johansson's avatar Olof Johansson

Merge tag 'davinci-for-v5.3/soc' of...

Merge tag 'davinci-for-v5.3/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/soc

This pull request has a patch to switch DA850 EVM GPIO LED support to use
GPIO lookup table

* tag 'davinci-for-v5.3/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  ARM: davinci: Use GPIO lookup table for DA850 LEDs
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents b8ad2985 1f8e44b6
...@@ -631,13 +631,12 @@ static void da850_evm_bb_keys_init(unsigned gpio) ...@@ -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[] = { static struct gpio_led da850_evm_bb_leds[] = {
[0 ... DA850_N_BB_USER_LED - 1] = { {
.active_low = 1, .name = "user_led2",
.gpio = -1, /* assigned at runtime */ },
.name = NULL, /* assigned at runtime */ {
.name = "user_led1",
}, },
}; };
...@@ -646,6 +645,20 @@ static struct gpio_led_platform_data da850_evm_bb_leds_pdata = { ...@@ -646,6 +645,20 @@ static struct gpio_led_platform_data da850_evm_bb_leds_pdata = {
.num_leds = ARRAY_SIZE(da850_evm_bb_leds), .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 = { static struct platform_device da850_evm_bb_leds_device = {
.name = "leds-gpio", .name = "leds-gpio",
.id = -1, .id = -1,
...@@ -654,20 +667,6 @@ static struct platform_device da850_evm_bb_leds_device = { ...@@ -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, static int da850_evm_bb_expander_setup(struct i2c_client *client,
unsigned gpio, unsigned ngpio, unsigned gpio, unsigned ngpio,
void *c) void *c)
...@@ -685,7 +684,7 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client, ...@@ -685,7 +684,7 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client,
goto io_exp_setup_sw_fail; 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); ret = platform_device_register(&da850_evm_bb_leds_device);
if (ret) { if (ret) {
pr_warn("Could not register baseboard GPIO expander LEDs"); pr_warn("Could not register baseboard GPIO expander LEDs");
...@@ -729,10 +728,12 @@ static struct i2c_board_info __initdata da850_evm_i2c_devices[] = { ...@@ -729,10 +728,12 @@ static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
}, },
{ {
I2C_BOARD_INFO("tca6416", 0x20), I2C_BOARD_INFO("tca6416", 0x20),
.dev_name = "ui-expander",
.platform_data = &da850_evm_ui_expander_info, .platform_data = &da850_evm_ui_expander_info,
}, },
{ {
I2C_BOARD_INFO("tca6416", 0x21), I2C_BOARD_INFO("tca6416", 0x21),
.dev_name = "bb-expander",
.platform_data = &da850_evm_bb_expander_info, .platform_data = &da850_evm_bb_expander_info,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment