Lines Matching defs:pin

149 						  unsigned int pin)
154 if (pin >= community->pin_base &&
155 pin < community->pin_base + community->npins)
159 dev_warn(pctrl->dev, "failed to find community for pin %u\n", pin);
166 unsigned int pin)
171 if (pin >= padgrp->base && pin < padgrp->base + padgrp->size)
179 unsigned int pin, unsigned int reg)
185 community = intel_get_community(pctrl, pin);
189 padno = pin_to_padno(community, pin);
198 static bool intel_pad_owned_by_host(const struct intel_pinctrl *pctrl, unsigned int pin)
205 community = intel_get_community(pctrl, pin);
211 padgrp = intel_community_get_padgroup(community, pin);
215 gpp_offset = padgroup_offset(padgrp, pin);
223 static bool intel_pad_acpi_mode(const struct intel_pinctrl *pctrl, unsigned int pin)
230 community = intel_get_community(pctrl, pin);
236 padgrp = intel_community_get_padgroup(community, pin);
240 gpp_offset = padgroup_offset(padgrp, pin);
265 static int intel_pad_locked(const struct intel_pinctrl *pctrl, unsigned int pin)
273 community = intel_get_community(pctrl, pin);
279 padgrp = intel_community_get_padgroup(community, pin);
283 gpp_offset = padgroup_offset(padgrp, pin);
303 static bool intel_pad_is_unlocked(const struct intel_pinctrl *pctrl, unsigned int pin)
305 return (intel_pad_locked(pctrl, pin) & PAD_LOCKED) == PAD_UNLOCKED;
308 static bool intel_pad_usable(const struct intel_pinctrl *pctrl, unsigned int pin)
310 return intel_pad_owned_by_host(pctrl, pin) && intel_pad_is_unlocked(pctrl, pin);
341 unsigned int pin)
349 if (!intel_pad_owned_by_host(pctrl, pin)) {
354 cfg0 = readl(intel_get_padcfg(pctrl, pin, PADCFG0));
355 cfg1 = readl(intel_get_padcfg(pctrl, pin, PADCFG1));
366 padcfg = intel_get_padcfg(pctrl, pin, PADCFG2);
370 locked = intel_pad_locked(pctrl, pin);
371 acpi = intel_pad_acpi_mode(pctrl, pin);
443 /* Now enable the mux setting for each pin in the group */
542 unsigned int pin)
547 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0);
551 if (!intel_pad_owned_by_host(pctrl, pin))
554 if (!intel_pad_is_unlocked(pctrl, pin))
558 * If pin is already configured in GPIO mode, we assume that
560 * potential glitches on the pin. Otherwise, for the pin in
573 unsigned int pin, bool input)
579 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0);
602 static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
608 padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1);
646 const struct intel_community *community = intel_get_community(pctrl, pin);
683 static int intel_config_get_high_impedance(struct intel_pinctrl *pctrl, unsigned int pin,
689 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0);
700 static int intel_config_get_debounce(struct intel_pinctrl *pctrl, unsigned int pin,
707 padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2);
723 static int intel_config_get(struct pinctrl_dev *pctldev, unsigned int pin,
731 if (!intel_pad_owned_by_host(pctrl, pin))
738 ret = intel_config_get_pull(pctrl, pin, param, &arg);
744 ret = intel_config_get_high_impedance(pctrl, pin, param, &arg);
750 ret = intel_config_get_debounce(pctrl, pin, param, &arg);
763 static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
801 const struct intel_community *community = intel_get_community(pctrl, pin);
835 padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1);
847 static void intel_gpio_set_high_impedance(struct intel_pinctrl *pctrl, unsigned int pin)
852 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0);
862 unsigned int pin, unsigned int debounce)
876 padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2);
880 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0);
904 static int intel_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
910 if (!intel_pad_usable(pctrl, pin))
918 ret = intel_config_set_pull(pctrl, pin, configs[i]);
924 intel_gpio_set_high_impedance(pctrl, pin);
928 ret = intel_config_set_debounce(pctrl, pin,
956 * intel_gpio_to_pin() - Translate from GPIO offset to pin number
963 * automatically translated to pinctrl pin number. This function can be
964 * used to find out the corresponding pinctrl pin.
966 * Return: a pin number and pointers to the community and pad group, which
967 * the pin belongs to, or negative error code if translation can't be done.
991 * intel_pin_to_gpio() - Translate from pin number to GPIO offset
993 * @pin: pin number
995 * Translate the pin number of pinctrl to GPIO offset
999 static int intel_pin_to_gpio(const struct intel_pinctrl *pctrl, int pin)
1004 community = intel_get_community(pctrl, pin);
1008 padgrp = intel_community_get_padgroup(community, pin);
1012 return pin - padgrp->base + padgrp->gpio_base;
1020 int pin;
1022 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL);
1023 if (pin < 0)
1026 reg = intel_get_padcfg(pctrl, pin, PADCFG0);
1043 int pin;
1045 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL);
1046 if (pin < 0)
1049 reg = intel_get_padcfg(pctrl, pin, PADCFG0);
1070 int pin;
1072 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL);
1073 if (pin < 0)
1076 reg = intel_get_padcfg(pctrl, pin, PADCFG0);
1127 int pin;
1129 pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), &community, &padgrp);
1130 if (pin >= 0) {
1135 gpp_offset = padgroup_offset(padgrp, pin);
1150 int pin;
1152 pin = intel_gpio_to_pin(pctrl, hwirq, &community, &padgrp);
1153 if (pin >= 0) {
1159 gpp_offset = padgroup_offset(padgrp, pin);
1200 unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL);
1204 reg = intel_get_padcfg(pctrl, pin, PADCFG0);
1209 * If the pin is in ACPI mode it is still usable as a GPIO but it
1213 if (intel_pad_acpi_mode(pctrl, pin)) {
1214 dev_warn(pctrl->dev, "pin %u cannot be used as IRQ\n", pin);
1258 unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL);
1265 dev_dbg(pctrl->dev, "%s wake for pin %u\n", str_enable_disable(on), pin);
1360 dev_err(pctrl->dev, "failed to add GPIO pin range\n");
1748 static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int pin)
1750 const struct pin_desc *pd = pin_desc_get(pctrl->pctldev, pin);
1753 if (!pd || !intel_pad_usable(pctrl, pin))
1757 * Only restore the pin if it is actually in use by the kernel (or
1763 gpiochip_line_is_irq(&pctrl->chip, intel_pin_to_gpio(pctrl, pin)))
1771 * in the firmwares that don't restore the pin settings correctly
1780 value = readl(intel_get_padcfg(pctrl, pin, PADCFG0));
1878 static void intel_restore_padcfg(struct intel_pinctrl *pctrl, unsigned int pin,
1886 padcfg = intel_get_padcfg(pctrl, pin, reg);
1893 dev_dbg(dev, "restored pin %u padcfg%u %#08x\n", pin, n, readl(padcfg));