OSDN Git Service

pinctrl: sunxi: Disable strict mode for old pinctrl drivers
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 9 Oct 2017 20:53:38 +0000 (22:53 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 31 Oct 2017 08:45:00 +0000 (09:45 +0100)
Old pinctrl drivers will need to disable strict mode for various reasons,
among which:
  - Some DT will still have a pinctrl group for each GPIO used, which will
    be rejected by pin_request. While we could remove those nodes, we still
    have to deal with old DTs.
  - Some GPIOs on these boards need to have their pin configuration changed
    (for bias or current), and there's no clear migration path

Let's disable the strict mode on those SoCs so that there's no breakage.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
drivers/pinctrl/sunxi/pinctrl-sun5i.c
drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c
drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c
drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c
drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c
drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c
drivers/pinctrl/sunxi/pinctrl-sun8i-h3-r.c
drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c
drivers/pinctrl/sunxi/pinctrl-sun9i-a80.c

index f763d8d..295e48f 100644 (file)
@@ -1289,6 +1289,7 @@ static const struct sunxi_pinctrl_desc sun4i_a10_pinctrl_data = {
        .npins = ARRAY_SIZE(sun4i_a10_pins),
        .irq_banks = 1,
        .irq_read_needs_mux = true,
+       .disable_strict_mode = true,
 };
 
 static int sun4i_a10_pinctrl_probe(struct platform_device *pdev)
index 47afd55..27ec99e 100644 (file)
@@ -713,6 +713,7 @@ static const struct sunxi_pinctrl_desc sun5i_pinctrl_data = {
        .pins = sun5i_pins,
        .npins = ARRAY_SIZE(sun5i_pins),
        .irq_banks = 1,
+       .disable_strict_mode = true,
 };
 
 static int sun5i_pinctrl_probe(struct platform_device *pdev)
index 49a1deb..a00246d 100644 (file)
@@ -106,6 +106,7 @@ static const struct sunxi_pinctrl_desc sun6i_a31_r_pinctrl_data = {
        .npins = ARRAY_SIZE(sun6i_a31_r_pins),
        .pin_base = PL_BASE,
        .irq_banks = 2,
+       .disable_strict_mode = true,
 };
 
 static int sun6i_a31_r_pinctrl_probe(struct platform_device *pdev)
index 951a25c..82ffaf4 100644 (file)
@@ -965,6 +965,7 @@ static const struct sunxi_pinctrl_desc sun6i_a31_pinctrl_data = {
        .pins = sun6i_a31_pins,
        .npins = ARRAY_SIZE(sun6i_a31_pins),
        .irq_banks = 4,
+       .disable_strict_mode = true,
 };
 
 static int sun6i_a31_pinctrl_probe(struct platform_device *pdev)
index 67ee6f9..8a08c4a 100644 (file)
@@ -93,6 +93,7 @@ static const struct sunxi_pinctrl_desc sun8i_a23_r_pinctrl_data = {
        .npins = ARRAY_SIZE(sun8i_a23_r_pins),
        .pin_base = PL_BASE,
        .irq_banks = 1,
+       .disable_strict_mode = true,
 };
 
 static int sun8i_a23_r_pinctrl_probe(struct platform_device *pdev)
index 721b693..402fd7d 100644 (file)
@@ -563,6 +563,7 @@ static const struct sunxi_pinctrl_desc sun8i_a23_pinctrl_data = {
        .pins = sun8i_a23_pins,
        .npins = ARRAY_SIZE(sun8i_a23_pins),
        .irq_banks = 3,
+       .disable_strict_mode = true,
 };
 
 static int sun8i_a23_pinctrl_probe(struct platform_device *pdev)
index ef1e0be..da38721 100644 (file)
@@ -486,6 +486,7 @@ static const struct sunxi_pinctrl_desc sun8i_a33_pinctrl_data = {
        .npins = ARRAY_SIZE(sun8i_a33_pins),
        .irq_banks = 2,
        .irq_bank_base = 1,
+       .disable_strict_mode = true,
 };
 
 static int sun8i_a33_pinctrl_probe(struct platform_device *pdev)
index ebfd9a2..b795a19 100644 (file)
@@ -82,7 +82,8 @@ static const struct sunxi_pinctrl_desc sun8i_h3_r_pinctrl_data = {
        .npins = ARRAY_SIZE(sun8i_h3_r_pins),
        .irq_banks = 1,
        .pin_base = PL_BASE,
-       .irq_read_needs_mux = true
+       .irq_read_needs_mux = true,
+       .disable_strict_mode = true,
 };
 
 static int sun8i_h3_r_pinctrl_probe(struct platform_device *pdev)
index 518a92d..d1719a7 100644 (file)
@@ -491,7 +491,8 @@ static const struct sunxi_pinctrl_desc sun8i_h3_pinctrl_data = {
        .pins = sun8i_h3_pins,
        .npins = ARRAY_SIZE(sun8i_h3_pins),
        .irq_banks = 2,
-       .irq_read_needs_mux = true
+       .irq_read_needs_mux = true,
+       .disable_strict_mode = true,
 };
 
 static int sun8i_h3_pinctrl_probe(struct platform_device *pdev)
index 92a873f..c63086c 100644 (file)
@@ -152,6 +152,7 @@ static const struct sunxi_pinctrl_desc sun9i_a80_r_pinctrl_data = {
        .npins = ARRAY_SIZE(sun9i_a80_r_pins),
        .pin_base = PL_BASE,
        .irq_banks = 2,
+       .disable_strict_mode = true,
 };
 
 static int sun9i_a80_r_pinctrl_probe(struct platform_device *pdev)
index bc14e95..472ef0d 100644 (file)
@@ -721,6 +721,7 @@ static const struct sunxi_pinctrl_desc sun9i_a80_pinctrl_data = {
        .pins = sun9i_a80_pins,
        .npins = ARRAY_SIZE(sun9i_a80_pins),
        .irq_banks = 5,
+       .disable_strict_mode = true,
 };
 
 static int sun9i_a80_pinctrl_probe(struct platform_device *pdev)