Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Janusz Krzysztofik
Hi Linus,

On Friday, July 13, 2018 9:35:06 AM CEST Linus Walleij wrote:
> On Tue, Jul 10, 2018 at 7:56 PM Janusz Krzysztofik  
wrote:
> > > - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,
> > 
> > This is OK but not enough for clean build of board-ams-delta.c when merged
> > into current linux-next as one more struct fixed_voltage_config introduced
> > there recently - keybrd_pwr_config - needs removal of .gpio member
> > (respective lookup table with NULL function name is already there).
> > 
> > > @@ -538,6 +546,7 @@ static struct gpiod_lookup_table
> > > *ams_delta_gpio_tables[] __initdata = {> > 
> > >  };
> > >  
> > >  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> > > 
> > > + _delta_nreset_gpiod_table,
> > 
> > That is also OK but may raise a conflict when merged into current
> > linux-next where late_gpio_tables[] has been removed from
> > board-ams-delta.c  and its content integrated into
> > ams_delta_gpio_tables[].
> > 
> > >   _delta_lcd_gpio_table,
> > >   _delta_nand_gpio_table,
> > >  
> > >  };
> > 
> > If that makes your life easier, I can prepare a fix for board-ams-delta.c
> > on top of your patch.  In that case you can add my:
> > Reviewed-by: Janusz Krzysztofik 
> 
> Hm it's a bit of cross-tree conflict going on here I guess.
> 
> Do you have some idea about how serious the conflicts will be?
> Is it just one patch to the ARM SoC OMAP tree or several?

Just one patch, so ...

> It's a bit of Mark's pick, there are several ways to go about it:
> 
> 1. Simply defer this to the next kernel cycle when your change is upstream
>   and avoid all fuzz (totally OK as long as one is not impatient).
>   I'm definately not in a hurry.
> 
> 2. Mark applies this, conflicts appear in linux-next, you help Stephen
>   to solve it and later on Torvalds has to solve it. Then we need to
>   know how serious the conflicts are.
> 
> 3. Apply this patch with fixes to the ARM SoC tree. Which makes it hard to
>   pull out so I'm not so sure about that.
> 
> 4. An immutable branch with the ARM SoC change for Mark to pull
>   before applying this so I can rebase this patch on that.
> 
> 5. Pick some patch from ARM SoC and apply it *also* to the regulator
>   tree and then this on top so I can rebase the changes and avoid
>   all conflicts. (We do this sometimes as some last resort.)
> 
> 6. ...?

6. The conflict can be easily avoided (or made resolvable automatically) if you 
put the '_delta_nreset_gpiod_table,' entry either at the end of 
late_gpio_tables[] or at the beginning of ams_delta_gpio_tables[]. Then the 
only thing left to do will be a fix removing obsolete .gpio member from the 
board-ams-delta's new "keybrd_pwr" regulator setup.

> BTW I like your OMAP1 cleanups a lot!

Thank you :-),
Janusz





Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Janusz Krzysztofik
Hi Linus,

On Friday, July 13, 2018 9:35:06 AM CEST Linus Walleij wrote:
> On Tue, Jul 10, 2018 at 7:56 PM Janusz Krzysztofik  
wrote:
> > > - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,
> > 
> > This is OK but not enough for clean build of board-ams-delta.c when merged
> > into current linux-next as one more struct fixed_voltage_config introduced
> > there recently - keybrd_pwr_config - needs removal of .gpio member
> > (respective lookup table with NULL function name is already there).
> > 
> > > @@ -538,6 +546,7 @@ static struct gpiod_lookup_table
> > > *ams_delta_gpio_tables[] __initdata = {> > 
> > >  };
> > >  
> > >  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> > > 
> > > + _delta_nreset_gpiod_table,
> > 
> > That is also OK but may raise a conflict when merged into current
> > linux-next where late_gpio_tables[] has been removed from
> > board-ams-delta.c  and its content integrated into
> > ams_delta_gpio_tables[].
> > 
> > >   _delta_lcd_gpio_table,
> > >   _delta_nand_gpio_table,
> > >  
> > >  };
> > 
> > If that makes your life easier, I can prepare a fix for board-ams-delta.c
> > on top of your patch.  In that case you can add my:
> > Reviewed-by: Janusz Krzysztofik 
> 
> Hm it's a bit of cross-tree conflict going on here I guess.
> 
> Do you have some idea about how serious the conflicts will be?
> Is it just one patch to the ARM SoC OMAP tree or several?

Just one patch, so ...

> It's a bit of Mark's pick, there are several ways to go about it:
> 
> 1. Simply defer this to the next kernel cycle when your change is upstream
>   and avoid all fuzz (totally OK as long as one is not impatient).
>   I'm definately not in a hurry.
> 
> 2. Mark applies this, conflicts appear in linux-next, you help Stephen
>   to solve it and later on Torvalds has to solve it. Then we need to
>   know how serious the conflicts are.
> 
> 3. Apply this patch with fixes to the ARM SoC tree. Which makes it hard to
>   pull out so I'm not so sure about that.
> 
> 4. An immutable branch with the ARM SoC change for Mark to pull
>   before applying this so I can rebase this patch on that.
> 
> 5. Pick some patch from ARM SoC and apply it *also* to the regulator
>   tree and then this on top so I can rebase the changes and avoid
>   all conflicts. (We do this sometimes as some last resort.)
> 
> 6. ...?

6. The conflict can be easily avoided (or made resolvable automatically) if you 
put the '_delta_nreset_gpiod_table,' entry either at the end of 
late_gpio_tables[] or at the beginning of ams_delta_gpio_tables[]. Then the 
only thing left to do will be a fix removing obsolete .gpio member from the 
board-ams-delta's new "keybrd_pwr" regulator setup.

> BTW I like your OMAP1 cleanups a lot!

Thank you :-),
Janusz





Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Mark Brown
On Fri, Jul 13, 2018 at 09:35:06AM +0200, Linus Walleij wrote:

> 4. An immutable branch with the ARM SoC change for Mark to pull
>   before applying this so I can rebase this patch on that.

That'd be ideal, though just waiting till after the merge window when
all these cleanups are in works too - like you say I'm not sure we're in
any hurry here.


signature.asc
Description: PGP signature


Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Mark Brown
On Fri, Jul 13, 2018 at 09:35:06AM +0200, Linus Walleij wrote:

> 4. An immutable branch with the ARM SoC change for Mark to pull
>   before applying this so I can rebase this patch on that.

That'd be ideal, though just waiting till after the merge window when
all these cleanups are in works too - like you say I'm not sure we're in
any hurry here.


signature.asc
Description: PGP signature


Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Linus Walleij
On Tue, Jul 10, 2018 at 7:56 PM Janusz Krzysztofik  wrote:

> > - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,
>
> This is OK but not enough for clean build of board-ams-delta.c when merged
> into current linux-next as one more struct fixed_voltage_config introduced 
> there
> recently - keybrd_pwr_config - needs removal of .gpio member (respective 
> lookup
> table with NULL function name is already there).
>
> > @@ -538,6 +546,7 @@ static struct gpiod_lookup_table 
> > *ams_delta_gpio_tables[] __initdata = {
> >  };
> >
> >  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> > + _delta_nreset_gpiod_table,
>
> That is also OK but may raise a conflict when merged into current linux-next
> where late_gpio_tables[] has been removed from board-ams-delta.c  and its
> content integrated into ams_delta_gpio_tables[].
>
> >   _delta_lcd_gpio_table,
> >   _delta_nand_gpio_table,
> >  };
>
> If that makes your life easier, I can prepare a fix for board-ams-delta.c on
> top of your patch.  In that case you can add my:
> Reviewed-by: Janusz Krzysztofik 

Hm it's a bit of cross-tree conflict going on here I guess.

Do you have some idea about how serious the conflicts will be?
Is it just one patch to the ARM SoC OMAP tree or several?

It's a bit of Mark's pick, there are several ways to go about it:

1. Simply defer this to the next kernel cycle when your change is upstream
  and avoid all fuzz (totally OK as long as one is not impatient).
  I'm definately not in a hurry.

2. Mark applies this, conflicts appear in linux-next, you help Stephen
  to solve it and later on Torvalds has to solve it. Then we need to
  know how serious the conflicts are.

3. Apply this patch with fixes to the ARM SoC tree. Which makes it hard to
  pull out so I'm not so sure about that.

4. An immutable branch with the ARM SoC change for Mark to pull
  before applying this so I can rebase this patch on that.

5. Pick some patch from ARM SoC and apply it *also* to the regulator
  tree and then this on top so I can rebase the changes and avoid
  all conflicts. (We do this sometimes as some last resort.)

6. ...?

BTW I like your OMAP1 cleanups a lot!

Yours,
Linus Walleij


Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-13 Thread Linus Walleij
On Tue, Jul 10, 2018 at 7:56 PM Janusz Krzysztofik  wrote:

> > - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,
>
> This is OK but not enough for clean build of board-ams-delta.c when merged
> into current linux-next as one more struct fixed_voltage_config introduced 
> there
> recently - keybrd_pwr_config - needs removal of .gpio member (respective 
> lookup
> table with NULL function name is already there).
>
> > @@ -538,6 +546,7 @@ static struct gpiod_lookup_table 
> > *ams_delta_gpio_tables[] __initdata = {
> >  };
> >
> >  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> > + _delta_nreset_gpiod_table,
>
> That is also OK but may raise a conflict when merged into current linux-next
> where late_gpio_tables[] has been removed from board-ams-delta.c  and its
> content integrated into ams_delta_gpio_tables[].
>
> >   _delta_lcd_gpio_table,
> >   _delta_nand_gpio_table,
> >  };
>
> If that makes your life easier, I can prepare a fix for board-ams-delta.c on
> top of your patch.  In that case you can add my:
> Reviewed-by: Janusz Krzysztofik 

Hm it's a bit of cross-tree conflict going on here I guess.

Do you have some idea about how serious the conflicts will be?
Is it just one patch to the ARM SoC OMAP tree or several?

It's a bit of Mark's pick, there are several ways to go about it:

1. Simply defer this to the next kernel cycle when your change is upstream
  and avoid all fuzz (totally OK as long as one is not impatient).
  I'm definately not in a hurry.

2. Mark applies this, conflicts appear in linux-next, you help Stephen
  to solve it and later on Torvalds has to solve it. Then we need to
  know how serious the conflicts are.

3. Apply this patch with fixes to the ARM SoC tree. Which makes it hard to
  pull out so I'm not so sure about that.

4. An immutable branch with the ARM SoC change for Mark to pull
  before applying this so I can rebase this patch on that.

5. Pick some patch from ARM SoC and apply it *also* to the regulator
  tree and then this on top so I can rebase the changes and avoid
  all conflicts. (We do this sometimes as some last resort.)

6. ...?

BTW I like your OMAP1 cleanups a lot!

Yours,
Linus Walleij


Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-10 Thread Janusz Krzysztofik
Hi Linus,

Regarding OMAP1 part (limited to board-ams-delta.c):

On Tuesday, July 10, 2018 8:11:12 AM CEST Linus Walleij wrote:
> ...
> ChangeLog v3->v4:
> - Rebase and adapt the OMAP1 changes for the GPIO descriptor
>   look-up tables deployed by Janusz.
> ...
> - Go over all patches to board files and make sure we pass
>   a NULL descriptor instead of an "enable" descriptor. The code
>   is looking for unnamed GPIOs as the device tree also just pass
>   gpio[s] = <> so board files also need to use anonymous
>   GPIOs.
> ...
> diff --git a/arch/arm/mach-omap1/board-ams-delta.c 
> b/arch/arm/mach-omap1/board-ams-delta.c
> index 80f54cb54276..2d24cab22134 100644
> --- a/arch/arm/mach-omap1/board-ams-delta.c
> +++ b/arch/arm/mach-omap1/board-ams-delta.c
> @@ -288,7 +288,6 @@ static struct regulator_init_data modem_nreset_data = {
>  static struct fixed_voltage_config modem_nreset_config = {
>   .supply_name= "modem_nreset",
>   .microvolts = 330,
> - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,

This is OK but not enough for clean build of board-ams-delta.c when merged 
into current linux-next as one more struct fixed_voltage_config introduced 
there 
recently - keybrd_pwr_config - needs removal of .gpio member (respective lookup 
table with NULL function name is already there).

>   .startup_delay  = 25000,
>   .enable_high= 1,
>   .enabled_at_boot= 1,
> @@ -303,6 +302,15 @@ static struct platform_device modem_nreset_device = {
>   },
>  };
> 
> +static struct gpiod_lookup_table ams_delta_nreset_gpiod_table = {
> + .dev_id = "reg-fixed-voltage",
> + .table = {
> + GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_MODEM_NRESET,
> + NULL, GPIO_ACTIVE_HIGH),
> + { },
> + },
> +};
> +
>  struct modem_private_data {
>   struct regulator *regulator;
>  };
> @@ -538,6 +546,7 @@ static struct gpiod_lookup_table *ams_delta_gpio_tables[] 
> __initdata = {
>  };
> 
>  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> + _delta_nreset_gpiod_table,

That is also OK but may raise a conflict when merged into current linux-next 
where late_gpio_tables[] has been removed from board-ams-delta.c  and its 
content integrated into ams_delta_gpio_tables[].

>   _delta_lcd_gpio_table,
>   _delta_nand_gpio_table,
>  };

If that makes your life easier, I can prepare a fix for board-ams-delta.c on 
top of your patch.  In that case you can add my:
Reviewed-by: Janusz Krzysztofik 

Thanks,
Janusz





Re: [PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-10 Thread Janusz Krzysztofik
Hi Linus,

Regarding OMAP1 part (limited to board-ams-delta.c):

On Tuesday, July 10, 2018 8:11:12 AM CEST Linus Walleij wrote:
> ...
> ChangeLog v3->v4:
> - Rebase and adapt the OMAP1 changes for the GPIO descriptor
>   look-up tables deployed by Janusz.
> ...
> - Go over all patches to board files and make sure we pass
>   a NULL descriptor instead of an "enable" descriptor. The code
>   is looking for unnamed GPIOs as the device tree also just pass
>   gpio[s] = <> so board files also need to use anonymous
>   GPIOs.
> ...
> diff --git a/arch/arm/mach-omap1/board-ams-delta.c 
> b/arch/arm/mach-omap1/board-ams-delta.c
> index 80f54cb54276..2d24cab22134 100644
> --- a/arch/arm/mach-omap1/board-ams-delta.c
> +++ b/arch/arm/mach-omap1/board-ams-delta.c
> @@ -288,7 +288,6 @@ static struct regulator_init_data modem_nreset_data = {
>  static struct fixed_voltage_config modem_nreset_config = {
>   .supply_name= "modem_nreset",
>   .microvolts = 330,
> - .gpio   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,

This is OK but not enough for clean build of board-ams-delta.c when merged 
into current linux-next as one more struct fixed_voltage_config introduced 
there 
recently - keybrd_pwr_config - needs removal of .gpio member (respective lookup 
table with NULL function name is already there).

>   .startup_delay  = 25000,
>   .enable_high= 1,
>   .enabled_at_boot= 1,
> @@ -303,6 +302,15 @@ static struct platform_device modem_nreset_device = {
>   },
>  };
> 
> +static struct gpiod_lookup_table ams_delta_nreset_gpiod_table = {
> + .dev_id = "reg-fixed-voltage",
> + .table = {
> + GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_MODEM_NRESET,
> + NULL, GPIO_ACTIVE_HIGH),
> + { },
> + },
> +};
> +
>  struct modem_private_data {
>   struct regulator *regulator;
>  };
> @@ -538,6 +546,7 @@ static struct gpiod_lookup_table *ams_delta_gpio_tables[] 
> __initdata = {
>  };
> 
>  static struct gpiod_lookup_table *late_gpio_tables[] __initdata = {
> + _delta_nreset_gpiod_table,

That is also OK but may raise a conflict when merged into current linux-next 
where late_gpio_tables[] has been removed from board-ams-delta.c  and its 
content integrated into ams_delta_gpio_tables[].

>   _delta_lcd_gpio_table,
>   _delta_nand_gpio_table,
>  };

If that makes your life easier, I can prepare a fix for board-ams-delta.c on 
top of your patch.  In that case you can add my:
Reviewed-by: Janusz Krzysztofik 

Thanks,
Janusz





[PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-10 Thread Linus Walleij
As we augmented the regulator core to accept a GPIO descriptor instead
of a GPIO number, we can augment the fixed GPIO regulator to look up
and pass that descriptor directly from device tree or board GPIO
descriptor look up tables.

Some boards just auto-enumerate their fixed regulator platform devices
and I have assumed they get names like "fixed-regulator.0" but it's
pretty hard to guess this. I need some testing from board maintainers to
be sure. Other boards are straight forward, using just plain
"fixed-regulator" (ID -1) or "fixed-regulator.1" hammering down the
device ID.

The OMAP didn't have proper label names on its GPIO chips so I have fixed
this with a separate patch to the GPIO tree, see
commit 088413bc0bd5f5fb66ca22a19d66a49d7154ba4c
"gpio: omap: Give unique labels to each GPIO bank/chip"

It seems the da9055 and da9211 has never got around to actually passing
any enable gpio into its platform data (not the in-tree code anyway) so we
can just decide to simply pass a descriptor instead.

The fixed GPIO-controlled regulator in mach-pxa/ezx.c was confusingly named
"*_dummy_supply_device" while it is a very real device backed by a GPIO
line. There is nothing dummy about it at all, so I renamed it with the
infix *_regulator_* as part of this patch set.

Intel MID portions tested by Andy.

Cc: Janusz Krzysztofik  # OMAP1
Cc: Alexander Shiyan  # i.MX boards user
Cc: Haojian Zhuang  # MMP2 maintainer
Cc: Aaro Koskinen  # OMAP1 maintainer
Cc: Mike Rapoport  # EM-X270 maintainer
Cc: Robert Jarzmik  # EZX maintainer
Cc: Philipp Zabel  # Magician maintainer
Cc: Daniel Mack  # Raumfeld maintainer
Cc: Marc Zyngier  # Zeus maintainer
Cc: Jacopo Mondi  # SH Ecovec24
Cc: Geert Uytterhoeven  # SuperH pinctrl/GPIO 
maintainer
Cc: Russell King  # SA1100
Tested-by: Andy Shevchenko  # Check the x86 
BCM stuff
Acked-by: Tony Lindgren  # OMAP1,2,3 maintainer
Signed-off-by: Linus Walleij 
---
ChangeLog v3->v4:
- Rebase and adapt the OMAP1 changes for the GPIO descriptor
  look-up tables deployed by Janusz.
- Add two calls to add the GPIO descriptor tables properly on
  the Super-H Ecovec24 board as pointed out by Geert.
- Go over all patches to board files and make sure we pass
  a NULL descriptor instead of an "enable" descriptor. The code
  is looking for unnamed GPIOs as the device tree also just pass
  gpio[s] = <> so board files also need to use anonymous
  GPIOs.
- Fold in an EZX fix from Arnd Bergmann.
- Add Andy's Tested-by tag.
- Send this patch *ALONE* as I realized I need to take smaller
  steps so things do not blow up left and right.
ChangeLog v2->v3:
- Resending.
ChangeLog v1->v2:
- Rebase the patch on mainline with Blackfin gone and other changes.
- Fix up the new users that appeared in sa1100
- Drop some suplus comments in x86.
---
 arch/arm/mach-imx/mach-mx21ads.c  | 12 ++-
 arch/arm/mach-imx/mach-mx27ads.c  | 12 ++-
 arch/arm/mach-mmp/brownstone.c| 12 ++-
 arch/arm/mach-omap1/board-ams-delta.c | 11 ++-
 arch/arm/mach-omap2/pdata-quirks.c| 16 -
 arch/arm/mach-pxa/em-x270.c   |  1 -
 arch/arm/mach-pxa/ezx.c   | 33 ---
 arch/arm/mach-pxa/magician.c  |  2 +-
 arch/arm/mach-pxa/raumfeld.c  | 12 +--
 arch/arm/mach-pxa/zeus.c  | 23 +++--
 arch/arm/mach-s3c64xx/mach-crag6410.c |  1 -
 arch/arm/mach-s3c64xx/mach-smdk6410.c |  1 -
 arch/arm/mach-sa1100/assabet.c| 21 
 arch/arm/mach-sa1100/generic.c|  5 +--
 arch/arm/mach-sa1100/generic.h|  3 +-
 arch/arm/mach-sa1100/shannon.c|  4 +--
 arch/sh/boards/mach-ecovec24/setup.c  | 25 --
 .../intel-mid/device_libs/platform_bcm43xx.c  | 17 --
 drivers/regulator/fixed-helper.c  |  1 -
 drivers/regulator/fixed.c | 33 +--
 include/linux/regulator/fixed.h   |  3 --
 21 files changed, 186 insertions(+), 62 deletions(-)

diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c
index 5e366824814f..2e1e540f2e5a 100644
--- a/arch/arm/mach-imx/mach-mx21ads.c
+++ b/arch/arm/mach-imx/mach-mx21ads.c
@@ -18,6 +18,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -175,6 +176,7 @@ static struct resource mx21ads_mmgpio_resource =
DEFINE_RES_MEM_NAMED(MX21ADS_IO_REG, SZ_2, "dat");
 
 static struct bgpio_pdata mx21ads_mmgpio_pdata = {
+   .label  = "mx21ads-mmgpio",
.base   = MX21ADS_MMGPIO_BASE,
.ngpio  = 16,
 };
@@ -203,7 +205,6 @@ static struct regulator_init_data 
mx21ads_lcd_regulator_init_data = {
 static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = {
.supply_name= "LCD",
.microvolts = 330,
-   .gpio   = MX21ADS_IO_LCDON,
.enable_high= 1,
.init_data   

[PATCH v4] regulator: fixed: Convert to use GPIO descriptor only

2018-07-10 Thread Linus Walleij
As we augmented the regulator core to accept a GPIO descriptor instead
of a GPIO number, we can augment the fixed GPIO regulator to look up
and pass that descriptor directly from device tree or board GPIO
descriptor look up tables.

Some boards just auto-enumerate their fixed regulator platform devices
and I have assumed they get names like "fixed-regulator.0" but it's
pretty hard to guess this. I need some testing from board maintainers to
be sure. Other boards are straight forward, using just plain
"fixed-regulator" (ID -1) or "fixed-regulator.1" hammering down the
device ID.

The OMAP didn't have proper label names on its GPIO chips so I have fixed
this with a separate patch to the GPIO tree, see
commit 088413bc0bd5f5fb66ca22a19d66a49d7154ba4c
"gpio: omap: Give unique labels to each GPIO bank/chip"

It seems the da9055 and da9211 has never got around to actually passing
any enable gpio into its platform data (not the in-tree code anyway) so we
can just decide to simply pass a descriptor instead.

The fixed GPIO-controlled regulator in mach-pxa/ezx.c was confusingly named
"*_dummy_supply_device" while it is a very real device backed by a GPIO
line. There is nothing dummy about it at all, so I renamed it with the
infix *_regulator_* as part of this patch set.

Intel MID portions tested by Andy.

Cc: Janusz Krzysztofik  # OMAP1
Cc: Alexander Shiyan  # i.MX boards user
Cc: Haojian Zhuang  # MMP2 maintainer
Cc: Aaro Koskinen  # OMAP1 maintainer
Cc: Mike Rapoport  # EM-X270 maintainer
Cc: Robert Jarzmik  # EZX maintainer
Cc: Philipp Zabel  # Magician maintainer
Cc: Daniel Mack  # Raumfeld maintainer
Cc: Marc Zyngier  # Zeus maintainer
Cc: Jacopo Mondi  # SH Ecovec24
Cc: Geert Uytterhoeven  # SuperH pinctrl/GPIO 
maintainer
Cc: Russell King  # SA1100
Tested-by: Andy Shevchenko  # Check the x86 
BCM stuff
Acked-by: Tony Lindgren  # OMAP1,2,3 maintainer
Signed-off-by: Linus Walleij 
---
ChangeLog v3->v4:
- Rebase and adapt the OMAP1 changes for the GPIO descriptor
  look-up tables deployed by Janusz.
- Add two calls to add the GPIO descriptor tables properly on
  the Super-H Ecovec24 board as pointed out by Geert.
- Go over all patches to board files and make sure we pass
  a NULL descriptor instead of an "enable" descriptor. The code
  is looking for unnamed GPIOs as the device tree also just pass
  gpio[s] = <> so board files also need to use anonymous
  GPIOs.
- Fold in an EZX fix from Arnd Bergmann.
- Add Andy's Tested-by tag.
- Send this patch *ALONE* as I realized I need to take smaller
  steps so things do not blow up left and right.
ChangeLog v2->v3:
- Resending.
ChangeLog v1->v2:
- Rebase the patch on mainline with Blackfin gone and other changes.
- Fix up the new users that appeared in sa1100
- Drop some suplus comments in x86.
---
 arch/arm/mach-imx/mach-mx21ads.c  | 12 ++-
 arch/arm/mach-imx/mach-mx27ads.c  | 12 ++-
 arch/arm/mach-mmp/brownstone.c| 12 ++-
 arch/arm/mach-omap1/board-ams-delta.c | 11 ++-
 arch/arm/mach-omap2/pdata-quirks.c| 16 -
 arch/arm/mach-pxa/em-x270.c   |  1 -
 arch/arm/mach-pxa/ezx.c   | 33 ---
 arch/arm/mach-pxa/magician.c  |  2 +-
 arch/arm/mach-pxa/raumfeld.c  | 12 +--
 arch/arm/mach-pxa/zeus.c  | 23 +++--
 arch/arm/mach-s3c64xx/mach-crag6410.c |  1 -
 arch/arm/mach-s3c64xx/mach-smdk6410.c |  1 -
 arch/arm/mach-sa1100/assabet.c| 21 
 arch/arm/mach-sa1100/generic.c|  5 +--
 arch/arm/mach-sa1100/generic.h|  3 +-
 arch/arm/mach-sa1100/shannon.c|  4 +--
 arch/sh/boards/mach-ecovec24/setup.c  | 25 --
 .../intel-mid/device_libs/platform_bcm43xx.c  | 17 --
 drivers/regulator/fixed-helper.c  |  1 -
 drivers/regulator/fixed.c | 33 +--
 include/linux/regulator/fixed.h   |  3 --
 21 files changed, 186 insertions(+), 62 deletions(-)

diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c
index 5e366824814f..2e1e540f2e5a 100644
--- a/arch/arm/mach-imx/mach-mx21ads.c
+++ b/arch/arm/mach-imx/mach-mx21ads.c
@@ -18,6 +18,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -175,6 +176,7 @@ static struct resource mx21ads_mmgpio_resource =
DEFINE_RES_MEM_NAMED(MX21ADS_IO_REG, SZ_2, "dat");
 
 static struct bgpio_pdata mx21ads_mmgpio_pdata = {
+   .label  = "mx21ads-mmgpio",
.base   = MX21ADS_MMGPIO_BASE,
.ngpio  = 16,
 };
@@ -203,7 +205,6 @@ static struct regulator_init_data 
mx21ads_lcd_regulator_init_data = {
 static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = {
.supply_name= "LCD",
.microvolts = 330,
-   .gpio   = MX21ADS_IO_LCDON,
.enable_high= 1,
.init_data