Pin control fixes for the v4.2 series:
- 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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJVrpAVAAoJEEEQszewGV1zeq8P/1hIdJfHYpVb5whr4Cxq2JFh RHKFCBGI75JDj+K7dBjJkflBxnb158rFA7QxEumEFp2VnWFUzlFJeirGDM9KArXO Wxsp+Lm9oO8U7T1dUXhsEZJTmVNXSiNcYbuaYOkxtuVn4YlVSS/XB3T8dcXPzKRG 3BHuKnOA5qpcvM9FaA1O1UiPwR/wc/SrtX38+c1Wt0dXJO+Tgj9PtiiK6iUQHskZ rbsxXZEBTP2mcmBBXNtMXbAh9qnL88uG44zSEv1nTDr/jHVYftIVnTdQ07ICT3S9 mCKEloeZuvHPIkttZ9Ddlj5Jf5PbaqvJllSHhE9FPGEjkOgAtfNdf0zN+Zbqhj0F aZAHtknYRsOXFDKAHJckUvXlumFrOSd/8vDIeaVwC807Lz190syBdgUbKVBtzZYf r7+HC1y3XIyLk2M2ZiQLwaYJPr5DJqxNgxMm7Wg/E0mmwScPhvMhrYKNJQvSu2f2 hE/l0XigFxaY7JYAj49ltjaCOKXy02IMGTcT7MAYS9mSWeI8XFI+xPN2ZjiUkQLS 4nLG4oC9FfCndcAEYf4f/86L9F1k+5ysH+DsEbkB6aCjz1D3Lijb+IzoRJTH9CE9 jRyQbhtaC3kPJb7Ucsr4RBVCLOevu8E6xiBp0mdeeSc9a2mHZcrE1IVTU033oNOp GDhPSA4vZApj0YJqZdTw =pDEn -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
71ebd1af09
7 changed files with 8 additions and 12 deletions
|
@ -473,6 +473,8 @@ static void bcm2835_gpio_irq_disable(struct irq_data *data)
|
|||
|
||||
spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
||||
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]);
|
||||
spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
||||
}
|
||||
|
|
|
@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
|
|||
unsigned num_configs)
|
||||
{
|
||||
struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
|
||||
const struct imx1_pinctrl_soc_info *info = ipctl->info;
|
||||
int i;
|
||||
|
||||
for (i = 0; i != num_configs; ++i) {
|
||||
imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
|
||||
|
||||
dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
|
||||
info->pins[pin_id].name);
|
||||
pin_desc_get(pctldev, pin_id)->name);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -787,7 +787,6 @@ static const struct pinmux_ops abx500_pinmux_ops = {
|
|||
.set_mux = abx500_pmx_set,
|
||||
.gpio_request_enable = abx500_gpio_request_enable,
|
||||
.gpio_disable_free = abx500_gpio_disable_free,
|
||||
.strict = true,
|
||||
};
|
||||
|
||||
static int abx500_get_groups_cnt(struct pinctrl_dev *pctldev)
|
||||
|
|
|
@ -823,7 +823,7 @@ static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev,
|
|||
break;
|
||||
|
||||
case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
|
||||
if (param)
|
||||
if (param_val)
|
||||
*reg &= ~(LPC18XX_SCU_I2C0_ZIF << shift);
|
||||
else
|
||||
*reg |= (LPC18XX_SCU_I2C0_ZIF << shift);
|
||||
|
@ -876,7 +876,7 @@ static int lpc18xx_pconf_set_pin(struct pinctrl_dev *pctldev,
|
|||
break;
|
||||
|
||||
case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
|
||||
if (param)
|
||||
if (param_val)
|
||||
*reg &= ~LPC18XX_SCU_PIN_ZIF;
|
||||
else
|
||||
*reg |= LPC18XX_SCU_PIN_ZIF;
|
||||
|
|
|
@ -1760,7 +1760,8 @@ static int pcs_irq_init_chained_handler(struct pcs_device *pcs,
|
|||
int res;
|
||||
|
||||
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);
|
||||
if (res) {
|
||||
pcs_soc->irq = -1;
|
||||
|
|
|
@ -33,11 +33,6 @@
|
|||
#include "../core.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 */
|
||||
static struct pin_config {
|
||||
const char *property;
|
||||
|
|
|
@ -224,7 +224,7 @@ struct sh_pfc_soc_info {
|
|||
|
||||
/* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */
|
||||
#define _GP_GPIO(bank, _pin, _name, sfx) \
|
||||
[(bank * 32) + _pin] = { \
|
||||
{ \
|
||||
.pin = (bank * 32) + _pin, \
|
||||
.name = __stringify(_name), \
|
||||
.enum_id = _name##_DATA, \
|
||||
|
|
Loading…
Reference in a new issue