File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ;
8187err :
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+
8698static 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
You can’t perform that action at this time.
0 commit comments