Lines Matching refs:pct
124 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_get_bit() local
130 ret = abx500_get_register_interruptible(pct->dev, in abx500_gpio_get_bit()
136 dev_err(pct->dev, in abx500_gpio_get_bit()
146 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_set_bits() local
151 ret = abx500_mask_and_set_register_interruptible(pct->dev, in abx500_gpio_set_bits()
154 dev_err(pct->dev, "%s write reg, %x offset %x failed (%d)\n", in abx500_gpio_set_bits()
167 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_get() local
186 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_gpio_get()
195 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_set() local
200 dev_err(pct->dev, "%s write failed (%d)\n", __func__, ret); in abx500_gpio_set()
203 static int abx500_get_pull_updown(struct abx500_pinctrl *pct, int offset, in abx500_get_pull_updown() argument
211 if (!pct->soc->pullud) { in abx500_get_pull_updown()
212 dev_err(pct->dev, "%s AB chip doesn't support pull up/down feature", in abx500_get_pull_updown()
218 pullud = pct->soc->pullud; in abx500_get_pull_updown()
226 ret = abx500_get_register_interruptible(pct->dev, in abx500_get_pull_updown()
234 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_get_pull_updown()
239 static int abx500_set_pull_updown(struct abx500_pinctrl *pct, in abx500_set_pull_updown() argument
246 if (!pct->soc->pullud) { in abx500_set_pull_updown()
247 dev_err(pct->dev, "%s AB chip doesn't support pull up/down feature", in abx500_set_pull_updown()
253 pullud = pct->soc->pullud; in abx500_set_pull_updown()
262 ret = abx500_mask_and_set_register_interruptible(pct->dev, in abx500_set_pull_updown()
268 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_set_pull_updown()
275 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_pullud_supported() local
276 struct pullud *pullud = pct->soc->pullud; in abx500_pullud_supported()
287 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_direction_output() local
310 ret = abx500_set_pull_updown(pct, in abx500_gpio_direction_output()
316 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_gpio_direction_output()
335 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_to_irq() local
341 for (i = 0; i < pct->irq_cluster_size; i++) { in abx500_gpio_to_irq()
343 &pct->irq_cluster[i]; in abx500_gpio_to_irq()
353 return irq_create_mapping(pct->parent->domain, hwirq); in abx500_gpio_to_irq()
363 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_set_mode() local
364 struct alternate_functions af = pct->soc->alternate_functions[gpio]; in abx500_set_mode()
380 dev_dbg(pct->dev, "pin %d doesn't support %s mode\n", gpio, in abx500_set_mode()
469 dev_dbg(pct->dev, "unknown alt_setting %d\n", alt_setting); in abx500_set_mode()
475 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_set_mode()
487 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_get_mode() local
488 struct alternate_functions af = pct->soc->alternate_functions[gpio]; in abx500_get_mode()
511 dev_err(pct->dev, in abx500_get_mode()
518 dev_err(pct->dev, in abx500_get_mode()
561 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_get_mode()
574 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_gpio_dbg_show_one() local
608 ret = abx500_get_pull_updown(pct, offset, &pud); in abx500_gpio_dbg_show_one()
630 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_gpio_dbg_show_one()
637 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); in abx500_gpio_dbg_show() local
638 struct pinctrl_dev *pctldev = pct->pctldev; in abx500_gpio_dbg_show()
686 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pmx_get_funcs_cnt() local
688 return pct->soc->nfunctions; in abx500_pmx_get_funcs_cnt()
694 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pmx_get_func_name() local
696 return pct->soc->functions[function].name; in abx500_pmx_get_func_name()
704 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pmx_get_func_groups() local
706 *groups = pct->soc->functions[function].groups; in abx500_pmx_get_func_groups()
707 *num_groups = pct->soc->functions[function].ngroups; in abx500_pmx_get_func_groups()
715 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pmx_set() local
716 struct gpio_chip *chip = &pct->chip; in abx500_pmx_set()
721 g = &pct->soc->groups[group]; in abx500_pmx_set()
725 dev_dbg(pct->dev, "enable group %s, %u pins\n", g->name, g->npins); in abx500_pmx_set()
728 dev_dbg(pct->dev, "setting pin %d to altsetting %d\n", in abx500_pmx_set()
735 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_pmx_set()
744 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_gpio_request_enable() local
754 for (i = 0; i < pct->soc->gpio_num_ranges; i++) { in abx500_gpio_request_enable()
755 p = &pct->soc->gpio_ranges[i]; in abx500_gpio_request_enable()
761 if (i == pct->soc->gpio_num_ranges) { in abx500_gpio_request_enable()
762 dev_err(pct->dev, "%s failed to locate range\n", __func__); in abx500_gpio_request_enable()
766 dev_dbg(pct->dev, "enable GPIO by altfunc %d at gpio %d\n", in abx500_gpio_request_enable()
769 ret = abx500_set_mode(pct->pctldev, &pct->chip, in abx500_gpio_request_enable()
772 dev_err(pct->dev, "%s setting altfunc failed\n", __func__); in abx500_gpio_request_enable()
794 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_get_groups_cnt() local
796 return pct->soc->ngroups; in abx500_get_groups_cnt()
802 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_get_group_name() local
804 return pct->soc->groups[selector].name; in abx500_get_group_name()
812 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_get_group_pins() local
814 *pins = pct->soc->groups[selector].pins; in abx500_get_group_pins()
815 *num_pins = pct->soc->groups[selector].npins; in abx500_get_group_pins()
823 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pin_dbg_show() local
824 struct gpio_chip *chip = &pct->chip; in abx500_pin_dbg_show()
991 struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev); in abx500_pin_config_set() local
992 struct gpio_chip *chip = &pct->chip; in abx500_pin_config_set()
1027 ret = abx500_set_pull_updown(pct, in abx500_pin_config_set()
1052 ret = abx500_set_pull_updown(pct, in abx500_pin_config_set()
1082 ret = abx500_set_pull_updown(pct, in abx500_pin_config_set()
1099 dev_err(pct->dev, "%s failed (%d)\n", __func__, ret); in abx500_pin_config_set()
1168 struct abx500_pinctrl *pct; in abx500_gpio_probe() local
1178 pct = devm_kzalloc(&pdev->dev, sizeof(struct abx500_pinctrl), in abx500_gpio_probe()
1180 if (pct == NULL) { in abx500_gpio_probe()
1186 pct->dev = &pdev->dev; in abx500_gpio_probe()
1187 pct->parent = dev_get_drvdata(pdev->dev.parent); in abx500_gpio_probe()
1188 pct->chip = abx500gpio_chip; in abx500_gpio_probe()
1189 pct->chip.dev = &pdev->dev; in abx500_gpio_probe()
1190 pct->chip.base = -1; /* Dynamic allocation */ in abx500_gpio_probe()
1202 abx500_pinctrl_ab8500_init(&pct->soc); in abx500_gpio_probe()
1205 abx500_pinctrl_ab8540_init(&pct->soc); in abx500_gpio_probe()
1208 abx500_pinctrl_ab9540_init(&pct->soc); in abx500_gpio_probe()
1211 abx500_pinctrl_ab8505_init(&pct->soc); in abx500_gpio_probe()
1218 if (!pct->soc) { in abx500_gpio_probe()
1223 pct->chip.ngpio = abx500_get_gpio_num(pct->soc); in abx500_gpio_probe()
1224 pct->irq_cluster = pct->soc->gpio_irq_cluster; in abx500_gpio_probe()
1225 pct->irq_cluster_size = pct->soc->ngpio_irq_cluster; in abx500_gpio_probe()
1227 ret = gpiochip_add(&pct->chip); in abx500_gpio_probe()
1234 abx500_pinctrl_desc.pins = pct->soc->pins; in abx500_gpio_probe()
1235 abx500_pinctrl_desc.npins = pct->soc->npins; in abx500_gpio_probe()
1236 pct->pctldev = pinctrl_register(&abx500_pinctrl_desc, &pdev->dev, pct); in abx500_gpio_probe()
1237 if (!pct->pctldev) { in abx500_gpio_probe()
1246 for (i = 0; i < pct->soc->gpio_num_ranges; i++) { in abx500_gpio_probe()
1247 const struct abx500_pinrange *p = &pct->soc->gpio_ranges[i]; in abx500_gpio_probe()
1249 ret = gpiochip_add_pin_range(&pct->chip, in abx500_gpio_probe()
1256 platform_set_drvdata(pdev, pct); in abx500_gpio_probe()
1262 gpiochip_remove(&pct->chip); in abx500_gpio_probe()
1272 struct abx500_pinctrl *pct = platform_get_drvdata(pdev); in abx500_gpio_remove() local
1274 gpiochip_remove(&pct->chip); in abx500_gpio_remove()