mirror of https://gitee.com/openkylin/linux.git
gpio-mcp23s08: i2c: auto-select base if no DT match or platform data
The call to gpiochip_add made by this driver is capable of auto-selecting a base if one is not provided. However, it was not called unless there was already a DT entry or platform data. This patch calls it even if the base is not already known so that gpiochip_add can attempt to find a usable base. Signed-off-by: Daniel M. Weeks <dan@danweeks.net> Acked-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
8b628c659c
commit
8a56406582
|
@ -520,14 +520,13 @@ static int mcp230xx_probe(struct i2c_client *client,
|
|||
|
||||
match = of_match_device(of_match_ptr(mcp23s08_i2c_of_match),
|
||||
&client->dev);
|
||||
if (match) {
|
||||
pdata = client->dev.platform_data;
|
||||
if (match || !pdata) {
|
||||
base = -1;
|
||||
pullups = 0;
|
||||
} else {
|
||||
pdata = client->dev.platform_data;
|
||||
if (!pdata || !gpio_is_valid(pdata->base)) {
|
||||
dev_dbg(&client->dev,
|
||||
"invalid or missing platform data\n");
|
||||
if (!gpio_is_valid(pdata->base)) {
|
||||
dev_dbg(&client->dev, "invalid platform data\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
base = pdata->base;
|
||||
|
|
Loading…
Reference in New Issue