Commit 71ebd1af authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

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
...@@ -473,6 +473,8 @@ static void bcm2835_gpio_irq_disable(struct irq_data *data) ...@@ -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);
} }
......
...@@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev, ...@@ -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;
......
...@@ -787,7 +787,6 @@ static const struct pinmux_ops abx500_pinmux_ops = { ...@@ -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)
......
...@@ -823,7 +823,7 @@ static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev, ...@@ -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, ...@@ -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;
......
...@@ -1760,7 +1760,8 @@ static int pcs_irq_init_chained_handler(struct pcs_device *pcs, ...@@ -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;
......
...@@ -33,11 +33,6 @@ ...@@ -33,11 +33,6 @@
#include "../core.h" #include "../core.h"
#include "pinctrl-samsung.h" #include "pinctrl-samsung.h"
#define GROUP_SUFFIX "-grp"
#define GSUFFIX_LEN sizeof(GROUP_SUFFIX)
#define FUNCTION_SUFFIX "-mux"
#define FSUFFIX_LEN sizeof(FUNCTION_SUFFIX)
/* list of all possible config options supported */ /* list of all possible config options supported */
static struct pin_config { static struct pin_config {
const char *property; const char *property;
......
...@@ -224,7 +224,7 @@ struct sh_pfc_soc_info { ...@@ -224,7 +224,7 @@ struct sh_pfc_soc_info {
/* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */ /* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */
#define _GP_GPIO(bank, _pin, _name, sfx) \ #define _GP_GPIO(bank, _pin, _name, sfx) \
[(bank * 32) + _pin] = { \ { \
.pin = (bank * 32) + _pin, \ .pin = (bank * 32) + _pin, \
.name = __stringify(_name), \ .name = __stringify(_name), \
.enum_id = _name##_DATA, \ .enum_id = _name##_DATA, \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment