Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71ebd1af authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pin control fixes from Linus Walleij:
 "Here are some overly ripe pin control fixes for the v4.2 series.

  They got delayed because of various crap commits and having to clean
  and rinse the patch stack a few times.  Now they are however looking
  good.

   - some dead defines dropped from the Samsung driver, was targeted for
     -rc2 but got delayed
   - drop the strict mode from abx500, this was too strict
   - fix the R-Car sparse IRQs code to work as intended
   - fix the IRQ code for the pinctrl-single GPIO backend to not enforce
     threaded IRQs
   - clear the latched events/IRQs for the Broadcom BCM2835 driver
   - fix up debugfs for the Freescale imx1 driver
   - fix a typo bug in the Schmitt Trigger setup in the LPC18xx driver"

* tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: lpc18xx: fix schmitt trigger setup
  Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
  pinctrl: bcm2835: Clear the event latch register when disabling interrupts
  pinctrl: single: ensure pcs irq will not be forced threaded
  sh-pfc: fix sparse GPIOs for R-Car SoCs
  pinctrl: abx500: remove strict mode
  pinctrl: samsung: Remove old unused defines
parents 8426fb30 681ccdcc
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -473,6 +473,8 @@ static void bcm2835_gpio_irq_disable(struct irq_data *data)


	spin_lock_irqsave(&pc->irq_lock[bank], flags);
	spin_lock_irqsave(&pc->irq_lock[bank], flags);
	bcm2835_gpio_irq_config(pc, gpio, false);
	bcm2835_gpio_irq_config(pc, gpio, false);
	/* Clear events that were latched prior to clearing event sources */
	bcm2835_gpio_set_bit(pc, GPEDS0, gpio);
	clear_bit(offset, &pc->enabled_irq_map[bank]);
	clear_bit(offset, &pc->enabled_irq_map[bank]);
	spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
	spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
}
}
+1 −2
Original line number Original line Diff line number Diff line
@@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
			     unsigned num_configs)
			     unsigned num_configs)
{
{
	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
	const struct imx1_pinctrl_soc_info *info = ipctl->info;
	int i;
	int i;


	for (i = 0; i != num_configs; ++i) {
	for (i = 0; i != num_configs; ++i) {
		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);


		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
			info->pins[pin_id].name);
			pin_desc_get(pctldev, pin_id)->name);
	}
	}


	return 0;
	return 0;
+0 −1
Original line number Original line Diff line number Diff line
@@ -787,7 +787,6 @@ static const struct pinmux_ops abx500_pinmux_ops = {
	.set_mux = abx500_pmx_set,
	.set_mux = abx500_pmx_set,
	.gpio_request_enable = abx500_gpio_request_enable,
	.gpio_request_enable = abx500_gpio_request_enable,
	.gpio_disable_free = abx500_gpio_disable_free,
	.gpio_disable_free = abx500_gpio_disable_free,
	.strict = true,
};
};


static int abx500_get_groups_cnt(struct pinctrl_dev *pctldev)
static int abx500_get_groups_cnt(struct pinctrl_dev *pctldev)
+2 −2
Original line number Original line Diff line number Diff line
@@ -823,7 +823,7 @@ static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev,
		break;
		break;


	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
		if (param)
		if (param_val)
			*reg &= ~(LPC18XX_SCU_I2C0_ZIF << shift);
			*reg &= ~(LPC18XX_SCU_I2C0_ZIF << shift);
		else
		else
			*reg |= (LPC18XX_SCU_I2C0_ZIF << shift);
			*reg |= (LPC18XX_SCU_I2C0_ZIF << shift);
@@ -876,7 +876,7 @@ static int lpc18xx_pconf_set_pin(struct pinctrl_dev *pctldev,
		break;
		break;


	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
		if (param)
		if (param_val)
			*reg &= ~LPC18XX_SCU_PIN_ZIF;
			*reg &= ~LPC18XX_SCU_PIN_ZIF;
		else
		else
			*reg |= LPC18XX_SCU_PIN_ZIF;
			*reg |= LPC18XX_SCU_PIN_ZIF;
+2 −1
Original line number Original line Diff line number Diff line
@@ -1760,7 +1760,8 @@ static int pcs_irq_init_chained_handler(struct pcs_device *pcs,
		int res;
		int res;


		res = request_irq(pcs_soc->irq, pcs_irq_handler,
		res = request_irq(pcs_soc->irq, pcs_irq_handler,
				  IRQF_SHARED | IRQF_NO_SUSPEND,
				  IRQF_SHARED | IRQF_NO_SUSPEND |
				  IRQF_NO_THREAD,
				  name, pcs_soc);
				  name, pcs_soc);
		if (res) {
		if (res) {
			pcs_soc->irq = -1;
			pcs_soc->irq = -1;
Loading