aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/freescale/pinctrl-imx.h
diff options
context:
space:
mode:
authorGary Bisson <gary.bisson@boundarydevices.com>2016-12-02 17:35:19 +0100
committerLinus Walleij <linus.walleij@linaro.org>2016-12-30 14:26:01 +0100
commita51c158bf0f7cab3bd593586801a1a8b51c7c741 (patch)
tree192ea35a6fb4c805fd726675d849926fcb808626 /drivers/pinctrl/freescale/pinctrl-imx.h
parentpinctrl: imx: remove const qualifier of imx_pinctrl_soc_info (diff)
downloadlinux-dev-a51c158bf0f7cab3bd593586801a1a8b51c7c741.tar.xz
linux-dev-a51c158bf0f7cab3bd593586801a1a8b51c7c741.zip
pinctrl: imx: use radix trees for groups and functions
This change is inspired from the pinctrl-single architecture. The problem with current implementation is that it isn't possible to add/remove functions and/or groups dynamically. The radix tree offers an easy way to do so. The intent is to offer a follow-up patch later that will enable the use of pinctrl nodes in dt-overlays. Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/freescale/pinctrl-imx.h')
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.h b/drivers/pinctrl/freescale/pinctrl-imx.h
index 8af8aa2897ab..62aa8f8f57e9 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.h
+++ b/drivers/pinctrl/freescale/pinctrl-imx.h
@@ -76,13 +76,14 @@ struct imx_pinctrl_soc_info {
const struct pinctrl_pin_desc *pins;
unsigned int npins;
struct imx_pin_reg *pin_regs;
- struct imx_pin_group *groups;
unsigned int ngroups;
unsigned int group_index;
- struct imx_pmx_func *functions;
unsigned int nfunctions;
unsigned int flags;
const char *gpr_compatible;
+ struct radix_tree_root ftree;
+ struct radix_tree_root pgtree;
+ struct mutex mutex;
};
#define SHARE_MUX_CONF_REG 0x1