[PATCH 08/11] pinctrl: mvebu: dove: use remapped mpp base registers

2014-01-25 Thread Sebastian Hesselbarth
Now that we have ioremapped mpp base registers, get rid of hardcoded
physical addresses. While at it, also remove DOVE_ prefix from those
macros.

Signed-off-by: Sebastian Hesselbarth 
---
Cc: Jason Cooper 
Cc: Andrew Lunn 
Cc: Gregory Clement 
Cc: Linus Walleij 
Cc: linux-arm-ker...@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/pinctrl/mvebu/pinctrl-dove.c | 35 +++
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c 
b/drivers/pinctrl/mvebu/pinctrl-dove.c
index d2ad130ba21e..79106e7ecdd0 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
@@ -31,9 +31,6 @@
 #define GC_REGS_OFFS   0xe802c
 
 #define DOVE_SB_REGS_VIRT_BASE IOMEM(0xfde0)
-#define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0200)
-#define DOVE_PMU_MPP_GENERAL_CTRL  (DOVE_MPP_VIRT_BASE + 0x10)
-#define  DOVE_AU0_AC97_SEL BIT(16)
 #define DOVE_PMU_SIGNAL_SELECT_0   (DOVE_SB_REGS_VIRT_BASE + 0xd802C)
 #define DOVE_PMU_SIGNAL_SELECT_1   (DOVE_SB_REGS_VIRT_BASE + 0xd8030)
 #define DOVE_GLOBAL_CONFIG_1   (DOVE_SB_REGS_VIRT_BASE + 0xe802C)
@@ -57,6 +54,10 @@
 #define  DOVE_SD1_GPIO_SEL BIT(1)
 #define  DOVE_SD0_GPIO_SEL BIT(0)
 
+/* MPP Base registers */
+#define PMU_MPP_GENERAL_CTRL   0x10
+#define  AU0_AC97_SEL  BIT(16)
+
 #define MPPS_PER_REG   8
 #define MPP_BITS   4
 #define MPP_MASK   0xf
@@ -73,7 +74,7 @@ static int dove_pmu_mpp_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
 {
unsigned off = (ctrl->pid / MPPS_PER_REG) * MPP_BITS;
unsigned shift = (ctrl->pid % MPPS_PER_REG) * MPP_BITS;
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
unsigned long func;
 
if (pmu & (1 << ctrl->pid)) {
@@ -81,7 +82,7 @@ static int dove_pmu_mpp_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
*config = (func >> shift) & MPP_MASK;
*config |= CONFIG_PMU;
} else {
-   func = readl(DOVE_MPP_VIRT_BASE + off);
+   func = readl(mpp_base + off);
*config = (func >> shift) & MPP_MASK;
}
return 0;
@@ -92,21 +93,23 @@ static int dove_pmu_mpp_ctrl_set(struct mvebu_mpp_ctrl 
*ctrl,
 {
unsigned off = (ctrl->pid / MPPS_PER_REG) * MPP_BITS;
unsigned shift = (ctrl->pid % MPPS_PER_REG) * MPP_BITS;
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
unsigned long func;
 
if (config & CONFIG_PMU) {
-   writel(pmu | (1 << ctrl->pid), DOVE_PMU_MPP_GENERAL_CTRL);
+   writel(pmu | (1 << ctrl->pid),
+  mpp_base + PMU_MPP_GENERAL_CTRL);
func = readl(DOVE_PMU_SIGNAL_SELECT_0 + off);
func &= ~(MPP_MASK << shift);
func |= (config & MPP_MASK) << shift;
writel(func, DOVE_PMU_SIGNAL_SELECT_0 + off);
} else {
-   writel(pmu & ~(1 << ctrl->pid), DOVE_PMU_MPP_GENERAL_CTRL);
-   func = readl(DOVE_MPP_VIRT_BASE + off);
+   writel(pmu & ~(1 << ctrl->pid),
+  mpp_base + PMU_MPP_GENERAL_CTRL);
+   func = readl(mpp_base + off);
func &= ~(MPP_MASK << shift);
func |= (config & MPP_MASK) << shift;
-   writel(func, DOVE_MPP_VIRT_BASE + off);
+   writel(func, mpp_base + off);
}
return 0;
 }
@@ -204,9 +207,9 @@ static int dove_nand_ctrl_set(struct mvebu_mpp_ctrl *ctrl,
 static int dove_audio0_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
unsigned long *config)
 {
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
 
-   *config = ((pmu & DOVE_AU0_AC97_SEL) != 0);
+   *config = ((pmu & AU0_AC97_SEL) != 0);
 
return 0;
 }
@@ -214,12 +217,12 @@ static int dove_audio0_ctrl_get(struct mvebu_mpp_ctrl 
*ctrl,
 static int dove_audio0_ctrl_set(struct mvebu_mpp_ctrl *ctrl,
unsigned long config)
 {
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
 
-   pmu &= ~DOVE_AU0_AC97_SEL;
+   pmu &= ~AU0_AC97_SEL;
if (config)
-   pmu |= DOVE_AU0_AC97_SEL;
-   writel(pmu, DOVE_PMU_MPP_GENERAL_CTRL);
+   pmu |= AU0_AC97_SEL;
+   writel(pmu, mpp_base + PMU_MPP_GENERAL_CTRL);
 
return 0;
 }
-- 
1.8.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 08/11] pinctrl: mvebu: dove: use remapped mpp base registers

2014-01-25 Thread Sebastian Hesselbarth
Now that we have ioremapped mpp base registers, get rid of hardcoded
physical addresses. While at it, also remove DOVE_ prefix from those
macros.

Signed-off-by: Sebastian Hesselbarth sebastian.hesselba...@gmail.com
---
Cc: Jason Cooper ja...@lakedaemon.net
Cc: Andrew Lunn and...@lunn.ch
Cc: Gregory Clement gregory.clem...@free-electrons.com
Cc: Linus Walleij linus.wall...@linaro.org
Cc: linux-arm-ker...@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/pinctrl/mvebu/pinctrl-dove.c | 35 +++
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c 
b/drivers/pinctrl/mvebu/pinctrl-dove.c
index d2ad130ba21e..79106e7ecdd0 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
@@ -31,9 +31,6 @@
 #define GC_REGS_OFFS   0xe802c
 
 #define DOVE_SB_REGS_VIRT_BASE IOMEM(0xfde0)
-#define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0200)
-#define DOVE_PMU_MPP_GENERAL_CTRL  (DOVE_MPP_VIRT_BASE + 0x10)
-#define  DOVE_AU0_AC97_SEL BIT(16)
 #define DOVE_PMU_SIGNAL_SELECT_0   (DOVE_SB_REGS_VIRT_BASE + 0xd802C)
 #define DOVE_PMU_SIGNAL_SELECT_1   (DOVE_SB_REGS_VIRT_BASE + 0xd8030)
 #define DOVE_GLOBAL_CONFIG_1   (DOVE_SB_REGS_VIRT_BASE + 0xe802C)
@@ -57,6 +54,10 @@
 #define  DOVE_SD1_GPIO_SEL BIT(1)
 #define  DOVE_SD0_GPIO_SEL BIT(0)
 
+/* MPP Base registers */
+#define PMU_MPP_GENERAL_CTRL   0x10
+#define  AU0_AC97_SEL  BIT(16)
+
 #define MPPS_PER_REG   8
 #define MPP_BITS   4
 #define MPP_MASK   0xf
@@ -73,7 +74,7 @@ static int dove_pmu_mpp_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
 {
unsigned off = (ctrl-pid / MPPS_PER_REG) * MPP_BITS;
unsigned shift = (ctrl-pid % MPPS_PER_REG) * MPP_BITS;
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
unsigned long func;
 
if (pmu  (1  ctrl-pid)) {
@@ -81,7 +82,7 @@ static int dove_pmu_mpp_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
*config = (func  shift)  MPP_MASK;
*config |= CONFIG_PMU;
} else {
-   func = readl(DOVE_MPP_VIRT_BASE + off);
+   func = readl(mpp_base + off);
*config = (func  shift)  MPP_MASK;
}
return 0;
@@ -92,21 +93,23 @@ static int dove_pmu_mpp_ctrl_set(struct mvebu_mpp_ctrl 
*ctrl,
 {
unsigned off = (ctrl-pid / MPPS_PER_REG) * MPP_BITS;
unsigned shift = (ctrl-pid % MPPS_PER_REG) * MPP_BITS;
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
unsigned long func;
 
if (config  CONFIG_PMU) {
-   writel(pmu | (1  ctrl-pid), DOVE_PMU_MPP_GENERAL_CTRL);
+   writel(pmu | (1  ctrl-pid),
+  mpp_base + PMU_MPP_GENERAL_CTRL);
func = readl(DOVE_PMU_SIGNAL_SELECT_0 + off);
func = ~(MPP_MASK  shift);
func |= (config  MPP_MASK)  shift;
writel(func, DOVE_PMU_SIGNAL_SELECT_0 + off);
} else {
-   writel(pmu  ~(1  ctrl-pid), DOVE_PMU_MPP_GENERAL_CTRL);
-   func = readl(DOVE_MPP_VIRT_BASE + off);
+   writel(pmu  ~(1  ctrl-pid),
+  mpp_base + PMU_MPP_GENERAL_CTRL);
+   func = readl(mpp_base + off);
func = ~(MPP_MASK  shift);
func |= (config  MPP_MASK)  shift;
-   writel(func, DOVE_MPP_VIRT_BASE + off);
+   writel(func, mpp_base + off);
}
return 0;
 }
@@ -204,9 +207,9 @@ static int dove_nand_ctrl_set(struct mvebu_mpp_ctrl *ctrl,
 static int dove_audio0_ctrl_get(struct mvebu_mpp_ctrl *ctrl,
unsigned long *config)
 {
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
 
-   *config = ((pmu  DOVE_AU0_AC97_SEL) != 0);
+   *config = ((pmu  AU0_AC97_SEL) != 0);
 
return 0;
 }
@@ -214,12 +217,12 @@ static int dove_audio0_ctrl_get(struct mvebu_mpp_ctrl 
*ctrl,
 static int dove_audio0_ctrl_set(struct mvebu_mpp_ctrl *ctrl,
unsigned long config)
 {
-   unsigned long pmu = readl(DOVE_PMU_MPP_GENERAL_CTRL);
+   unsigned long pmu = readl(mpp_base + PMU_MPP_GENERAL_CTRL);
 
-   pmu = ~DOVE_AU0_AC97_SEL;
+   pmu = ~AU0_AC97_SEL;
if (config)
-   pmu |= DOVE_AU0_AC97_SEL;
-   writel(pmu, DOVE_PMU_MPP_GENERAL_CTRL);
+   pmu |= AU0_AC97_SEL;
+   writel(pmu, mpp_base + PMU_MPP_GENERAL_CTRL);
 
return 0;
 }
-- 
1.8.5.2

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at