Skip to content

Commit 9bc167e

Browse files
kelvincheungBartosz Golaszewski
authored andcommitted
gpio: loongson1: Add DT support
This patch adds DT support for Loongson-1 GPIO driver. Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
1 parent 722cfe4 commit 9bc167e

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

drivers/gpio/gpio-loongson1.c

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,38 @@ static int ls1x_gpio_probe(struct platform_device *pdev)
6868
ls1x_gc->gc.owner = THIS_MODULE;
6969
ls1x_gc->gc.request = ls1x_gpio_request;
7070
ls1x_gc->gc.free = ls1x_gpio_free;
71-
ls1x_gc->gc.base = pdev->id * 32;
71+
/*
72+
* Clear ngpio to let gpiolib get the correct number
73+
* by reading ngpios property
74+
*/
75+
ls1x_gc->gc.ngpio = 0;
7276

7377
ret = devm_gpiochip_add_data(dev, &ls1x_gc->gc, ls1x_gc);
7478
if (ret)
7579
goto err;
7680

7781
platform_set_drvdata(pdev, ls1x_gc);
78-
dev_info(dev, "Loongson1 GPIO driver registered\n");
82+
83+
dev_info(dev, "GPIO controller registered with %d pins\n",
84+
ls1x_gc->gc.ngpio);
7985

8086
return 0;
8187
err:
82-
dev_err(dev, "failed to register GPIO device\n");
88+
dev_err(dev, "failed to register GPIO controller\n");
8389
return ret;
8490
}
8591

92+
static const struct of_device_id ls1x_gpio_dt_ids[] = {
93+
{ .compatible = "loongson,ls1x-gpio" },
94+
{ /* sentinel */ }
95+
};
96+
MODULE_DEVICE_TABLE(of, ls1x_gpio_dt_ids);
97+
8698
static struct platform_driver ls1x_gpio_driver = {
8799
.probe = ls1x_gpio_probe,
88100
.driver = {
89101
.name = "ls1x-gpio",
102+
.of_match_table = ls1x_gpio_dt_ids,
90103
},
91104
};
92105

0 commit comments

Comments
 (0)