mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-17 17:53:56 +08:00
Pin control fixes for the v5.8 cycle, first take:
- Fix a warning on the Qualcomm SPMI GPIO chip being instatiated twice without a unique irqchip struct. - Use the noirq variants of the suspend and resume callbacks in the Tegra driver. - Clean up the errorpath on the MCP23s08 driver. - Revert the use of devm_of_iomap() in the Freescale driver as it was regressing the platform. - Add some missing pins in the Qualcomm IPQ6018 driver. - Fix a simple documentation bug in the pinctrl-single driver. -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAl7vpLEACgkQQRCzN7AZ XXNWEw/+KAe5G5DHnqGCAzglGxfK9FxWsi42j8PBFFxI0TTID+Wohhw4D/AXakGL ooXyrWKB/VOY6zp5RU6IDiZAC/8m8SUZhY9MVDH1kOCULrV/ItKAClbMfVHBWJN0 B2SkPIgEK7np8vV6j+Ch+EeQZMqaMDZYrFIM8Y4QmmJ4xZJ/K/hYL6lMuXl3XRyv /8x1zMTdimEIbvONwXAGqkrFgyuy+hQ/xa1/6DmPl65EjUVKPNu60F1jNMNo6uNp ssnQWEI4/G47OCTw14Qx8MTZwYd55tfO9KHgOfcEsZbzm5ppK/5wQzFo0hs2e5kL cxDmpyw3AdC/lKCPJi2jifYFhBQuMGjIQHiskFCu3ko2RUMGvIVx3dTmDHb5kb2J YuAb/kqk4uPsaBqrrRaSVa1NTHkMrFS9ndxzpdMOzNctlSUmLBdnYT0kmqtNwcnt ZdkHLjptVOuLvqmfEK3tIs32IPaKgsEACUcyF6KY7Yw+9sGU7i0fgWEAqQqpL0II MIBaPg836YuUdAa8uCuKxFsqmjAzuUEYkV5g5B03+5/c+3yQMe74m0C0N/pE1Oa1 PPaPlFW/jU/irPKz8383L+hl48swksY85sCeu9oT0ASIqqas+qsXy6Ui6AlST36V 5jEFtfThIu7OwJw/9Qzve++TPFM+zMvprT0UW1+6+vTwyqpFv7s= =g/Xm -----END PGP SIGNATURE----- Merge tag 'pinctrl-v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "Some early fixes collected during the first week after the merge window, all pretty self-evident, with the details below. The revert is the crucial thing. - Fix a warning on the Qualcomm SPMI GPIO chip being instatiated twice without a unique irqchip struct - Use the noirq variants of the suspend and resume callbacks in the Tegra driver - Clean up the errorpath on the MCP23s08 driver - Revert the use of devm_of_iomap() in the Freescale driver as it was regressing the platform - Add some missing pins in the Qualcomm IPQ6018 driver - Fix a simple documentation bug in the pinctrl-single driver" * tag 'pinctrl-v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: single: fix function name in documentation pinctrl: qcom: ipq6018 Add missing pins in qpic pin group Revert "pinctrl: freescale: imx: Use 'devm_of_iomap()' to avoid a resource leak in case of error in 'imx_pinctrl_probe()'" pinctrl: mcp23s08: Split to three parts: fix ptr_ret.cocci warnings pinctrl: tegra: Use noirq suspend/resume callbacks pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage
This commit is contained in:
commit
16f4aa9b7c
@ -824,13 +824,12 @@ int imx_pinctrl_probe(struct platform_device *pdev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ipctl->input_sel_base = devm_of_iomap(&pdev->dev, np,
|
||||
0, NULL);
|
||||
ipctl->input_sel_base = of_iomap(np, 0);
|
||||
of_node_put(np);
|
||||
if (IS_ERR(ipctl->input_sel_base)) {
|
||||
if (!ipctl->input_sel_base) {
|
||||
dev_err(&pdev->dev,
|
||||
"iomuxc input select base address not found\n");
|
||||
return PTR_ERR(ipctl->input_sel_base);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -126,10 +126,7 @@ static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
|
||||
copy->name = name;
|
||||
|
||||
mcp->regmap = devm_regmap_init(dev, &mcp23sxx_spi_regmap, mcp, copy);
|
||||
if (IS_ERR(mcp->regmap))
|
||||
return PTR_ERR(mcp->regmap);
|
||||
|
||||
return 0;
|
||||
return PTR_ERR_OR_ZERO(mcp->regmap);
|
||||
}
|
||||
|
||||
static int mcp23s08_probe(struct spi_device *spi)
|
||||
|
@ -958,7 +958,7 @@ static int pcs_parse_pinconf(struct pcs_device *pcs, struct device_node *np,
|
||||
}
|
||||
|
||||
/**
|
||||
* smux_parse_one_pinctrl_entry() - parses a device tree mux entry
|
||||
* pcs_parse_one_pinctrl_entry() - parses a device tree mux entry
|
||||
* @pctldev: pin controller device
|
||||
* @pcs: pinctrl driver instance
|
||||
* @np: device node of the mux entry
|
||||
|
@ -367,7 +367,8 @@ static const char * const wci20_groups[] = {
|
||||
|
||||
static const char * const qpic_pad_groups[] = {
|
||||
"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio9", "gpio10",
|
||||
"gpio11", "gpio17",
|
||||
"gpio11", "gpio17", "gpio15", "gpio12", "gpio13", "gpio14", "gpio5",
|
||||
"gpio6", "gpio7", "gpio8",
|
||||
};
|
||||
|
||||
static const char * const burn0_groups[] = {
|
||||
|
@ -170,6 +170,7 @@ struct pmic_gpio_state {
|
||||
struct regmap *map;
|
||||
struct pinctrl_dev *ctrl;
|
||||
struct gpio_chip chip;
|
||||
struct irq_chip irq;
|
||||
};
|
||||
|
||||
static const struct pinconf_generic_params pmic_gpio_bindings[] = {
|
||||
@ -917,16 +918,6 @@ static int pmic_gpio_populate(struct pmic_gpio_state *state,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct irq_chip pmic_gpio_irq_chip = {
|
||||
.name = "spmi-gpio",
|
||||
.irq_ack = irq_chip_ack_parent,
|
||||
.irq_mask = irq_chip_mask_parent,
|
||||
.irq_unmask = irq_chip_unmask_parent,
|
||||
.irq_set_type = irq_chip_set_type_parent,
|
||||
.irq_set_wake = irq_chip_set_wake_parent,
|
||||
.flags = IRQCHIP_MASK_ON_SUSPEND,
|
||||
};
|
||||
|
||||
static int pmic_gpio_domain_translate(struct irq_domain *domain,
|
||||
struct irq_fwspec *fwspec,
|
||||
unsigned long *hwirq,
|
||||
@ -1053,8 +1044,16 @@ static int pmic_gpio_probe(struct platform_device *pdev)
|
||||
if (!parent_domain)
|
||||
return -ENXIO;
|
||||
|
||||
state->irq.name = "spmi-gpio",
|
||||
state->irq.irq_ack = irq_chip_ack_parent,
|
||||
state->irq.irq_mask = irq_chip_mask_parent,
|
||||
state->irq.irq_unmask = irq_chip_unmask_parent,
|
||||
state->irq.irq_set_type = irq_chip_set_type_parent,
|
||||
state->irq.irq_set_wake = irq_chip_set_wake_parent,
|
||||
state->irq.flags = IRQCHIP_MASK_ON_SUSPEND,
|
||||
|
||||
girq = &state->chip.irq;
|
||||
girq->chip = &pmic_gpio_irq_chip;
|
||||
girq->chip = &state->irq;
|
||||
girq->default_type = IRQ_TYPE_NONE;
|
||||
girq->handler = handle_level_irq;
|
||||
girq->fwnode = of_node_to_fwnode(state->dev->of_node);
|
||||
|
@ -731,8 +731,8 @@ static int tegra_pinctrl_resume(struct device *dev)
|
||||
}
|
||||
|
||||
const struct dev_pm_ops tegra_pinctrl_pm = {
|
||||
.suspend = &tegra_pinctrl_suspend,
|
||||
.resume = &tegra_pinctrl_resume
|
||||
.suspend_noirq = &tegra_pinctrl_suspend,
|
||||
.resume_noirq = &tegra_pinctrl_resume
|
||||
};
|
||||
|
||||
static bool tegra_pinctrl_gpio_node_has_range(struct tegra_pmx *pmx)
|
||||
|
Loading…
Reference in New Issue
Block a user