aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinmux-sirf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/pinmux-sirf.c')
-rw-r--r--drivers/pinctrl/pinmux-sirf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/pinctrl/pinmux-sirf.c b/drivers/pinctrl/pinmux-sirf.c
index d848d9764378..99e688e07ea0 100644
--- a/drivers/pinctrl/pinmux-sirf.c
+++ b/drivers/pinctrl/pinmux-sirf.c
@@ -1067,7 +1067,7 @@ static int sirfsoc_pinmux_request_gpio(struct pinctrl_dev *pmxdev,
1067 spmx = pinctrl_dev_get_drvdata(pmxdev); 1067 spmx = pinctrl_dev_get_drvdata(pmxdev);
1068 1068
1069 muxval = readl(spmx->gpio_virtbase + SIRFSOC_GPIO_PAD_EN(group)); 1069 muxval = readl(spmx->gpio_virtbase + SIRFSOC_GPIO_PAD_EN(group));
1070 muxval = muxval | (1 << offset); 1070 muxval = muxval | (1 << (offset - range->pin_base));
1071 writel(muxval, spmx->gpio_virtbase + SIRFSOC_GPIO_PAD_EN(group)); 1071 writel(muxval, spmx->gpio_virtbase + SIRFSOC_GPIO_PAD_EN(group));
1072 1072
1073 return 0; 1073 return 0;
@@ -1100,21 +1100,25 @@ static struct pinctrl_gpio_range sirfsoc_gpio_ranges[] = {
1100 .name = "sirfsoc-gpio*", 1100 .name = "sirfsoc-gpio*",
1101 .id = 0, 1101 .id = 0,
1102 .base = 0, 1102 .base = 0,
1103 .pin_base = 0,
1103 .npins = 32, 1104 .npins = 32,
1104 }, { 1105 }, {
1105 .name = "sirfsoc-gpio*", 1106 .name = "sirfsoc-gpio*",
1106 .id = 1, 1107 .id = 1,
1107 .base = 32, 1108 .base = 32,
1109 .pin_base = 32,
1108 .npins = 32, 1110 .npins = 32,
1109 }, { 1111 }, {
1110 .name = "sirfsoc-gpio*", 1112 .name = "sirfsoc-gpio*",
1111 .id = 2, 1113 .id = 2,
1112 .base = 64, 1114 .base = 64,
1115 .pin_base = 64,
1113 .npins = 32, 1116 .npins = 32,
1114 }, { 1117 }, {
1115 .name = "sirfsoc-gpio*", 1118 .name = "sirfsoc-gpio*",
1116 .id = 3, 1119 .id = 3,
1117 .base = 96, 1120 .base = 96,
1121 .pin_base = 96,
1118 .npins = 19, 1122 .npins = 19,
1119 }, 1123 },
1120}; 1124};