aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-dove.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c
index d48db53957e0..b1a2e5b828c1 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
@@ -31,8 +31,6 @@
31#define GC_REGS_OFFS 0xe802c 31#define GC_REGS_OFFS 0xe802c
32 32
33#define DOVE_SB_REGS_VIRT_BASE IOMEM(0xfde00000) 33#define DOVE_SB_REGS_VIRT_BASE IOMEM(0xfde00000)
34#define DOVE_PMU_SIGNAL_SELECT_0 (DOVE_SB_REGS_VIRT_BASE + 0xd802C)
35#define DOVE_PMU_SIGNAL_SELECT_1 (DOVE_SB_REGS_VIRT_BASE + 0xd8030)
36#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE + 0xe802C) 34#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE + 0xe802C)
37#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE + 0xe802C) 35#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE + 0xe802C)
38#define DOVE_TWSI_ENABLE_OPTION1 BIT(7) 36#define DOVE_TWSI_ENABLE_OPTION1 BIT(7)
@@ -59,6 +57,10 @@
59#define SD1_GPIO_SEL BIT(1) 57#define SD1_GPIO_SEL BIT(1)
60#define SD0_GPIO_SEL BIT(0) 58#define SD0_GPIO_SEL BIT(0)
61 59
60/* PMU Signal Select registers */
61#define PMU_SIGNAL_SELECT_0 0x00
62#define PMU_SIGNAL_SELECT_1 0x04
63
62#define CONFIG_PMU BIT(4) 64#define CONFIG_PMU BIT(4)
63 65
64static void __iomem *mpp_base; 66static void __iomem *mpp_base;
@@ -86,7 +88,7 @@ static int dove_pmu_mpp_ctrl_get(unsigned pid, unsigned long *config)
86 if ((pmu & BIT(pid)) == 0) 88 if ((pmu & BIT(pid)) == 0)
87 return default_mpp_ctrl_get(mpp_base, pid, config); 89 return default_mpp_ctrl_get(mpp_base, pid, config);
88 90
89 func = readl(DOVE_PMU_SIGNAL_SELECT_0 + off); 91 func = readl(pmu_base + PMU_SIGNAL_SELECT_0 + off);
90 *config = (func >> shift) & MVEBU_MPP_MASK; 92 *config = (func >> shift) & MVEBU_MPP_MASK;
91 *config |= CONFIG_PMU; 93 *config |= CONFIG_PMU;
92 94
@@ -106,10 +108,10 @@ static int dove_pmu_mpp_ctrl_set(unsigned pid, unsigned long config)
106 } 108 }
107 109
108 writel(pmu | BIT(pid), mpp_base + PMU_MPP_GENERAL_CTRL); 110 writel(pmu | BIT(pid), mpp_base + PMU_MPP_GENERAL_CTRL);
109 func = readl(DOVE_PMU_SIGNAL_SELECT_0 + off); 111 func = readl(pmu_base + PMU_SIGNAL_SELECT_0 + off);
110 func &= ~(MVEBU_MPP_MASK << shift); 112 func &= ~(MVEBU_MPP_MASK << shift);
111 func |= (config & MVEBU_MPP_MASK) << shift; 113 func |= (config & MVEBU_MPP_MASK) << shift;
112 writel(func, DOVE_PMU_SIGNAL_SELECT_0 + off); 114 writel(func, pmu_base + PMU_SIGNAL_SELECT_0 + off);
113 115
114 return 0; 116 return 0;
115} 117}