From: Markus Pargmann <mpa-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
To: Laurent Pinchart
<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
Cc: Hans Verkuil
<hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 1/3] [media] mt9v032: Add reset and standby gpios
Date: Mon, 09 Nov 2015 16:33:03 +0100 [thread overview]
Message-ID: <5144598.EqybrDukyg@adelgunde> (raw)
In-Reply-To: <1763974.WDKlRvPG0G@avalon>
[-- Attachment #1: Type: text/plain, Size: 4641 bytes --]
Hi,
On Monday 09 November 2015 14:28:56 Laurent Pinchart wrote:
> Hi Markus,
>
> Thank you for the patch.
>
> On Friday 06 November 2015 14:13:43 Markus Pargmann wrote:
> > Add optional reset and standby gpios. The reset gpio is used to reset
> > the chip in power_on().
> >
> > The standby gpio is not used currently. It is just unset, so the chip is
> > not in standby.
>
> We could use a gpio hog for this, but given that the standby signal should
> eventually get used, and given that specifying it in DT is a good hardware
> description, that looks good to me.
>
> > Signed-off-by: Markus Pargmann <mpa-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > Reviewed-by: Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > ---
> > .../devicetree/bindings/media/i2c/mt9v032.txt | 2 ++
> > drivers/media/i2c/mt9v032.c | 23 +++++++++++++++++++
> > 2 files changed, 25 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > b/Documentation/devicetree/bindings/media/i2c/mt9v032.txt index
> > 202565313e82..100f0ae43269 100644
> > --- a/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > +++ b/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > @@ -20,6 +20,8 @@ Optional Properties:
> >
> > - link-frequencies: List of allowed link frequencies in Hz. Each frequency
> > is expressed as a 64-bit big-endian integer.
> > +- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
> > +- standby-gpios: GPIO handle which is connected to the standby pin of the
> > chip.
> >
> > For further reading on port node refer to
> > Documentation/devicetree/bindings/media/video-interfaces.txt.
> > diff --git a/drivers/media/i2c/mt9v032.c b/drivers/media/i2c/mt9v032.c
> > index a68ce94ee097..4aefde9634f5 100644
> > --- a/drivers/media/i2c/mt9v032.c
> > +++ b/drivers/media/i2c/mt9v032.c
> > @@ -24,6 +24,7 @@
> > #include <linux/videodev2.h>
> > #include <linux/v4l2-mediabus.h>
> > #include <linux/module.h>
> > +#include <linux/gpio/consumer.h>
>
> module.h escaped my vigilance, but let's try to keep headers alphabetically
> sorted.
> >
> > #include <media/mt9v032.h>
> > #include <media/v4l2-ctrls.h>
> > @@ -251,6 +252,8 @@ struct mt9v032 {
> >
> > struct regmap *regmap;
> > struct clk *clk;
> > + struct gpio_desc *reset_gpio;
> > + struct gpio_desc *standby_gpio;
> >
> > struct mt9v032_platform_data *pdata;
> > const struct mt9v032_model_info *model;
> > @@ -312,16 +315,26 @@ static int mt9v032_power_on(struct mt9v032 *mt9v032)
> > struct regmap *map = mt9v032->regmap;
> > int ret;
> >
> > + gpiod_set_value_cansleep(mt9v032->reset_gpio, 1);
> > +
> > ret = clk_set_rate(mt9v032->clk, mt9v032->sysclk);
> > if (ret < 0)
> > return ret;
> >
> > + /* system clock has to be enabled before releasing the reset */
>
> Nitpicking, the driver capitalizes the first letter of comments.
>
> > ret = clk_prepare_enable(mt9v032->clk);
> > if (ret)
> > return ret;
> >
> > udelay(1);
> >
> > + gpiod_set_value_cansleep(mt9v032->reset_gpio, 0);
> > +
> > + /*
> > + * After releasing reset, it can take up to 1us until the chip is done
> > + */
> > + udelay(1);
> > +
>
> The delay isn't necessary if there's no reset GPIO. How about
>
> if (mt9v032->reset_gpio) {
> gpiod_set_value_cansleep(mt9v032->reset_gpio, 0);
>
> /* After releasing reset, it can take up to 1us until the
> * chip is done.
> */
> udelay(1);
> }
>
> And, according to the datasheet, the delay is 10 SYSCLK periods. 1µs should be
> safe as the minimum SYSCLK frequency is 13 MHz. I'd still mention it in a
> comment, maybe as
>
> /* After releasing reset we need to wait 10 clock cycles
> * before accessing the sensor over I2C. As the minimum SYSCLK
> * frequency is 13MHz, waiting 1µs will be enough in the worst
> * case.
> */
> udelay(1);
>
> If you're fine with these changes there's no need to resubmit the patch, I can
> fix it when applying it to my tree.
Thanks, I am fine with all your changes. But as there will be a v2 for the
other two patches I could as well send an updated version if you wish.
Thanks,
Markus
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Markus Pargmann <mpa@pengutronix.de>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Hans Verkuil <hans.verkuil@cisco.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
devicetree@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [PATCH 1/3] [media] mt9v032: Add reset and standby gpios
Date: Mon, 09 Nov 2015 16:33:03 +0100 [thread overview]
Message-ID: <5144598.EqybrDukyg@adelgunde> (raw)
In-Reply-To: <1763974.WDKlRvPG0G@avalon>
[-- Attachment #1: Type: text/plain, Size: 4591 bytes --]
Hi,
On Monday 09 November 2015 14:28:56 Laurent Pinchart wrote:
> Hi Markus,
>
> Thank you for the patch.
>
> On Friday 06 November 2015 14:13:43 Markus Pargmann wrote:
> > Add optional reset and standby gpios. The reset gpio is used to reset
> > the chip in power_on().
> >
> > The standby gpio is not used currently. It is just unset, so the chip is
> > not in standby.
>
> We could use a gpio hog for this, but given that the standby signal should
> eventually get used, and given that specifying it in DT is a good hardware
> description, that looks good to me.
>
> > Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
> > Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
> > ---
> > .../devicetree/bindings/media/i2c/mt9v032.txt | 2 ++
> > drivers/media/i2c/mt9v032.c | 23 +++++++++++++++++++
> > 2 files changed, 25 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > b/Documentation/devicetree/bindings/media/i2c/mt9v032.txt index
> > 202565313e82..100f0ae43269 100644
> > --- a/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > +++ b/Documentation/devicetree/bindings/media/i2c/mt9v032.txt
> > @@ -20,6 +20,8 @@ Optional Properties:
> >
> > - link-frequencies: List of allowed link frequencies in Hz. Each frequency
> > is expressed as a 64-bit big-endian integer.
> > +- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
> > +- standby-gpios: GPIO handle which is connected to the standby pin of the
> > chip.
> >
> > For further reading on port node refer to
> > Documentation/devicetree/bindings/media/video-interfaces.txt.
> > diff --git a/drivers/media/i2c/mt9v032.c b/drivers/media/i2c/mt9v032.c
> > index a68ce94ee097..4aefde9634f5 100644
> > --- a/drivers/media/i2c/mt9v032.c
> > +++ b/drivers/media/i2c/mt9v032.c
> > @@ -24,6 +24,7 @@
> > #include <linux/videodev2.h>
> > #include <linux/v4l2-mediabus.h>
> > #include <linux/module.h>
> > +#include <linux/gpio/consumer.h>
>
> module.h escaped my vigilance, but let's try to keep headers alphabetically
> sorted.
> >
> > #include <media/mt9v032.h>
> > #include <media/v4l2-ctrls.h>
> > @@ -251,6 +252,8 @@ struct mt9v032 {
> >
> > struct regmap *regmap;
> > struct clk *clk;
> > + struct gpio_desc *reset_gpio;
> > + struct gpio_desc *standby_gpio;
> >
> > struct mt9v032_platform_data *pdata;
> > const struct mt9v032_model_info *model;
> > @@ -312,16 +315,26 @@ static int mt9v032_power_on(struct mt9v032 *mt9v032)
> > struct regmap *map = mt9v032->regmap;
> > int ret;
> >
> > + gpiod_set_value_cansleep(mt9v032->reset_gpio, 1);
> > +
> > ret = clk_set_rate(mt9v032->clk, mt9v032->sysclk);
> > if (ret < 0)
> > return ret;
> >
> > + /* system clock has to be enabled before releasing the reset */
>
> Nitpicking, the driver capitalizes the first letter of comments.
>
> > ret = clk_prepare_enable(mt9v032->clk);
> > if (ret)
> > return ret;
> >
> > udelay(1);
> >
> > + gpiod_set_value_cansleep(mt9v032->reset_gpio, 0);
> > +
> > + /*
> > + * After releasing reset, it can take up to 1us until the chip is done
> > + */
> > + udelay(1);
> > +
>
> The delay isn't necessary if there's no reset GPIO. How about
>
> if (mt9v032->reset_gpio) {
> gpiod_set_value_cansleep(mt9v032->reset_gpio, 0);
>
> /* After releasing reset, it can take up to 1us until the
> * chip is done.
> */
> udelay(1);
> }
>
> And, according to the datasheet, the delay is 10 SYSCLK periods. 1µs should be
> safe as the minimum SYSCLK frequency is 13 MHz. I'd still mention it in a
> comment, maybe as
>
> /* After releasing reset we need to wait 10 clock cycles
> * before accessing the sensor over I2C. As the minimum SYSCLK
> * frequency is 13MHz, waiting 1µs will be enough in the worst
> * case.
> */
> udelay(1);
>
> If you're fine with these changes there's no need to resubmit the patch, I can
> fix it when applying it to my tree.
Thanks, I am fine with all your changes. But as there will be a v2 for the
other two patches I could as well send an updated version if you wish.
Thanks,
Markus
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-11-09 15:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-06 13:13 [PATCH 1/3] [media] mt9v032: Add reset and standby gpios Markus Pargmann
2015-11-06 13:13 ` Markus Pargmann
[not found] ` <1446815625-18413-1-git-send-email-mpa-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-11-06 13:13 ` [PATCH 2/3] [media] mt9v032: Do not unset master_mode Markus Pargmann
2015-11-06 13:13 ` Markus Pargmann
2015-11-09 12:46 ` Laurent Pinchart
2015-11-09 13:32 ` Markus Pargmann
2015-11-06 13:13 ` [PATCH 3/3] [media] mt9v032: Add V4L2 controls for AEC and AGC Markus Pargmann
2015-11-09 13:22 ` Laurent Pinchart
2015-11-09 15:25 ` Markus Pargmann
2015-11-16 10:36 ` Markus Pargmann
2015-11-06 20:28 ` [PATCH 1/3] [media] mt9v032: Add reset and standby gpios Rob Herring
2015-11-09 12:28 ` Laurent Pinchart
2015-11-09 15:33 ` Markus Pargmann [this message]
2015-11-09 15:33 ` Markus Pargmann
2015-11-09 16:15 ` Laurent Pinchart
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=5144598.EqybrDukyg@adelgunde \
--to=mpa-bicnvbalz9megne8c9+irq@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
--cc=laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
/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.