Merge tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "This is the bulk of pin control changes for the v4.8 kernel cycle. Nothing stands out as especially exiting: new drivers, new subdrivers, lots of cleanups and incremental features. Business as usual. New drivers: - New driver for Oxnas pin control and GPIO. This ARM-based chipset is used in a few storage (NAS) type devices. - New driver for the MAX77620/MAX20024 pin controller portions. - New driver for the Intel Merrifield pin controller. New subdrivers: - New subdriver for the Qualcomm MDM9615 - New subdriver for the STM32F746 MCU - New subdriver for the Broadcom NSP SoC. Cleanups: - Demodularization of bool compiled-in drivers. Apart from this there is just regular incremental improvements to a lot of drivers, especially Uniphier and PFC" * tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (131 commits) pinctrl: fix pincontrol definition for marvell pinctrl: xway: fix typo Revert "pinctrl: amd: make it explicitly non-modular" pinctrl: iproc: Add NSP and Stingray GPIO support pinctrl: Update iProc GPIO DT bindings pinctrl: bcm: add OF dependencies pinctrl: ns2: remove redundant dev_err call in ns2_pinmux_probe() pinctrl: Add STM32F746 MCU support pinctrl: intel: Protect set wake flow by spin lock pinctrl: nsp: remove redundant dev_err call in nsp_pinmux_probe() pinctrl: uniphier: add Ethernet pin-mux settings sh-pfc: Use PTR_ERR_OR_ZERO() to simplify the code pinctrl: ns2: fix return value check in ns2_pinmux_probe() pinctrl: qcom: update DT bindings with ebi2 groups pinctrl: qcom: establish proper EBI2 pin groups pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro Documentation: dt: Add new compatible to STM32 pinctrl driver bindings includes: dt-bindings: Add STM32F746 pinctrl DT bindings pinctrl: sunxi: fix nand0 function name for sun8i pinctrl: uniphier: remove pointless pin-mux settings for PH1-LD11 ...
This commit is contained in:
@@ -632,11 +632,11 @@ static void tegra_pinctrl_clear_parked_bits(struct tegra_pmx *pmx)
|
||||
u32 val;
|
||||
|
||||
for (i = 0; i < pmx->soc->ngroups; ++i) {
|
||||
if (pmx->soc->groups[i].parked_reg >= 0) {
|
||||
g = &pmx->soc->groups[i];
|
||||
val = pmx_readl(pmx, g->parked_bank, g->parked_reg);
|
||||
g = &pmx->soc->groups[i];
|
||||
if (g->parked_bit >= 0) {
|
||||
val = pmx_readl(pmx, g->mux_bank, g->mux_reg);
|
||||
val &= ~(1 << g->parked_bit);
|
||||
pmx_writel(pmx, val, g->parked_bank, g->parked_reg);
|
||||
pmx_writel(pmx, val, g->mux_bank, g->mux_reg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -93,9 +93,7 @@ struct tegra_function {
|
||||
* @tri_reg: Tri-state register offset.
|
||||
* @tri_bank: Tri-state register bank.
|
||||
* @tri_bit: Tri-state register bit.
|
||||
* @parked_reg: Parked register offset. -1 if unsupported.
|
||||
* @parked_bank: Parked register bank. 0 if unsupported.
|
||||
* @parked_bit: Parked register bit. 0 if unsupported.
|
||||
* @parked_bit: Parked register bit. -1 if unsupported.
|
||||
* @einput_bit: Enable-input register bit.
|
||||
* @odrain_bit: Open-drain register bit.
|
||||
* @lock_bit: Lock register bit.
|
||||
@@ -138,12 +136,10 @@ struct tegra_pingroup {
|
||||
s16 pupd_reg;
|
||||
s16 tri_reg;
|
||||
s16 drv_reg;
|
||||
s16 parked_reg;
|
||||
u32 mux_bank:2;
|
||||
u32 pupd_bank:2;
|
||||
u32 tri_bank:2;
|
||||
u32 drv_bank:2;
|
||||
u32 parked_bank:2;
|
||||
s32 mux_bit:6;
|
||||
s32 pupd_bit:6;
|
||||
s32 tri_bit:6;
|
||||
|
@@ -1578,7 +1578,7 @@ static struct tegra_function tegra114_functions[] = {
|
||||
.lock_bit = 7, \
|
||||
.ioreset_bit = PINGROUP_BIT_##ior(8), \
|
||||
.rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.drv_reg = -1, \
|
||||
}
|
||||
|
||||
@@ -1599,7 +1599,7 @@ static struct tegra_function tegra114_functions[] = {
|
||||
.rcv_sel_bit = -1, \
|
||||
.drv_reg = DRV_PINGROUP_REG(r), \
|
||||
.drv_bank = 0, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.hsm_bit = hsm_b, \
|
||||
.schmitt_bit = schmitt_b, \
|
||||
.lpmd_bit = lpmd_b, \
|
||||
|
@@ -1747,7 +1747,7 @@ static struct tegra_function tegra124_functions[] = {
|
||||
.lock_bit = 7, \
|
||||
.ioreset_bit = PINGROUP_BIT_##ior(8), \
|
||||
.rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.drv_reg = -1, \
|
||||
}
|
||||
|
||||
@@ -1768,7 +1768,7 @@ static struct tegra_function tegra124_functions[] = {
|
||||
.rcv_sel_bit = -1, \
|
||||
.drv_reg = DRV_PINGROUP_REG(r), \
|
||||
.drv_bank = 0, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.hsm_bit = hsm_b, \
|
||||
.schmitt_bit = schmitt_b, \
|
||||
.lpmd_bit = lpmd_b, \
|
||||
|
@@ -1994,7 +1994,7 @@ static struct tegra_function tegra20_functions[] = {
|
||||
.tri_reg = ((tri_r) - TRISTATE_REG_A), \
|
||||
.tri_bank = 0, \
|
||||
.tri_bit = tri_b, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.einput_bit = -1, \
|
||||
.odrain_bit = -1, \
|
||||
.lock_bit = -1, \
|
||||
@@ -2014,7 +2014,7 @@ static struct tegra_function tegra20_functions[] = {
|
||||
.pupd_bank = 2, \
|
||||
.pupd_bit = pupd_b, \
|
||||
.drv_reg = -1, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
}
|
||||
|
||||
/* Pin groups for drive strength registers (configurable version) */
|
||||
@@ -2030,7 +2030,7 @@ static struct tegra_function tegra20_functions[] = {
|
||||
.tri_reg = -1, \
|
||||
.drv_reg = ((r) - PINGROUP_REG_A), \
|
||||
.drv_bank = 3, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.hsm_bit = hsm_b, \
|
||||
.schmitt_bit = schmitt_b, \
|
||||
.lpmd_bit = lpmd_b, \
|
||||
|
@@ -1310,8 +1310,6 @@ static struct tegra_function tegra210_functions[] = {
|
||||
.lock_bit = 7, \
|
||||
.ioreset_bit = -1, \
|
||||
.rcv_sel_bit = PINGROUP_BIT_##e_io_hv(10), \
|
||||
.parked_reg = PINGROUP_REG(r), \
|
||||
.parked_bank = 1, \
|
||||
.parked_bit = 5, \
|
||||
.hsm_bit = PINGROUP_BIT_##hsm(9), \
|
||||
.schmitt_bit = 12, \
|
||||
@@ -1345,7 +1343,7 @@ static struct tegra_function tegra210_functions[] = {
|
||||
.rcv_sel_bit = -1, \
|
||||
.drv_reg = DRV_PINGROUP_REG(r), \
|
||||
.drv_bank = 0, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.hsm_bit = -1, \
|
||||
.schmitt_bit = -1, \
|
||||
.lpmd_bit = -1, \
|
||||
|
@@ -2139,7 +2139,7 @@ static struct tegra_function tegra30_functions[] = {
|
||||
.lock_bit = 7, \
|
||||
.ioreset_bit = PINGROUP_BIT_##ior(8), \
|
||||
.rcv_sel_bit = -1, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.drv_reg = -1, \
|
||||
}
|
||||
|
||||
@@ -2160,7 +2160,7 @@ static struct tegra_function tegra30_functions[] = {
|
||||
.rcv_sel_bit = -1, \
|
||||
.drv_reg = DRV_PINGROUP_REG(r), \
|
||||
.drv_bank = 0, \
|
||||
.parked_reg = -1, \
|
||||
.parked_bit = -1, \
|
||||
.hsm_bit = hsm_b, \
|
||||
.schmitt_bit = schmitt_b, \
|
||||
.lpmd_bit = lpmd_b, \
|
||||
|
Reference in New Issue
Block a user