diff mbox

[RFC,3/4] sh: ecovec24: convert backlight to use device properties

Message ID 20180315224202.96668-4-dmitry.torokhov@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Torokhov March 15, 2018, 10:42 p.m. UTC
Instead of backlight legacy platform data, let's switch to using device
properties and GPIO lookup tables.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 arch/sh/boards/mach-ecovec24/setup.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

Comments

Geert Uytterhoeven March 16, 2018, 8:50 a.m. UTC | #1
Hi Dmitry,

On Thu, Mar 15, 2018 at 11:42 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> Instead of backlight legacy platform data, let's switch to using device
> properties and GPIO lookup tables.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thanks for your patch!

> --- a/arch/sh/boards/mach-ecovec24/setup.c
> +++ b/arch/sh/boards/mach-ecovec24/setup.c

> @@ -367,17 +368,21 @@ static struct platform_device lcdc_device = {
>         },
>  };
>
> -static struct gpio_backlight_platform_data gpio_backlight_data = {
> -       .gpio = GPIO_PTR1,
> -       .def_value = 1,
> -       .name = "backlight",
> +static struct gpiod_lookup_table gpio_backlight_gpios_table = {

gpio_backlight_gpios_table is unused?

> +       .dev_id = "gpio-backlight.0",
> +       .table = {
> +               GPIO_LOOKUP_IDX("sh7724_pfc", GPIO_PTR1, NULL, 0, GPIO_ACTIVE_HIGH);
> +               { }
> +       },
> +};
> +
> +static struct property_entry gpio_backlight_properties[] = {

const

> +       PROPERTY_ENTRY_BOOL("default-on"),
> +       { }
>  };
>
>  static struct platform_device gpio_backlight_device = {
>         .name = "gpio-backlight",
> -       .dev = {
> -               .platform_data = &gpio_backlight_data,
> -       },
>  };
>
>  /* CEU0 */
> @@ -1436,6 +1441,8 @@ static int __init arch_setup(void)
>                 return error;
>
>         if (use_backlight) {
> +               device_add_properties(&gpio_backlight_device.dev,
> +                                     gpio_backlight_properties);
>                 error = platform_device_add(&gpio_backlight_device);
>                 if (error)
>                         pr_warn("%s: failed to register backlight: %d\n",

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jacopo Mondi March 16, 2018, 10:08 a.m. UTC | #2
Hi Dmitry,

On Thu, Mar 15, 2018 at 03:42:01PM -0700, Dmitry Torokhov wrote:
> Instead of backlight legacy platform data, let's switch to using device
> properties and GPIO lookup tables.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
>  arch/sh/boards/mach-ecovec24/setup.c | 23 +++++++++++++++--------
>  1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
> index 67633d2d42390..ad3d48b3ead19 100644
> --- a/arch/sh/boards/mach-ecovec24/setup.c
> +++ b/arch/sh/boards/mach-ecovec24/setup.c
> @@ -11,11 +11,13 @@
>  #include <linux/init.h>
>  #include <linux/device.h>
>  #include <linux/platform_device.h>
> +#include <linux/property.h>
>  #include <linux/mmc/host.h>
>  #include <linux/mmc/sh_mmcif.h>
>  #include <linux/mtd/physmap.h>
>  #include <linux/mfd/tmio.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/machine.h>
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
>  #include <linux/delay.h>
> @@ -30,7 +32,6 @@
>  #include <linux/spi/mmc_spi.h>
>  #include <linux/input.h>
>  #include <linux/input/sh_keysc.h>
> -#include <linux/platform_data/gpio_backlight.h>
>  #include <linux/sh_eth.h>
>  #include <linux/sh_intc.h>
>  #include <linux/videodev2.h>
> @@ -367,17 +368,21 @@ static struct platform_device lcdc_device = {
>  	},
>  };
>
> -static struct gpio_backlight_platform_data gpio_backlight_data = {
> -	.gpio = GPIO_PTR1,
> -	.def_value = 1,
> -	.name = "backlight",
> +static struct gpiod_lookup_table gpio_backlight_gpios_table = {
> +	.dev_id = "gpio-backlight.0",
> +	.table = {
> +		GPIO_LOOKUP_IDX("sh7724_pfc", GPIO_PTR1, NULL, 0, GPIO_ACTIVE_HIGH);
> +		{ }

I understand this is an RFC, but this bit does not even compile.

../arch/sh/boards/mach-ecovec24/setup.c:374:70: error: expected '}'
before ';' token

Thanks
   j

> +	},
> +};
> +
> +static struct property_entry gpio_backlight_properties[] = {
> +	PROPERTY_ENTRY_BOOL("default-on"),
> +	{ }
>  };
>
>  static struct platform_device gpio_backlight_device = {
>  	.name = "gpio-backlight",
> -	.dev = {
> -		.platform_data = &gpio_backlight_data,
> -	},
>  };
>
>  /* CEU0 */
> @@ -1436,6 +1441,8 @@ static int __init arch_setup(void)
>  		return error;
>
>  	if (use_backlight) {
> +		device_add_properties(&gpio_backlight_device.dev,
> +				      gpio_backlight_properties);
>  		error = platform_device_add(&gpio_backlight_device);
>  		if (error)
>  			pr_warn("%s: failed to register backlight: %d\n",
> --
> 2.16.2.804.g6dcf76e118-goog
>
Dmitry Torokhov March 16, 2018, 11:40 p.m. UTC | #3
On Fri, Mar 16, 2018 at 09:50:21AM +0100, Geert Uytterhoeven wrote:
> Hi Dmitry,
> 
> On Thu, Mar 15, 2018 at 11:42 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > Instead of backlight legacy platform data, let's switch to using device
> > properties and GPIO lookup tables.
> >
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> Thanks for your patch!
> 
> > --- a/arch/sh/boards/mach-ecovec24/setup.c
> > +++ b/arch/sh/boards/mach-ecovec24/setup.c
> 
> > @@ -367,17 +368,21 @@ static struct platform_device lcdc_device = {
> >         },
> >  };
> >
> > -static struct gpio_backlight_platform_data gpio_backlight_data = {
> > -       .gpio = GPIO_PTR1,
> > -       .def_value = 1,
> > -       .name = "backlight",
> > +static struct gpiod_lookup_table gpio_backlight_gpios_table = {
> 
> gpio_backlight_gpios_table is unused?

There was supposed to be gpiod_add_lookup_table() that I lost as I was
reshuffling and reshuffling the patches.

> 
> > +       .dev_id = "gpio-backlight.0",
> > +       .table = {
> > +               GPIO_LOOKUP_IDX("sh7724_pfc", GPIO_PTR1, NULL, 0, GPIO_ACTIVE_HIGH);
> > +               { }
> > +       },
> > +};
> > +
> > +static struct property_entry gpio_backlight_properties[] = {
> 
> const

OK.

> 
> > +       PROPERTY_ENTRY_BOOL("default-on"),
> > +       { }
> >  };
> >
> >  static struct platform_device gpio_backlight_device = {
> >         .name = "gpio-backlight",
> > -       .dev = {
> > -               .platform_data = &gpio_backlight_data,
> > -       },
> >  };
> >
> >  /* CEU0 */
> > @@ -1436,6 +1441,8 @@ static int __init arch_setup(void)
> >                 return error;
> >
> >         if (use_backlight) {
> > +               device_add_properties(&gpio_backlight_device.dev,
> > +                                     gpio_backlight_properties);
> >                 error = platform_device_add(&gpio_backlight_device);
> >                 if (error)
> >                         pr_warn("%s: failed to register backlight: %d\n",
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
diff mbox

Patch

diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index 67633d2d42390..ad3d48b3ead19 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -11,11 +11,13 @@ 
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/mmc/host.h>
 #include <linux/mmc/sh_mmcif.h>
 #include <linux/mtd/physmap.h>
 #include <linux/mfd/tmio.h>
 #include <linux/gpio.h>
+#include <linux/gpio/machine.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/delay.h>
@@ -30,7 +32,6 @@ 
 #include <linux/spi/mmc_spi.h>
 #include <linux/input.h>
 #include <linux/input/sh_keysc.h>
-#include <linux/platform_data/gpio_backlight.h>
 #include <linux/sh_eth.h>
 #include <linux/sh_intc.h>
 #include <linux/videodev2.h>
@@ -367,17 +368,21 @@  static struct platform_device lcdc_device = {
 	},
 };
 
-static struct gpio_backlight_platform_data gpio_backlight_data = {
-	.gpio = GPIO_PTR1,
-	.def_value = 1,
-	.name = "backlight",
+static struct gpiod_lookup_table gpio_backlight_gpios_table = {
+	.dev_id = "gpio-backlight.0",
+	.table = {
+		GPIO_LOOKUP_IDX("sh7724_pfc", GPIO_PTR1, NULL, 0, GPIO_ACTIVE_HIGH);
+		{ }
+	},
+};
+
+static struct property_entry gpio_backlight_properties[] = {
+	PROPERTY_ENTRY_BOOL("default-on"),
+	{ }
 };
 
 static struct platform_device gpio_backlight_device = {
 	.name = "gpio-backlight",
-	.dev = {
-		.platform_data = &gpio_backlight_data,
-	},
 };
 
 /* CEU0 */
@@ -1436,6 +1441,8 @@  static int __init arch_setup(void)
 		return error;
 
 	if (use_backlight) {
+		device_add_properties(&gpio_backlight_device.dev,
+				      gpio_backlight_properties);
 		error = platform_device_add(&gpio_backlight_device);
 		if (error)
 			pr_warn("%s: failed to register backlight: %d\n",