Lines Matching refs:lg
209 static struct intel_community *lp_get_community(struct intel_pinctrl *lg, in lp_get_community() argument
215 for (i = 0; i < lg->ncommunities; i++) { in lp_get_community()
216 comm = &lg->communities[i]; in lp_get_community()
227 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_reg() local
231 comm = lp_get_community(lg, offset); in lp_gpio_reg()
247 static bool lp_gpio_acpi_use(struct intel_pinctrl *lg, unsigned int pin) in lp_gpio_acpi_use() argument
251 acpi_use = lp_gpio_reg(&lg->chip, pin, LP_ACPI_OWNED); in lp_gpio_acpi_use()
277 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_groups_count() local
279 return lg->soc->ngroups; in lp_get_groups_count()
285 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_group_name() local
287 return lg->soc->groups[selector].grp.name; in lp_get_group_name()
295 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_group_pins() local
297 *pins = lg->soc->groups[selector].grp.pins; in lp_get_group_pins()
298 *num_pins = lg->soc->groups[selector].grp.npins; in lp_get_group_pins()
306 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_dbg_show() local
307 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_pin_dbg_show()
308 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_dbg_show()
321 if (lp_gpio_acpi_use(lg, pin)) in lp_pin_dbg_show()
334 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_functions_count() local
336 return lg->soc->nfunctions; in lp_get_functions_count()
342 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_function_name() local
344 return lg->soc->functions[selector].func.name; in lp_get_function_name()
352 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_get_function_groups() local
354 *groups = lg->soc->functions[selector].func.groups; in lp_get_function_groups()
355 *ngroups = lg->soc->functions[selector].func.ngroups; in lp_get_function_groups()
363 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pinmux_set_mux() local
364 const struct intel_pingroup *grp = &lg->soc->groups[group]; in lp_pinmux_set_mux()
368 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pinmux_set_mux()
372 void __iomem *reg = lp_gpio_reg(&lg->chip, grp->grp.pins[i], LP_CONFIG1); in lp_pinmux_set_mux()
386 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pinmux_set_mux()
405 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_request_enable() local
406 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_gpio_request_enable()
407 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_gpio_request_enable()
411 pm_runtime_get(lg->dev); in lp_gpio_request_enable()
413 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_request_enable()
422 dev_warn(lg->dev, FW_BUG "pin %u forcibly reconfigured as GPIO\n", pin); in lp_gpio_request_enable()
428 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_request_enable()
437 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_disable_free() local
438 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_gpio_disable_free()
441 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_disable_free()
446 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_disable_free()
448 pm_runtime_put(lg->dev); in lp_gpio_disable_free()
455 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_gpio_set_direction() local
456 void __iomem *reg = lp_gpio_reg(&lg->chip, pin, LP_CONFIG1); in lp_gpio_set_direction()
460 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_set_direction()
473 WARN(lp_gpio_ioxapic_use(&lg->chip, pin), in lp_gpio_set_direction()
478 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_set_direction()
496 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_config_get() local
497 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_config_get()
503 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pin_config_get()
505 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pin_config_get()
539 struct intel_pinctrl *lg = pinctrl_dev_get_drvdata(pctldev); in lp_pin_config_set() local
540 void __iomem *conf2 = lp_gpio_reg(&lg->chip, pin, LP_CONFIG2); in lp_pin_config_set()
546 raw_spin_lock_irqsave(&lg->lock, flags); in lp_pin_config_set()
577 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_pin_config_set()
603 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_set() local
607 raw_spin_lock_irqsave(&lg->lock, flags); in lp_gpio_set()
614 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_gpio_set()
644 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_gpio_irq_handler() local
651 for (base = 0; base < lg->chip.ngpio; base += 32) { in lp_gpio_irq_handler()
652 reg = lp_gpio_reg(&lg->chip, base, LP_INT_STAT); in lp_gpio_irq_handler()
653 ena = lp_gpio_reg(&lg->chip, base, LP_INT_ENABLE); in lp_gpio_irq_handler()
659 generic_handle_domain_irq(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()
695 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_enable()
697 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_enable()
703 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_disable() local
705 void __iomem *reg = lp_gpio_reg(&lg->chip, hwirq, LP_INT_ENABLE); in lp_irq_disable()
708 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_disable()
710 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_disable()
718 struct intel_pinctrl *lg = gpiochip_get_data(gc); in lp_irq_set_type() local
724 reg = lp_gpio_reg(&lg->chip, hwirq, LP_CONFIG1); in lp_irq_set_type()
729 if (lp_gpio_acpi_use(lg, hwirq)) { in lp_irq_set_type()
730 dev_err(lg->dev, "pin %lu can't be used as IRQ\n", hwirq); in lp_irq_set_type()
734 raw_spin_lock_irqsave(&lg->lock, flags); in lp_irq_set_type()
760 raw_spin_unlock_irqrestore(&lg->lock, flags); in lp_irq_set_type()
779 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_irq_init_hw() local
783 for (base = 0; base < lg->chip.ngpio; base += 32) { in lp_gpio_irq_init_hw()
785 reg = lp_gpio_reg(&lg->chip, base, LP_INT_ENABLE); in lp_gpio_irq_init_hw()
788 reg = lp_gpio_reg(&lg->chip, base, LP_INT_STAT); in lp_gpio_irq_init_hw()
797 struct intel_pinctrl *lg = gpiochip_get_data(chip); in lp_gpio_add_pin_ranges() local
798 struct device *dev = lg->dev; in lp_gpio_add_pin_ranges()
801 ret = gpiochip_add_pin_range(chip, dev_name(dev), 0, 0, lg->soc->npins); in lp_gpio_add_pin_ranges()
811 struct intel_pinctrl *lg; in lp_gpio_probe() local
823 lg = devm_kzalloc(dev, sizeof(*lg), GFP_KERNEL); in lp_gpio_probe()
824 if (!lg) in lp_gpio_probe()
827 lg->dev = dev; in lp_gpio_probe()
828 lg->soc = soc; in lp_gpio_probe()
830 lg->ncommunities = lg->soc->ncommunities; in lp_gpio_probe()
831 lg->communities = devm_kcalloc(dev, lg->ncommunities, in lp_gpio_probe()
832 sizeof(*lg->communities), GFP_KERNEL); in lp_gpio_probe()
833 if (!lg->communities) in lp_gpio_probe()
836 lg->pctldesc = lptlp_pinctrl_desc; in lp_gpio_probe()
837 lg->pctldesc.name = dev_name(dev); in lp_gpio_probe()
838 lg->pctldesc.pins = lg->soc->pins; in lp_gpio_probe()
839 lg->pctldesc.npins = lg->soc->npins; in lp_gpio_probe()
841 lg->pctldev = devm_pinctrl_register(dev, &lg->pctldesc, lg); in lp_gpio_probe()
842 if (IS_ERR(lg->pctldev)) { in lp_gpio_probe()
844 return PTR_ERR(lg->pctldev); in lp_gpio_probe()
847 platform_set_drvdata(pdev, lg); in lp_gpio_probe()
861 for (i = 0; i < lg->soc->ncommunities; i++) { in lp_gpio_probe()
862 struct intel_community *comm = &lg->communities[i]; in lp_gpio_probe()
864 *comm = lg->soc->communities[i]; in lp_gpio_probe()
870 raw_spin_lock_init(&lg->lock); in lp_gpio_probe()
872 gc = &lg->chip; in lp_gpio_probe()
909 ret = devm_gpiochip_add_data(dev, gc, lg); in lp_gpio_probe()
938 struct intel_pinctrl *lg = dev_get_drvdata(dev); in lp_gpio_resume() local
939 struct gpio_chip *chip = &lg->chip; in lp_gpio_resume()