From: "Jingoo Han" <jingoohan1@gmail.com>
To: 'Daniel Thompson' <daniel.thompson@linaro.org>,
'Enric Balletbo i Serra' <enric.balletbo@collabora.com>,
'Thierry Reding' <thierry.reding@gmail.com>,
'Lee Jones' <lee.jones@linaro.org>,
'Bartlomiej Zolnierkiewicz' <b.zolnierkie@samsung.com>,
'Rob Herring' <robh+dt@kernel.org>, 'Pavel Machek' <pavel@ucw.cz>,
'Richard Purdie' <rpurdie@rpsys.net>,
'Jacek Anaszewski' <jacek.anaszewski@gmail.com>,
'Heiko Stuebner' <heiko@sntech.de>
Cc: linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org, groeck@chromium.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v4 3/5] pwm-backlight: add support for PWM delays proprieties.
Date: Wed, 26 Jul 2017 17:01:53 +0000 [thread overview]
Message-ID: <000001d30630$e2a3d160$a7eb7420$@gmail.com> (raw)
In-Reply-To: <0e2d4f9b-0f27-3793-0c27-2a2df5c32cf0@linaro.org>
On Monday, July 24, 2017 11:22 AM, Daniel Thompson wrote:
> On 21/07/17 11:48, Enric Balletbo i Serra wrote:
> > Some panels (i.e. N116BGE-L41), in their power sequence specifications,
> > request a delay between set the PWM signal and enable the backlight and
> > between clear the PWM signal and disable the backlight. Add support for
> > the new post-pwm-on-delay-ms and pwm-off-delay-ms proprieties to meet
> > the timings.
> >
> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
>
> Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
Best regards,
Jingoo Han
>
>
> > ---
> > Changes since v3:
> > - Use two named members instead of pwm_delay[] (Daniel and Pavel)
> > - Use msleep instead of usleep_range. (Pavel)
> > Changes since v2:
> > - Move the pwm/enable sequence to another patch (Thierry Reding)
> > Changes since v1:
> > - As suggested by Daniel Thompson
> > - Do not assume power-on delay and power-off delay will be the same
> > - Move the check of dt property to the parse dt function.
> >
> > drivers/video/backlight/pwm_bl.c | 19 +++++++++++++++++++
> > include/linux/pwm_backlight.h | 2 ++
> > 2 files changed, 21 insertions(+)
> >
> > diff --git a/drivers/video/backlight/pwm_bl.c
> b/drivers/video/backlight/pwm_bl.c
> > index 909a686..6cf6109 100644
> > --- a/drivers/video/backlight/pwm_bl.c
> > +++ b/drivers/video/backlight/pwm_bl.c
> > @@ -10,6 +10,7 @@
> > * published by the Free Software Foundation.
> > */
> >
> > +#include <linux/delay.h>
> > #include <linux/gpio/consumer.h>
> > #include <linux/gpio.h>
> > #include <linux/module.h>
> > @@ -35,6 +36,8 @@ struct pwm_bl_data {
> > struct gpio_desc *enable_gpio;
> > unsigned int scale;
> > bool legacy;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > int (*notify)(struct device *,
> > int brightness);
> > void (*notify_after)(struct device *,
> > @@ -56,6 +59,9 @@ static void pwm_backlight_power_on(struct pwm_bl_data
> *pb, int brightness)
> >
> > pwm_enable(pb->pwm);
> >
> > + if (pb->post_pwm_on_delay)
> > + msleep(pb->post_pwm_on_delay);
> > +
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 1);
> >
> > @@ -70,6 +76,9 @@ static void pwm_backlight_power_off(struct pwm_bl_data
> *pb)
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 0);
> >
> > + if (pb->pwm_off_delay)
> > + msleep(pb->pwm_off_delay);
> > +
> > pwm_config(pb->pwm, 0, pb->period);
> > pwm_disable(pb->pwm);
> >
> > @@ -175,6 +184,14 @@ static int pwm_backlight_parse_dt(struct device
> *dev,
> > data->max_brightness--;
> > }
> >
> > + /*
> > + * These values are optional and set as 0 by default, the out
> values
> > + * are modified only if a valid u32 value can be decoded.
> > + */
> > + of_property_read_u32(node, "post-pwm-on-delay-ms",
> > + &data->post_pwm_on_delay);
> > + of_property_read_u32(node, "pwm-off-delay-ms", &data-
> >pwm_off_delay);
> > +
> > data->enable_gpio = -EINVAL;
> > return 0;
> > }
> > @@ -273,6 +290,8 @@ static int pwm_backlight_probe(struct
> platform_device *pdev)
> > pb->exit = data->exit;
> > pb->dev = &pdev->dev;
> > pb->enabled = false;
> > + pb->post_pwm_on_delay = data->post_pwm_on_delay;
> > + pb->pwm_off_delay = data->pwm_off_delay;
> >
> > pb->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
> > GPIOD_ASIS);
> > diff --git a/include/linux/pwm_backlight.h
> b/include/linux/pwm_backlight.h
> > index efdd922..62f59c4 100644
> > --- a/include/linux/pwm_backlight.h
> > +++ b/include/linux/pwm_backlight.h
> > @@ -13,6 +13,8 @@ struct platform_pwm_backlight_data {
> > unsigned int lth_brightness;
> > unsigned int pwm_period_ns;
> > unsigned int *levels;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > /* TODO remove once all users are switched to gpiod_* API */
> > int enable_gpio;
> > int (*init)(struct device *dev);
> >
WARNING: multiple messages have this Message-ID (diff)
From: "Jingoo Han" <jingoohan1@gmail.com>
To: 'Daniel Thompson' <daniel.thompson@linaro.org>,
'Enric Balletbo i Serra' <enric.balletbo@collabora.com>,
'Thierry Reding' <thierry.reding@gmail.com>,
'Lee Jones' <lee.jones@linaro.org>,
'Bartlomiej Zolnierkiewicz' <b.zolnierkie@samsung.com>,
'Rob Herring' <robh+dt@kernel.org>, 'Pavel Machek' <pavel@ucw.cz>,
'Richard Purdie' <rpurdie@rpsys.net>,
'Jacek Anaszewski' <jacek.anaszewski@gmail.com>,
'Heiko Stuebner' <heiko@sntech.de>
Cc: linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org, groeck@chromium.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v4 3/5] pwm-backlight: add support for PWM delays proprieties.
Date: Wed, 26 Jul 2017 13:01:53 -0400 [thread overview]
Message-ID: <000001d30630$e2a3d160$a7eb7420$@gmail.com> (raw)
In-Reply-To: <0e2d4f9b-0f27-3793-0c27-2a2df5c32cf0@linaro.org>
On Monday, July 24, 2017 11:22 AM, Daniel Thompson wrote:
> On 21/07/17 11:48, Enric Balletbo i Serra wrote:
> > Some panels (i.e. N116BGE-L41), in their power sequence specifications,
> > request a delay between set the PWM signal and enable the backlight and
> > between clear the PWM signal and disable the backlight. Add support for
> > the new post-pwm-on-delay-ms and pwm-off-delay-ms proprieties to meet
> > the timings.
> >
> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
>
> Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
Best regards,
Jingoo Han
>
>
> > ---
> > Changes since v3:
> > - Use two named members instead of pwm_delay[] (Daniel and Pavel)
> > - Use msleep instead of usleep_range. (Pavel)
> > Changes since v2:
> > - Move the pwm/enable sequence to another patch (Thierry Reding)
> > Changes since v1:
> > - As suggested by Daniel Thompson
> > - Do not assume power-on delay and power-off delay will be the same
> > - Move the check of dt property to the parse dt function.
> >
> > drivers/video/backlight/pwm_bl.c | 19 +++++++++++++++++++
> > include/linux/pwm_backlight.h | 2 ++
> > 2 files changed, 21 insertions(+)
> >
> > diff --git a/drivers/video/backlight/pwm_bl.c
> b/drivers/video/backlight/pwm_bl.c
> > index 909a686..6cf6109 100644
> > --- a/drivers/video/backlight/pwm_bl.c
> > +++ b/drivers/video/backlight/pwm_bl.c
> > @@ -10,6 +10,7 @@
> > * published by the Free Software Foundation.
> > */
> >
> > +#include <linux/delay.h>
> > #include <linux/gpio/consumer.h>
> > #include <linux/gpio.h>
> > #include <linux/module.h>
> > @@ -35,6 +36,8 @@ struct pwm_bl_data {
> > struct gpio_desc *enable_gpio;
> > unsigned int scale;
> > bool legacy;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > int (*notify)(struct device *,
> > int brightness);
> > void (*notify_after)(struct device *,
> > @@ -56,6 +59,9 @@ static void pwm_backlight_power_on(struct pwm_bl_data
> *pb, int brightness)
> >
> > pwm_enable(pb->pwm);
> >
> > + if (pb->post_pwm_on_delay)
> > + msleep(pb->post_pwm_on_delay);
> > +
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 1);
> >
> > @@ -70,6 +76,9 @@ static void pwm_backlight_power_off(struct pwm_bl_data
> *pb)
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 0);
> >
> > + if (pb->pwm_off_delay)
> > + msleep(pb->pwm_off_delay);
> > +
> > pwm_config(pb->pwm, 0, pb->period);
> > pwm_disable(pb->pwm);
> >
> > @@ -175,6 +184,14 @@ static int pwm_backlight_parse_dt(struct device
> *dev,
> > data->max_brightness--;
> > }
> >
> > + /*
> > + * These values are optional and set as 0 by default, the out
> values
> > + * are modified only if a valid u32 value can be decoded.
> > + */
> > + of_property_read_u32(node, "post-pwm-on-delay-ms",
> > + &data->post_pwm_on_delay);
> > + of_property_read_u32(node, "pwm-off-delay-ms", &data-
> >pwm_off_delay);
> > +
> > data->enable_gpio = -EINVAL;
> > return 0;
> > }
> > @@ -273,6 +290,8 @@ static int pwm_backlight_probe(struct
> platform_device *pdev)
> > pb->exit = data->exit;
> > pb->dev = &pdev->dev;
> > pb->enabled = false;
> > + pb->post_pwm_on_delay = data->post_pwm_on_delay;
> > + pb->pwm_off_delay = data->pwm_off_delay;
> >
> > pb->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
> > GPIOD_ASIS);
> > diff --git a/include/linux/pwm_backlight.h
> b/include/linux/pwm_backlight.h
> > index efdd922..62f59c4 100644
> > --- a/include/linux/pwm_backlight.h
> > +++ b/include/linux/pwm_backlight.h
> > @@ -13,6 +13,8 @@ struct platform_pwm_backlight_data {
> > unsigned int lth_brightness;
> > unsigned int pwm_period_ns;
> > unsigned int *levels;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > /* TODO remove once all users are switched to gpiod_* API */
> > int enable_gpio;
> > int (*init)(struct device *dev);
> >
WARNING: multiple messages have this Message-ID (diff)
From: "Jingoo Han" <jingoohan1@gmail.com>
To: "'Daniel Thompson'" <daniel.thompson@linaro.org>,
"'Enric Balletbo i Serra'" <enric.balletbo@collabora.com>,
"'Thierry Reding'" <thierry.reding@gmail.com>,
"'Lee Jones'" <lee.jones@linaro.org>,
"'Bartlomiej Zolnierkiewicz'" <b.zolnierkie@samsung.com>,
"'Rob Herring'" <robh+dt@kernel.org>,
"'Pavel Machek'" <pavel@ucw.cz>,
"'Richard Purdie'" <rpurdie@rpsys.net>,
"'Jacek Anaszewski'" <jacek.anaszewski@gmail.com>,
"'Heiko Stuebner'" <heiko@sntech.de>
Cc: <linux-pwm@vger.kernel.org>, <linux-fbdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <groeck@chromium.org>,
<linux-rockchip@lists.infradead.org>
Subject: Re: [PATCH v4 3/5] pwm-backlight: add support for PWM delays proprieties.
Date: Wed, 26 Jul 2017 13:01:53 -0400 [thread overview]
Message-ID: <000001d30630$e2a3d160$a7eb7420$@gmail.com> (raw)
In-Reply-To: <0e2d4f9b-0f27-3793-0c27-2a2df5c32cf0@linaro.org>
On Monday, July 24, 2017 11:22 AM, Daniel Thompson wrote:
> On 21/07/17 11:48, Enric Balletbo i Serra wrote:
> > Some panels (i.e. N116BGE-L41), in their power sequence specifications,
> > request a delay between set the PWM signal and enable the backlight and
> > between clear the PWM signal and disable the backlight. Add support for
> > the new post-pwm-on-delay-ms and pwm-off-delay-ms proprieties to meet
> > the timings.
> >
> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
>
> Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
Best regards,
Jingoo Han
>
>
> > ---
> > Changes since v3:
> > - Use two named members instead of pwm_delay[] (Daniel and Pavel)
> > - Use msleep instead of usleep_range. (Pavel)
> > Changes since v2:
> > - Move the pwm/enable sequence to another patch (Thierry Reding)
> > Changes since v1:
> > - As suggested by Daniel Thompson
> > - Do not assume power-on delay and power-off delay will be the same
> > - Move the check of dt property to the parse dt function.
> >
> > drivers/video/backlight/pwm_bl.c | 19 +++++++++++++++++++
> > include/linux/pwm_backlight.h | 2 ++
> > 2 files changed, 21 insertions(+)
> >
> > diff --git a/drivers/video/backlight/pwm_bl.c
> b/drivers/video/backlight/pwm_bl.c
> > index 909a686..6cf6109 100644
> > --- a/drivers/video/backlight/pwm_bl.c
> > +++ b/drivers/video/backlight/pwm_bl.c
> > @@ -10,6 +10,7 @@
> > * published by the Free Software Foundation.
> > */
> >
> > +#include <linux/delay.h>
> > #include <linux/gpio/consumer.h>
> > #include <linux/gpio.h>
> > #include <linux/module.h>
> > @@ -35,6 +36,8 @@ struct pwm_bl_data {
> > struct gpio_desc *enable_gpio;
> > unsigned int scale;
> > bool legacy;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > int (*notify)(struct device *,
> > int brightness);
> > void (*notify_after)(struct device *,
> > @@ -56,6 +59,9 @@ static void pwm_backlight_power_on(struct pwm_bl_data
> *pb, int brightness)
> >
> > pwm_enable(pb->pwm);
> >
> > + if (pb->post_pwm_on_delay)
> > + msleep(pb->post_pwm_on_delay);
> > +
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 1);
> >
> > @@ -70,6 +76,9 @@ static void pwm_backlight_power_off(struct pwm_bl_data
> *pb)
> > if (pb->enable_gpio)
> > gpiod_set_value_cansleep(pb->enable_gpio, 0);
> >
> > + if (pb->pwm_off_delay)
> > + msleep(pb->pwm_off_delay);
> > +
> > pwm_config(pb->pwm, 0, pb->period);
> > pwm_disable(pb->pwm);
> >
> > @@ -175,6 +184,14 @@ static int pwm_backlight_parse_dt(struct device
> *dev,
> > data->max_brightness--;
> > }
> >
> > + /*
> > + * These values are optional and set as 0 by default, the out
> values
> > + * are modified only if a valid u32 value can be decoded.
> > + */
> > + of_property_read_u32(node, "post-pwm-on-delay-ms",
> > + &data->post_pwm_on_delay);
> > + of_property_read_u32(node, "pwm-off-delay-ms", &data-
> >pwm_off_delay);
> > +
> > data->enable_gpio = -EINVAL;
> > return 0;
> > }
> > @@ -273,6 +290,8 @@ static int pwm_backlight_probe(struct
> platform_device *pdev)
> > pb->exit = data->exit;
> > pb->dev = &pdev->dev;
> > pb->enabled = false;
> > + pb->post_pwm_on_delay = data->post_pwm_on_delay;
> > + pb->pwm_off_delay = data->pwm_off_delay;
> >
> > pb->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
> > GPIOD_ASIS);
> > diff --git a/include/linux/pwm_backlight.h
> b/include/linux/pwm_backlight.h
> > index efdd922..62f59c4 100644
> > --- a/include/linux/pwm_backlight.h
> > +++ b/include/linux/pwm_backlight.h
> > @@ -13,6 +13,8 @@ struct platform_pwm_backlight_data {
> > unsigned int lth_brightness;
> > unsigned int pwm_period_ns;
> > unsigned int *levels;
> > + unsigned int post_pwm_on_delay;
> > + unsigned int pwm_off_delay;
> > /* TODO remove once all users are switched to gpiod_* API */
> > int enable_gpio;
> > int (*init)(struct device *dev);
> >
next prev parent reply other threads:[~2017-07-26 17:01 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-21 10:48 [PATCH v4 1/5] pwm-backlight: enable/disable the PWM before/after LCD enable toggle Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
[not found] ` <20170721104813.5389-1-enric.balletbo-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2017-07-21 10:48 ` [PATCH v4 2/5] dt-bindings: pwm-backlight: add PWM delay proprieties Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
[not found] ` <20170721104813.5389-2-enric.balletbo-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2017-07-24 15:21 ` Daniel Thompson
2017-07-24 15:21 ` Daniel Thompson
2017-07-24 15:21 ` Daniel Thompson
2017-07-24 19:19 ` Pavel Machek
2017-07-24 19:19 ` Pavel Machek
2017-07-21 10:48 ` [PATCH v4 3/5] pwm-backlight: add support for PWM delays proprieties Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
2017-07-21 11:21 ` Pavel Machek
2017-07-21 11:21 ` Pavel Machek
2017-07-24 15:22 ` Daniel Thompson
2017-07-24 15:22 ` Daniel Thompson
2017-07-26 17:01 ` Jingoo Han [this message]
2017-07-26 17:01 ` Jingoo Han
2017-07-26 17:01 ` Jingoo Han
2017-12-01 10:39 ` Enric Balletbo Serra
2017-12-01 10:39 ` Enric Balletbo Serra
2017-12-01 10:54 ` Lee Jones
2017-12-01 10:54 ` Lee Jones
2017-12-01 10:56 ` Enric Balletbo Serra
2017-12-01 10:56 ` Enric Balletbo Serra
2017-07-21 10:48 ` [PATCH v4 4/5] ARM: dts: rockchip: set PWM delay backlight settings for Veyron Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
2017-07-21 10:48 ` [PATCH v4 5/5] ARM: dts: rockchip: set PWM delay backlight settings for Minnie Enric Balletbo i Serra
2017-07-21 10:48 ` Enric Balletbo i Serra
2017-07-24 15:13 ` [PATCH v4 1/5] pwm-backlight: enable/disable the PWM before/after LCD enable toggle Daniel Thompson
2017-07-24 15:13 ` Daniel Thompson
2017-07-25 17:49 ` Jingoo Han
2017-07-25 17:49 ` Jingoo Han
2017-07-25 17:49 ` Jingoo Han
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000001d30630$e2a3d160$a7eb7420$@gmail.com' \
--to=jingoohan1@gmail.com \
--cc=b.zolnierkie@samsung.com \
--cc=daniel.thompson@linaro.org \
--cc=enric.balletbo@collabora.com \
--cc=groeck@chromium.org \
--cc=heiko@sntech.de \
--cc=jacek.anaszewski@gmail.com \
--cc=lee.jones@linaro.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=pavel@ucw.cz \
--cc=robh+dt@kernel.org \
--cc=rpurdie@rpsys.net \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.