Lines Matching full:lg

207 static struct intel_community *lp_get_community(struct intel_pinctrl *lg,  in lp_get_community()  argument
213 for (i = 0; i < lg->ncommunities; i++) { in lp_get_community()
214 comm = &lg->communities[i]; in lp_get_community()
225 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_reg() local
229 comm = lp_get_community(lg, offset); in lp_gpio_reg()
245 static bool lp_gpio_acpi_use(struct intel_pinctrl *lg, unsigned int pin) in lp_gpio_acpi_use() argument
249 acpi_use = lp_gpio_reg(&lg->chip, pin, LP_ACPI_OWNED); in lp_gpio_acpi_use()
275 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_groups_count() local
277 return lg->soc->ngroups; in lp_get_groups_count()
283 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_group_name() local
285 return lg->soc->groups[selector].name; in lp_get_group_name()
293 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_group_pins() local
295 *pins = lg->soc->groups[selector].pins; in lp_get_group_pins()
296 *num_pins = lg->soc->groups[selector].npins; in lp_get_group_pins()
304 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_dbg_show() local
305 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_pin_dbg_show()
306 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_dbg_show()
319 if (lp_gpio_acpi_use(lg, pin)) in lp_pin_dbg_show()
332 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_functions_count() local
334 return lg->soc->nfunctions; in lp_get_functions_count()
340 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_function_name() local
342 return lg->soc->functions[selector].name; in lp_get_function_name()
350 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_function_groups() local
352 *groups = lg->soc->functions[selector].groups; in lp_get_function_groups()
353 *num_groups = lg->soc->functions[selector].ngroups; in lp_get_function_groups()
361 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pinmux_set_mux() local
362 const struct intel_pingroup *grp = &lg->soc->groups[group]; in lp_pinmux_set_mux()
366 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pinmux_set_mux()
370 void __iomem *reg = lp_gpio_reg(&lg->chip, grp->pins[i], LP_CONFIG1); in lp_pinmux_set_mux()
384 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pinmux_set_mux()
403 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_request_enable() local
404 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_gpio_request_enable()
405 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_gpio_request_enable()
409 pm_runtime_get(lg->dev); in lp_gpio_request_enable()
411 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_request_enable()
420 dev_warn(lg->dev, FW_BUG "pin %u forcibly reconfigured as GPIO\n", pin); in lp_gpio_request_enable()
426 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_request_enable()
435 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_disable_free() local
436 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_gpio_disable_free()
439 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_disable_free()
444 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_disable_free()
446 pm_runtime_put(lg->dev); in lp_gpio_disable_free()
453 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_set_direction() local
454 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_gpio_set_direction()
458 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_set_direction()
471 WARN(lp_gpio_ioxapic_use(&lg->chip, pin), in lp_gpio_set_direction()
476 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_set_direction()
494 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_config_get() local
495 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_config_get()
501 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pin_config_get()
503 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pin_config_get()
536 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_config_set() local
537 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_config_set()
543 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pin_config_set()
573 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pin_config_set()
599 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_set() local
603 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_set()
610 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_set()
640 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_gpio_irq_handler() local
647 for (base = 0; base < lg->chip.ngpio; base += 32) { in lp_gpio_irq_handler()
648 reg = lp_gpio_reg(&lg->chip, base, LP_INT_STAT); in lp_gpio_irq_handler()
649 ena = lp_gpio_reg(&lg->chip, base, LP_INT_ENABLE); in lp_gpio_irq_handler()
657 irq = irq_find_mapping(lg->chip.irq.domain, base + pin); in lp_gpio_irq_handler()
667 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_ack() local
669 void __iomem *reg = lp_gpio_reg(&lg->chip, hwirq, LP_INT_STAT); in lp_irq_ack()
672 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_ack()
674 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_ack()
688 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_enable() local
690 void __iomem *reg = lp_gpio_reg(&lg->chip, hwirq, LP_INT_ENABLE); in lp_irq_enable()
693 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_enable()
695 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_enable()
701 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_disable() local
703 void __iomem *reg = lp_gpio_reg(&lg->chip, hwirq, LP_INT_ENABLE); in lp_irq_disable()
706 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_disable()
708 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_disable()
714 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_set_type() local
716 void __iomem *reg = lp_gpio_reg(&lg->chip, hwirq, LP_CONFIG1); in lp_irq_set_type()
720 if (hwirq >= lg->chip.ngpio) in lp_irq_set_type()
724 if (lp_gpio_acpi_use(lg, hwirq)) { in lp_irq_set_type()
725 dev_err(lg->dev, "pin %u can't be used as IRQ\n", hwirq); in lp_irq_set_type()
729 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_set_type()
755 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_set_type()
773 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_irq_init_hw() local
777 for (base = 0; base < lg->chip.ngpio; base += 32) { in lp_gpio_irq_init_hw()
779 reg = lp_gpio_reg(&lg->chip, base, LP_INT_ENABLE); in lp_gpio_irq_init_hw()
782 reg = lp_gpio_reg(&lg->chip, base, LP_INT_STAT); in lp_gpio_irq_init_hw()
791 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_add_pin_ranges() local
792 struct device *dev = lg->dev; in lp_gpio_add_pin_ranges()
795 ret = gpiochip_add_pin_range(chip, dev_name(dev), 0, 0, lg->soc->npins); in lp_gpio_add_pin_ranges()
805 struct intel_pinctrl *lg; in lp_gpio_probe() local
817 lg = devm_kzalloc(dev, sizeof(*lg), GFP_KERNEL); in lp_gpio_probe()
818 if (!lg) in lp_gpio_probe()
821 lg->dev = dev; in lp_gpio_probe()
822 lg->soc = soc; in lp_gpio_probe()
824 lg->ncommunities = lg->soc->ncommunities; in lp_gpio_probe()
825 lg->communities = devm_kcalloc(dev, lg->ncommunities, in lp_gpio_probe()
826 sizeof(*lg->communities), GFP_KERNEL); in lp_gpio_probe()
827 if (!lg->communities) in lp_gpio_probe()
830 lg->pctldesc = lptlp_pinctrl_desc; in lp_gpio_probe()
831 lg->pctldesc.name = dev_name(dev); in lp_gpio_probe()
832 lg->pctldesc.pins = lg->soc->pins; in lp_gpio_probe()
833 lg->pctldesc.npins = lg->soc->npins; in lp_gpio_probe()
835 lg->pctldev = devm_pinctrl_register(dev, &lg->pctldesc, lg); in lp_gpio_probe()
836 if (IS_ERR(lg->pctldev)) { in lp_gpio_probe()
838 return PTR_ERR(lg->pctldev); in lp_gpio_probe()
841 platform_set_drvdata(pdev, lg); in lp_gpio_probe()
855 for (i = 0; i < lg->soc->ncommunities; i++) { in lp_gpio_probe()
856 struct intel_community *comm = &lg->communities[i]; in lp_gpio_probe()
858 *comm = lg->soc->communities[i]; in lp_gpio_probe()
864 raw_spin_lock_init(&lg->lock); in lp_gpio_probe()
866 gc = &lg->chip; in lp_gpio_probe()
902 ret = devm_gpiochip_add_data(dev, gc, lg); in lp_gpio_probe()
931 struct intel_pinctrl *lg = dev_get_drvdata(dev); in lp_gpio_resume() local
932 struct gpio_chip *chip = &lg->chip; in lp_gpio_resume()