Lines Matching full:pctrl

1862 static int npcm7xx_gpio_of(struct npcm7xx_pinctrl *pctrl)  in npcm7xx_gpio_of()  argument
1870 for_each_available_child_of_node(pctrl->dev->of_node, np) in npcm7xx_gpio_of()
1874 dev_err(pctrl->dev, in npcm7xx_gpio_of()
1879 pctrl->gpio_bank[id].base = in npcm7xx_gpio_of()
1884 dev_err(pctrl->dev, in npcm7xx_gpio_of()
1890 ret = bgpio_init(&pctrl->gpio_bank[id].gc, in npcm7xx_gpio_of()
1891 pctrl->dev, 4, in npcm7xx_gpio_of()
1892 pctrl->gpio_bank[id].base + in npcm7xx_gpio_of()
1894 pctrl->gpio_bank[id].base + in npcm7xx_gpio_of()
1898 pctrl->gpio_bank[id].base + in npcm7xx_gpio_of()
1902 dev_err(pctrl->dev, "bgpio_init() failed\n"); in npcm7xx_gpio_of()
1910 dev_err(pctrl->dev, in npcm7xx_gpio_of()
1916 pctrl->gpio_bank[id].irq = irq; in npcm7xx_gpio_of()
1917 pctrl->gpio_bank[id].irq_chip = npcmgpio_irqchip; in npcm7xx_gpio_of()
1918 pctrl->gpio_bank[id].gc.parent = pctrl->dev; in npcm7xx_gpio_of()
1919 pctrl->gpio_bank[id].irqbase = in npcm7xx_gpio_of()
1921 pctrl->gpio_bank[id].pinctrl_id = pinspec.args[0]; in npcm7xx_gpio_of()
1922 pctrl->gpio_bank[id].gc.base = pinspec.args[1]; in npcm7xx_gpio_of()
1923 pctrl->gpio_bank[id].gc.ngpio = pinspec.args[2]; in npcm7xx_gpio_of()
1924 pctrl->gpio_bank[id].gc.owner = THIS_MODULE; in npcm7xx_gpio_of()
1925 pctrl->gpio_bank[id].gc.label = in npcm7xx_gpio_of()
1926 devm_kasprintf(pctrl->dev, GFP_KERNEL, "%pOF", in npcm7xx_gpio_of()
1928 if (pctrl->gpio_bank[id].gc.label == NULL) in npcm7xx_gpio_of()
1931 pctrl->gpio_bank[id].gc.dbg_show = npcmgpio_dbg_show; in npcm7xx_gpio_of()
1932 pctrl->gpio_bank[id].direction_input = in npcm7xx_gpio_of()
1933 pctrl->gpio_bank[id].gc.direction_input; in npcm7xx_gpio_of()
1934 pctrl->gpio_bank[id].gc.direction_input = in npcm7xx_gpio_of()
1936 pctrl->gpio_bank[id].direction_output = in npcm7xx_gpio_of()
1937 pctrl->gpio_bank[id].gc.direction_output; in npcm7xx_gpio_of()
1938 pctrl->gpio_bank[id].gc.direction_output = in npcm7xx_gpio_of()
1940 pctrl->gpio_bank[id].request = in npcm7xx_gpio_of()
1941 pctrl->gpio_bank[id].gc.request; in npcm7xx_gpio_of()
1942 pctrl->gpio_bank[id].gc.request = npcmgpio_gpio_request; in npcm7xx_gpio_of()
1943 pctrl->gpio_bank[id].gc.free = npcmgpio_gpio_free; in npcm7xx_gpio_of()
1944 pctrl->gpio_bank[id].gc.of_node = np; in npcm7xx_gpio_of()
1948 pctrl->bank_num = id; in npcm7xx_gpio_of()
1952 static int npcm7xx_gpio_register(struct npcm7xx_pinctrl *pctrl) in npcm7xx_gpio_register() argument
1956 for (id = 0 ; id < pctrl->bank_num ; id++) { in npcm7xx_gpio_register()
1959 girq = &pctrl->gpio_bank[id].gc.irq; in npcm7xx_gpio_register()
1960 girq->chip = &pctrl->gpio_bank[id].irq_chip; in npcm7xx_gpio_register()
1963 girq->parents = devm_kcalloc(pctrl->dev, 1, in npcm7xx_gpio_register()
1970 girq->parents[0] = pctrl->gpio_bank[id].irq; in npcm7xx_gpio_register()
1973 ret = devm_gpiochip_add_data(pctrl->dev, in npcm7xx_gpio_register()
1974 &pctrl->gpio_bank[id].gc, in npcm7xx_gpio_register()
1975 &pctrl->gpio_bank[id]); in npcm7xx_gpio_register()
1977 dev_err(pctrl->dev, "Failed to add GPIO chip %u\n", id); in npcm7xx_gpio_register()
1981 ret = gpiochip_add_pin_range(&pctrl->gpio_bank[id].gc, in npcm7xx_gpio_register()
1982 dev_name(pctrl->dev), in npcm7xx_gpio_register()
1983 pctrl->gpio_bank[id].pinctrl_id, in npcm7xx_gpio_register()
1984 pctrl->gpio_bank[id].gc.base, in npcm7xx_gpio_register()
1985 pctrl->gpio_bank[id].gc.ngpio); in npcm7xx_gpio_register()
1987 dev_err(pctrl->dev, "Failed to add GPIO bank %u\n", id); in npcm7xx_gpio_register()
1988 gpiochip_remove(&pctrl->gpio_bank[id].gc); in npcm7xx_gpio_register()
1997 gpiochip_remove(&pctrl->gpio_bank[id - 1].gc); in npcm7xx_gpio_register()
2004 struct npcm7xx_pinctrl *pctrl; in npcm7xx_pinctrl_probe() local
2007 pctrl = devm_kzalloc(&pdev->dev, sizeof(*pctrl), GFP_KERNEL); in npcm7xx_pinctrl_probe()
2008 if (!pctrl) in npcm7xx_pinctrl_probe()
2011 pctrl->dev = &pdev->dev; in npcm7xx_pinctrl_probe()
2012 dev_set_drvdata(&pdev->dev, pctrl); in npcm7xx_pinctrl_probe()
2014 pctrl->gcr_regmap = in npcm7xx_pinctrl_probe()
2016 if (IS_ERR(pctrl->gcr_regmap)) { in npcm7xx_pinctrl_probe()
2017 dev_err(pctrl->dev, "didn't find nuvoton,npcm750-gcr\n"); in npcm7xx_pinctrl_probe()
2018 return PTR_ERR(pctrl->gcr_regmap); in npcm7xx_pinctrl_probe()
2021 ret = npcm7xx_gpio_of(pctrl); in npcm7xx_pinctrl_probe()
2023 dev_err(pctrl->dev, "Failed to gpio dt-binding %u\n", ret); in npcm7xx_pinctrl_probe()
2027 pctrl->pctldev = devm_pinctrl_register(&pdev->dev, in npcm7xx_pinctrl_probe()
2028 &npcm7xx_pinctrl_desc, pctrl); in npcm7xx_pinctrl_probe()
2029 if (IS_ERR(pctrl->pctldev)) { in npcm7xx_pinctrl_probe()
2031 return PTR_ERR(pctrl->pctldev); in npcm7xx_pinctrl_probe()
2034 ret = npcm7xx_gpio_register(pctrl); in npcm7xx_pinctrl_probe()
2036 dev_err(pctrl->dev, "Failed to register gpio %u\n", ret); in npcm7xx_pinctrl_probe()