mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
MLK-11377-1: pinctrl: freescale: pinctrl-imx: ZERO_OFFSET_VALID flag
- Add ZERO_OFFSET_VALID flag, on imx7d mux_conf reg offset is zero for iomuxc-lspr controller. - Update Copyright year. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
This commit is contained in:
parent
51ff948df5
commit
d6a11cab78
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Core driver for the imx pin controller
|
||||
*
|
||||
* Copyright (C) 2012 Freescale Semiconductor, Inc.
|
||||
* Copyright (C) 2012-2015 Freescale Semiconductor, Inc.
|
||||
* Copyright (C) 2012 Linaro Ltd.
|
||||
*
|
||||
* Author: Dong Aisheng <dong.aisheng@linaro.org>
|
||||
|
|
@ -542,15 +542,22 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
|
|||
struct imx_pin_reg *pin_reg;
|
||||
struct imx_pin *pin = &grp->pins[i];
|
||||
|
||||
if (!(info->flags & ZERO_OFFSET_VALID) && !mux_reg)
|
||||
mux_reg = -1;
|
||||
|
||||
if (info->flags & SHARE_MUX_CONF_REG) {
|
||||
conf_reg = mux_reg;
|
||||
} else {
|
||||
conf_reg = be32_to_cpu(*list++);
|
||||
if (!conf_reg)
|
||||
if (!(info->flags & ZERO_OFFSET_VALID) && !conf_reg)
|
||||
conf_reg = -1;
|
||||
}
|
||||
|
||||
pin_id = mux_reg ? mux_reg / 4 : conf_reg / 4;
|
||||
if (info->flags & ZERO_OFFSET_VALID)
|
||||
pin_id = mux_reg / 4;
|
||||
else
|
||||
pin_id = mux_reg ? mux_reg / 4 : conf_reg / 4;
|
||||
|
||||
pin_reg = &info->pin_regs[pin_id];
|
||||
pin->pin = pin_id;
|
||||
grp->pin_ids[i] = pin_id;
|
||||
|
|
@ -648,7 +655,7 @@ int imx_pinctrl_probe(struct platform_device *pdev,
|
|||
{
|
||||
struct imx_pinctrl *ipctl;
|
||||
struct resource *res;
|
||||
int ret, i;
|
||||
int ret;
|
||||
|
||||
if (!info || !info->pins || !info->npins) {
|
||||
dev_err(&pdev->dev, "wrong pinctrl info\n");
|
||||
|
|
@ -666,11 +673,6 @@ int imx_pinctrl_probe(struct platform_device *pdev,
|
|||
if (!info->pin_regs)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < info->npins; i++) {
|
||||
info->pin_regs[i].mux_reg = -1;
|
||||
info->pin_regs[i].conf_reg = -1;
|
||||
}
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
ipctl->base = devm_ioremap_resource(&pdev->dev, res);
|
||||
if (IS_ERR(ipctl->base))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* IMX pinmux core definitions
|
||||
*
|
||||
* Copyright (C) 2012 Freescale Semiconductor, Inc.
|
||||
* Copyright (C) 2012-2015 Freescale Semiconductor, Inc.
|
||||
* Copyright (C) 2012 Linaro Ltd.
|
||||
*
|
||||
* Author: Dong Aisheng <dong.aisheng@linaro.org>
|
||||
|
|
@ -84,6 +84,7 @@ struct imx_pinctrl_soc_info {
|
|||
};
|
||||
|
||||
#define SHARE_MUX_CONF_REG 0x1
|
||||
#define ZERO_OFFSET_VALID 0x2
|
||||
|
||||
#define NO_MUX 0x0
|
||||
#define NO_PAD 0x0
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user