• Home
  • Raw
  • Download

Lines Matching refs:pctrl

256 	struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);  in lpi_gpio_get_groups_count()  local
258 return pctrl->data->ngroups; in lpi_gpio_get_groups_count()
264 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_get_group_name() local
266 return pctrl->data->groups[group].name; in lpi_gpio_get_group_name()
274 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_get_group_pins() local
276 *pins = pctrl->data->groups[group].pins; in lpi_gpio_get_group_pins()
277 *num_pins = pctrl->data->groups[group].npins; in lpi_gpio_get_group_pins()
292 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_get_functions_count() local
294 return pctrl->data->nfunctions; in lpi_gpio_get_functions_count()
300 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_get_function_name() local
302 return pctrl->data->functions[function].name; in lpi_gpio_get_function_name()
310 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_get_function_groups() local
312 *groups = pctrl->data->functions[function].groups; in lpi_gpio_get_function_groups()
313 *num_qgroups = pctrl->data->functions[function].ngroups; in lpi_gpio_get_function_groups()
321 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in lpi_gpio_set_mux() local
322 const struct lpi_pingroup *g = &pctrl->data->groups[group_num]; in lpi_gpio_set_mux()
334 mutex_lock(&pctrl->lock); in lpi_gpio_set_mux()
335 val = lpi_gpio_read(pctrl, pin, LPI_GPIO_CFG_REG); in lpi_gpio_set_mux()
337 lpi_gpio_write(pctrl, pin, LPI_GPIO_CFG_REG, val); in lpi_gpio_set_mux()
338 mutex_unlock(&pctrl->lock); in lpi_gpio_set_mux()
397 struct lpi_pinctrl *pctrl = dev_get_drvdata(pctldev->dev); in lpi_config_set() local
405 g = &pctrl->data->groups[group]; in lpi_config_set()
444 mutex_lock(&pctrl->lock); in lpi_config_set()
446 sval = ioread32(pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); in lpi_config_set()
449 iowrite32(sval, pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); in lpi_config_set()
451 mutex_unlock(&pctrl->lock); in lpi_config_set()
464 lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val); in lpi_config_set()
467 mutex_lock(&pctrl->lock); in lpi_config_set()
468 val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG); in lpi_config_set()
475 lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val); in lpi_config_set()
476 mutex_unlock(&pctrl->lock); in lpi_config_set()
598 struct lpi_pinctrl *pctrl; in lpi_pinctrl_probe() local
601 pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); in lpi_pinctrl_probe()
602 if (!pctrl) in lpi_pinctrl_probe()
605 platform_set_drvdata(pdev, pctrl); in lpi_pinctrl_probe()
611 pctrl->data = data; in lpi_pinctrl_probe()
612 pctrl->dev = &pdev->dev; in lpi_pinctrl_probe()
614 pctrl->clks[0].id = "core"; in lpi_pinctrl_probe()
615 pctrl->clks[1].id = "audio"; in lpi_pinctrl_probe()
617 pctrl->tlmm_base = devm_platform_ioremap_resource(pdev, 0); in lpi_pinctrl_probe()
618 if (IS_ERR(pctrl->tlmm_base)) in lpi_pinctrl_probe()
619 return dev_err_probe(dev, PTR_ERR(pctrl->tlmm_base), in lpi_pinctrl_probe()
622 pctrl->slew_base = devm_platform_ioremap_resource(pdev, 1); in lpi_pinctrl_probe()
623 if (IS_ERR(pctrl->slew_base)) in lpi_pinctrl_probe()
624 return dev_err_probe(dev, PTR_ERR(pctrl->slew_base), in lpi_pinctrl_probe()
627 ret = devm_clk_bulk_get(dev, MAX_LPI_NUM_CLKS, pctrl->clks); in lpi_pinctrl_probe()
631 ret = clk_bulk_prepare_enable(MAX_LPI_NUM_CLKS, pctrl->clks); in lpi_pinctrl_probe()
635 pctrl->desc.pctlops = &lpi_gpio_pinctrl_ops; in lpi_pinctrl_probe()
636 pctrl->desc.pmxops = &lpi_gpio_pinmux_ops; in lpi_pinctrl_probe()
637 pctrl->desc.confops = &lpi_gpio_pinconf_ops; in lpi_pinctrl_probe()
638 pctrl->desc.owner = THIS_MODULE; in lpi_pinctrl_probe()
639 pctrl->desc.name = dev_name(dev); in lpi_pinctrl_probe()
640 pctrl->desc.pins = data->pins; in lpi_pinctrl_probe()
641 pctrl->desc.npins = data->npins; in lpi_pinctrl_probe()
642 pctrl->chip = lpi_gpio_template; in lpi_pinctrl_probe()
643 pctrl->chip.parent = dev; in lpi_pinctrl_probe()
644 pctrl->chip.base = -1; in lpi_pinctrl_probe()
645 pctrl->chip.ngpio = data->npins; in lpi_pinctrl_probe()
646 pctrl->chip.label = dev_name(dev); in lpi_pinctrl_probe()
647 pctrl->chip.of_gpio_n_cells = 2; in lpi_pinctrl_probe()
648 pctrl->chip.can_sleep = false; in lpi_pinctrl_probe()
650 mutex_init(&pctrl->lock); in lpi_pinctrl_probe()
652 pctrl->ctrl = devm_pinctrl_register(dev, &pctrl->desc, pctrl); in lpi_pinctrl_probe()
653 if (IS_ERR(pctrl->ctrl)) { in lpi_pinctrl_probe()
654 ret = PTR_ERR(pctrl->ctrl); in lpi_pinctrl_probe()
659 ret = devm_gpiochip_add_data(dev, &pctrl->chip, pctrl); in lpi_pinctrl_probe()
661 dev_err(pctrl->dev, "can't add gpio chip\n"); in lpi_pinctrl_probe()
668 mutex_destroy(&pctrl->lock); in lpi_pinctrl_probe()
669 clk_bulk_disable_unprepare(MAX_LPI_NUM_CLKS, pctrl->clks); in lpi_pinctrl_probe()
676 struct lpi_pinctrl *pctrl = platform_get_drvdata(pdev); in lpi_pinctrl_remove() local
678 mutex_destroy(&pctrl->lock); in lpi_pinctrl_remove()
679 clk_bulk_disable_unprepare(MAX_LPI_NUM_CLKS, pctrl->clks); in lpi_pinctrl_remove()