aboutsummaryrefslogtreecommitdiff
path: root/drivers/pinctrl/mvebu/pinctrl-mvebu.h
diff options
context:
space:
mode:
authorGravatar Russell King <rmk+kernel@armlinux.org.uk> 2017-01-13 11:03:35 +0000
committerGravatar Linus Walleij <linus.walleij@linaro.org> 2017-01-18 09:58:04 +0100
commitd068b0988a48418a1b6679f5b7d650400846d17f (patch)
tree4919ca6853a15e6f46f26bbf7861edcca378486d /drivers/pinctrl/mvebu/pinctrl-mvebu.h
parentpinctrl: mvebu: switch drivers to generic simple mmio (diff)
downloadlinux-d068b0988a48418a1b6679f5b7d650400846d17f.tar.gz
linux-d068b0988a48418a1b6679f5b7d650400846d17f.tar.bz2
linux-d068b0988a48418a1b6679f5b7d650400846d17f.zip
pinctrl: mvebu: add simple regmap based pinctrl implementation
Add a simple regmap based pinctrl implementation for mvebu, for syscon based regmap drivers. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/mvebu/pinctrl-mvebu.h')
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-mvebu.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.h b/drivers/pinctrl/mvebu/pinctrl-mvebu.h
index a9304cdc23e2..c90704e74884 100644
--- a/drivers/pinctrl/mvebu/pinctrl-mvebu.h
+++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.h
@@ -16,9 +16,17 @@
/**
* struct mvebu_mpp_ctrl_data - private data for the mpp ctrl operations
* @base: base address of pinctrl hardware
+ * @regmap.map: regmap structure
+ * @regmap.offset: regmap offset
*/
struct mvebu_mpp_ctrl_data {
- void __iomem *base;
+ union {
+ void __iomem *base;
+ struct {
+ struct regmap *map;
+ u32 offset;
+ } regmap;
+ };
};
/**
@@ -194,8 +202,14 @@ int mvebu_mmio_mpp_ctrl_get(struct mvebu_mpp_ctrl_data *data, unsigned pid,
unsigned long *config);
int mvebu_mmio_mpp_ctrl_set(struct mvebu_mpp_ctrl_data *data, unsigned pid,
unsigned long config);
+int mvebu_regmap_mpp_ctrl_get(struct mvebu_mpp_ctrl_data *data, unsigned pid,
+ unsigned long *config);
+int mvebu_regmap_mpp_ctrl_set(struct mvebu_mpp_ctrl_data *data, unsigned pid,
+ unsigned long config);
int mvebu_pinctrl_probe(struct platform_device *pdev);
int mvebu_pinctrl_simple_mmio_probe(struct platform_device *pdev);
+int mvebu_pinctrl_simple_regmap_probe(struct platform_device *pdev,
+ struct device *syscon_dev);
#endif