siflower: add ngpios property to gpio-siflower
The same GPIO controller is found on all current Siflower SoCs, with different number of GPIOs. Add ngpios property instead of specifying it with dt match data. Link: https://github.com/openwrt/openwrt/pull/17115 Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This commit is contained in:
parent
bbde170ec6
commit
274df8eedb
@ -232,6 +232,7 @@
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <49>;
|
||||
gpio-ranges = <&pinctrl 0 0 49>;
|
||||
|
||||
interrupt-controller;
|
||||
|
@ -255,7 +255,10 @@ static int sf_gpio_probe(struct platform_device *pdev)
|
||||
u32 ngpios, ngroups;
|
||||
int ret, i;
|
||||
|
||||
ngpios = (unsigned int) device_get_match_data(dev);
|
||||
ret = of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ngroups = DIV_ROUND_UP(ngpios, GPIOS_PER_GROUP);
|
||||
priv = devm_kzalloc(dev, struct_size(priv, irq, ngroups), GFP_KERNEL);
|
||||
if (!priv)
|
||||
@ -323,7 +326,7 @@ static int sf_gpio_remove(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
static const struct of_device_id sf_gpio_ids[] = {
|
||||
{ .compatible = "siflower,sf19a2890-gpio", .data = (void *)49 },
|
||||
{ .compatible = "siflower,sf19a2890-gpio" },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, sf_gpio_ids);
|
||||
|
Loading…
x
Reference in New Issue
Block a user