summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sirf
diff options
context:
space:
mode:
authorBarry Song <Baohua.Song@csr.com>2015-01-11 08:56:41 -0500
committerLinus Walleij <linus.walleij@linaro.org>2015-01-14 08:21:54 -0500
commita17272a46ce1133d1b2232d6584d947565b720ee (patch)
tree6c9d8259374cdadb323d27efc9617f1d8ba2e497 /drivers/pinctrl/sirf
parent63b5aed37b769d6b9f5b322e1e29f31c18da5d17 (diff)
pinctrl: sirf: drop marco support
marco chip has been dropped, clear its support. Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/sirf')
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.c51
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.h1
2 files changed, 13 insertions, 39 deletions
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index 4871647c7f85..2a1f07249b2f 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -38,7 +38,6 @@ struct sirfsoc_gpio_bank {
38 38
39struct sirfsoc_gpio_chip { 39struct sirfsoc_gpio_chip {
40 struct of_mm_gpio_chip chip; 40 struct of_mm_gpio_chip chip;
41 bool is_marco; /* for marco, some registers are different with prima2 */
42 struct sirfsoc_gpio_bank sgpio_bank[SIRFSOC_GPIO_NO_OF_BANKS]; 41 struct sirfsoc_gpio_bank sgpio_bank[SIRFSOC_GPIO_NO_OF_BANKS];
43}; 42};
44 43
@@ -149,23 +148,14 @@ static void sirfsoc_pinmux_endisable(struct sirfsoc_pmx *spmx,
149 148
150 for (i = 0; i < mux->muxmask_counts; i++) { 149 for (i = 0; i < mux->muxmask_counts; i++) {
151 u32 muxval; 150 u32 muxval;
152 if (!spmx->is_marco) { 151 muxval = readl(spmx->gpio_virtbase +
153 muxval = readl(spmx->gpio_virtbase + 152 SIRFSOC_GPIO_PAD_EN(mask[i].group));
154 SIRFSOC_GPIO_PAD_EN(mask[i].group)); 153 if (enable)
155 if (enable) 154 muxval = muxval & ~mask[i].mask;
156 muxval = muxval & ~mask[i].mask; 155 else
157 else 156 muxval = muxval | mask[i].mask;
158 muxval = muxval | mask[i].mask; 157 writel(muxval, spmx->gpio_virtbase +
159 writel(muxval, spmx->gpio_virtbase + 158 SIRFSOC_GPIO_PAD_EN(mask[i].group));
160 SIRFSOC_GPIO_PAD_EN(mask[i].group));
161 } else {
162 if (enable)
163 writel(mask[i].mask, spmx->gpio_virtbase +
164 SIRFSOC_GPIO_PAD_EN_CLR(mask[i].group));
165 else
166 writel(mask[i].mask, spmx->gpio_virtbase +
167 SIRFSOC_GPIO_PAD_EN(mask[i].group));
168 }
169 } 159 }
170 160
171 if (mux->funcmask && enable) { 161 if (mux->funcmask && enable) {
@@ -223,16 +213,11 @@ static int sirfsoc_pinmux_request_gpio(struct pinctrl_dev *pmxdev,
223 213
224 spmx = pinctrl_dev_get_drvdata(pmxdev); 214 spmx = pinctrl_dev_get_drvdata(pmxdev);
225 215
226 if (!spmx->is_marco) { 216 muxval = readl(spmx->gpio_virtbase +
227 muxval = readl(spmx->gpio_virtbase + 217 SIRFSOC_GPIO_PAD_EN(group));
228 SIRFSOC_GPIO_PAD_EN(group)); 218 muxval = muxval | (1 << (offset - range->pin_base));
229 muxval = muxval | (1 << (offset - range->pin_base)); 219 writel(muxval, spmx->gpio_virtbase +
230 writel(muxval, spmx->gpio_virtbase + 220 SIRFSOC_GPIO_PAD_EN(group));
231 SIRFSOC_GPIO_PAD_EN(group));
232 } else {
233 writel(1 << (offset - range->pin_base), spmx->gpio_virtbase +
234 SIRFSOC_GPIO_PAD_EN(group));
235 }
236 221
237 return 0; 222 return 0;
238} 223}
@@ -256,7 +241,6 @@ static void __iomem *sirfsoc_rsc_of_iomap(void)
256{ 241{
257 const struct of_device_id rsc_ids[] = { 242 const struct of_device_id rsc_ids[] = {
258 { .compatible = "sirf,prima2-rsc" }, 243 { .compatible = "sirf,prima2-rsc" },
259 { .compatible = "sirf,marco-rsc" },
260 {} 244 {}
261 }; 245 };
262 struct device_node *np; 246 struct device_node *np;
@@ -284,7 +268,6 @@ static int sirfsoc_gpio_of_xlate(struct gpio_chip *gc,
284static const struct of_device_id pinmux_ids[] = { 268static const struct of_device_id pinmux_ids[] = {
285 { .compatible = "sirf,prima2-pinctrl", .data = &prima2_pinctrl_data, }, 269 { .compatible = "sirf,prima2-pinctrl", .data = &prima2_pinctrl_data, },
286 { .compatible = "sirf,atlas6-pinctrl", .data = &atlas6_pinctrl_data, }, 270 { .compatible = "sirf,atlas6-pinctrl", .data = &atlas6_pinctrl_data, },
287 { .compatible = "sirf,marco-pinctrl", .data = &prima2_pinctrl_data, },
288 {} 271 {}
289}; 272};
290 273
@@ -317,9 +300,6 @@ static int sirfsoc_pinmux_probe(struct platform_device *pdev)
317 goto out_no_rsc_remap; 300 goto out_no_rsc_remap;
318 } 301 }
319 302
320 if (of_device_is_compatible(np, "sirf,marco-pinctrl"))
321 spmx->is_marco = 1;
322
323 pdata = of_match_node(pinmux_ids, np)->data; 303 pdata = of_match_node(pinmux_ids, np)->data;
324 sirfsoc_pin_groups = pdata->grps; 304 sirfsoc_pin_groups = pdata->grps;
325 sirfsoc_pingrp_cnt = pdata->grps_cnt; 305 sirfsoc_pingrp_cnt = pdata->grps_cnt;
@@ -803,7 +783,6 @@ static int sirfsoc_gpio_probe(struct device_node *np)
803 struct sirfsoc_gpio_bank *bank; 783 struct sirfsoc_gpio_bank *bank;
804 void __iomem *regs; 784 void __iomem *regs;
805 struct platform_device *pdev; 785 struct platform_device *pdev;
806 bool is_marco = false;
807 786
808 u32 pullups[SIRFSOC_GPIO_NO_OF_BANKS], pulldowns[SIRFSOC_GPIO_NO_OF_BANKS]; 787 u32 pullups[SIRFSOC_GPIO_NO_OF_BANKS], pulldowns[SIRFSOC_GPIO_NO_OF_BANKS];
809 788
@@ -819,9 +798,6 @@ static int sirfsoc_gpio_probe(struct device_node *np)
819 if (!regs) 798 if (!regs)
820 return -ENOMEM; 799 return -ENOMEM;
821 800
822 if (of_device_is_compatible(np, "sirf,marco-pinctrl"))
823 is_marco = 1;
824
825 sgpio->chip.gc.request = sirfsoc_gpio_request; 801 sgpio->chip.gc.request = sirfsoc_gpio_request;
826 sgpio->chip.gc.free = sirfsoc_gpio_free; 802 sgpio->chip.gc.free = sirfsoc_gpio_free;
827 sgpio->chip.gc.direction_input = sirfsoc_gpio_direction_input; 803 sgpio->chip.gc.direction_input = sirfsoc_gpio_direction_input;
@@ -836,7 +812,6 @@ static int sirfsoc_gpio_probe(struct device_node *np)
836 sgpio->chip.gc.of_gpio_n_cells = 2; 812 sgpio->chip.gc.of_gpio_n_cells = 2;
837 sgpio->chip.gc.dev = &pdev->dev; 813 sgpio->chip.gc.dev = &pdev->dev;
838 sgpio->chip.regs = regs; 814 sgpio->chip.regs = regs;
839 sgpio->is_marco = is_marco;
840 815
841 err = gpiochip_add(&sgpio->chip.gc); 816 err = gpiochip_add(&sgpio->chip.gc);
842 if (err) { 817 if (err) {
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.h b/drivers/pinctrl/sirf/pinctrl-sirf.h
index d7f16b499ad9..9550335fe57a 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.h
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.h
@@ -49,7 +49,6 @@ struct sirfsoc_pmx {
49 u32 paden_regs[SIRFSOC_GPIO_NO_OF_BANKS]; 49 u32 paden_regs[SIRFSOC_GPIO_NO_OF_BANKS];
50 u32 dspen_regs; 50 u32 dspen_regs;
51 u32 rsc_regs[3]; 51 u32 rsc_regs[3];
52 bool is_marco;
53}; 52};
54 53
55/* SIRFSOC_GPIO_PAD_EN set */ 54/* SIRFSOC_GPIO_PAD_EN set */