]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
pinctrl: mvebu: dove: use remapped mpp4 register
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Fri, 24 Jan 2014 22:33:16 +0000 (23:33 +0100)
committerSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Tue, 25 Feb 2014 20:16:14 +0000 (21:16 +0100)
Now that we have an ioremapped mpp4 register, get rid of hardcoded
physical addresses. While at it, also remove DOVE_ prefix from those
macros.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mvebu/pinctrl-dove.c

index 902c18f11b94edce2830cc75d10561ea2c386dbb..d48db53957e07a877992c4075c0cfb179f133ddd 100644 (file)
 #define  DOVE_AU1_SPDIFO_GPIO_EN       BIT(1)
 #define  DOVE_NAND_GPIO_EN             BIT(0)
 #define DOVE_GPIO_LO_VIRT_BASE         (DOVE_SB_REGS_VIRT_BASE + 0xd0400)
-#define DOVE_MPP_CTRL4_VIRT_BASE       (DOVE_GPIO_LO_VIRT_BASE + 0x40)
-#define  DOVE_SPI_GPIO_SEL             BIT(5)
-#define  DOVE_UART1_GPIO_SEL           BIT(4)
-#define  DOVE_AU1_GPIO_SEL             BIT(3)
-#define  DOVE_CAM_GPIO_SEL             BIT(2)
-#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)
 
+/* MPP Control 4 register */
+#define SPI_GPIO_SEL           BIT(5)
+#define UART1_GPIO_SEL         BIT(4)
+#define AU1_GPIO_SEL           BIT(3)
+#define CAM_GPIO_SEL           BIT(2)
+#define SD1_GPIO_SEL           BIT(1)
+#define SD0_GPIO_SEL           BIT(0)
+
 #define CONFIG_PMU     BIT(4)
 
 static void __iomem *mpp_base;
@@ -115,24 +116,24 @@ static int dove_pmu_mpp_ctrl_set(unsigned pid, unsigned long config)
 
 static int dove_mpp4_ctrl_get(unsigned pid, unsigned long *config)
 {
-       unsigned long mpp4 = readl(DOVE_MPP_CTRL4_VIRT_BASE);
+       unsigned long mpp4 = readl(mpp4_base);
        unsigned long mask;
 
        switch (pid) {
        case 24: /* mpp_camera */
-               mask = DOVE_CAM_GPIO_SEL;
+               mask = CAM_GPIO_SEL;
                break;
        case 40: /* mpp_sdio0 */
-               mask = DOVE_SD0_GPIO_SEL;
+               mask = SD0_GPIO_SEL;
                break;
        case 46: /* mpp_sdio1 */
-               mask = DOVE_SD1_GPIO_SEL;
+               mask = SD1_GPIO_SEL;
                break;
        case 58: /* mpp_spi0 */
-               mask = DOVE_SPI_GPIO_SEL;
+               mask = SPI_GPIO_SEL;
                break;
        case 62: /* mpp_uart1 */
-               mask = DOVE_UART1_GPIO_SEL;
+               mask = UART1_GPIO_SEL;
                break;
        default:
                return -EINVAL;
@@ -145,24 +146,24 @@ static int dove_mpp4_ctrl_get(unsigned pid, unsigned long *config)
 
 static int dove_mpp4_ctrl_set(unsigned pid, unsigned long config)
 {
-       unsigned long mpp4 = readl(DOVE_MPP_CTRL4_VIRT_BASE);
+       unsigned long mpp4 = readl(mpp4_base);
        unsigned long mask;
 
        switch (pid) {
        case 24: /* mpp_camera */
-               mask = DOVE_CAM_GPIO_SEL;
+               mask = CAM_GPIO_SEL;
                break;
        case 40: /* mpp_sdio0 */
-               mask = DOVE_SD0_GPIO_SEL;
+               mask = SD0_GPIO_SEL;
                break;
        case 46: /* mpp_sdio1 */
-               mask = DOVE_SD1_GPIO_SEL;
+               mask = SD1_GPIO_SEL;
                break;
        case 58: /* mpp_spi0 */
-               mask = DOVE_SPI_GPIO_SEL;
+               mask = SPI_GPIO_SEL;
                break;
        case 62: /* mpp_uart1 */
-               mask = DOVE_UART1_GPIO_SEL;
+               mask = UART1_GPIO_SEL;
                break;
        default:
                return -EINVAL;
@@ -172,7 +173,7 @@ static int dove_mpp4_ctrl_set(unsigned pid, unsigned long config)
        if (config)
                mpp4 |= mask;
 
-       writel(mpp4, DOVE_MPP_CTRL4_VIRT_BASE);
+       writel(mpp4, mpp4_base);
 
        return 0;
 }
@@ -222,13 +223,13 @@ static int dove_audio0_ctrl_set(unsigned pid, unsigned long config)
 
 static int dove_audio1_ctrl_get(unsigned pid, unsigned long *config)
 {
-       unsigned long mpp4 = readl(DOVE_MPP_CTRL4_VIRT_BASE);
+       unsigned int mpp4 = readl(mpp4_base);
        unsigned long sspc1 = readl(DOVE_SSP_CTRL_STATUS_1);
        unsigned long gmpp = readl(DOVE_MPP_GENERAL_VIRT_BASE);
        unsigned long gcfg2 = readl(DOVE_GLOBAL_CONFIG_2);
 
        *config = 0;
-       if (mpp4 & DOVE_AU1_GPIO_SEL)
+       if (mpp4 & AU1_GPIO_SEL)
                *config |= BIT(3);
        if (sspc1 & DOVE_SSP_ON_AU1)
                *config |= BIT(2);
@@ -248,7 +249,7 @@ static int dove_audio1_ctrl_get(unsigned pid, unsigned long *config)
 
 static int dove_audio1_ctrl_set(unsigned pid, unsigned long config)
 {
-       unsigned long mpp4 = readl(DOVE_MPP_CTRL4_VIRT_BASE);
+       unsigned int mpp4 = readl(mpp4_base);
        unsigned long sspc1 = readl(DOVE_SSP_CTRL_STATUS_1);
        unsigned long gmpp = readl(DOVE_MPP_GENERAL_VIRT_BASE);
        unsigned long gcfg2 = readl(DOVE_GLOBAL_CONFIG_2);
@@ -259,7 +260,7 @@ static int dove_audio1_ctrl_set(unsigned pid, unsigned long config)
        gcfg2 &= ~DOVE_TWSI_OPTION3_GPIO;
        gmpp &= ~DOVE_AU1_SPDIFO_GPIO_EN;
        sspc1 &= ~DOVE_SSP_ON_AU1;
-       mpp4 &= ~DOVE_AU1_GPIO_SEL;
+       mpp4 &= ~AU1_GPIO_SEL;
 
        if (config & BIT(0))
                gcfg2 |= DOVE_TWSI_OPTION3_GPIO;
@@ -268,9 +269,9 @@ static int dove_audio1_ctrl_set(unsigned pid, unsigned long config)
        if (config & BIT(2))
                sspc1 |= DOVE_SSP_ON_AU1;
        if (config & BIT(3))
-               mpp4 |= DOVE_AU1_GPIO_SEL;
+               mpp4 |= AU1_GPIO_SEL;
 
-       writel(mpp4, DOVE_MPP_CTRL4_VIRT_BASE);
+       writel(mpp4, mpp4_base);
        writel(sspc1, DOVE_SSP_CTRL_STATUS_1);
        writel(gmpp, DOVE_MPP_GENERAL_VIRT_BASE);
        writel(gcfg2, DOVE_GLOBAL_CONFIG_2);