From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: dongchun.zhu@mediatek.com
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
drinkcat@chromium.org, srv_heupstream@mediatek.com,
sam.hung@mediatek.com, shengnan.wang@mediatek.com,
tfiga@chromium.org, sj.huang@mediatek.com, robh+dt@kernel.org,
linux-mediatek@lists.infradead.org, sakari.ailus@linux.intel.com,
matthias.bgg@gmail.com, bingbu.cao@intel.com, mchehab@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [V2, 2/2] media: i2c: Add DW9768 VCM driver
Date: Thu, 5 Sep 2019 13:26:33 +0300 [thread overview]
Message-ID: <20190905102633.GC2680@smile.fi.intel.com> (raw)
In-Reply-To: <20190905072142.14606-3-dongchun.zhu@mediatek.com>
On Thu, Sep 05, 2019 at 03:21:42PM +0800, dongchun.zhu@mediatek.com wrote:
> From: Dongchun Zhu <dongchun.zhu@mediatek.com>
>
> This patch adds a V4L2 sub-device driver for DW9768 lens voice coil,
> and provides control to set the desired focus.
>
> The DW9768 is a 10 bit DAC with 100mA output current sink capability
> from Dongwoon, designed for linear control of voice coil motor,
> and controlled via I2C serial interface.
> Signed-off-by: Dongchun Zhu <dongchun.zhu@mediatek.com>
> ---
> MAINTAINERS | 1 +
This should go to the same patch, where you introduce a record in the
MAINTAINERS database.
> +#define DW9768_SET_POSITION_ADDR 0x03
Indentation issue.
> +static struct regval_list dw9768_init_regs[] = {
> + {0x02, 0x02},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x06, 0x41},
> + {0x07, 0x39},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static struct regval_list dw9768_release_regs[] = {
> + {0x02, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x01, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static int dw9768_write_smbus(struct dw9768 *dw9768, unsigned char reg,
> + unsigned char value)
> +{
> + struct i2c_client *client = v4l2_get_subdevdata(&dw9768->sd);
> + int ret;
> +
> + if (reg == DW9768_CMD_DELAY && value == DW9768_CMD_DELAY)
Indentation issue.
But see other's comments.
> + usleep_range(DW9768_CTRL_DELAY_US,
> + DW9768_CTRL_DELAY_US + 100);
> + else
This needs an explanation.
> + ret = i2c_smbus_write_byte_data(client, reg, value);
> + return ret;
> +}
I'm wondering if we can benefit from regmap I²C API in this driver.
> +static int __maybe_unused dw9768_vcm_suspend(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
isn't is simple dev_get_drvdata() ?
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_off(dw9768);
> +}
> +
> +static int __maybe_unused dw9768_vcm_resume(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
Ditto.
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_on(dw9768);
> +}
> +static const struct i2c_device_id dw9768_id_table[] = {
> + { DW9768_NAME, 0 },
> + { },
No comma.
> +};
> +static const struct of_device_id dw9768_of_table[] = {
> + { .compatible = "dongwoon,dw9768" },
> + { },
Ditto.
> +};
--
With Best Regards,
Andy Shevchenko
WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: dongchun.zhu@mediatek.com
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
drinkcat@chromium.org, srv_heupstream@mediatek.com,
sam.hung@mediatek.com, shengnan.wang@mediatek.com,
tfiga@chromium.org, sj.huang@mediatek.com, robh+dt@kernel.org,
linux-mediatek@lists.infradead.org, sakari.ailus@linux.intel.com,
matthias.bgg@gmail.com, bingbu.cao@intel.com, mchehab@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [V2, 2/2] media: i2c: Add DW9768 VCM driver
Date: Thu, 5 Sep 2019 13:26:33 +0300 [thread overview]
Message-ID: <20190905102633.GC2680@smile.fi.intel.com> (raw)
In-Reply-To: <20190905072142.14606-3-dongchun.zhu@mediatek.com>
On Thu, Sep 05, 2019 at 03:21:42PM +0800, dongchun.zhu@mediatek.com wrote:
> From: Dongchun Zhu <dongchun.zhu@mediatek.com>
>
> This patch adds a V4L2 sub-device driver for DW9768 lens voice coil,
> and provides control to set the desired focus.
>
> The DW9768 is a 10 bit DAC with 100mA output current sink capability
> from Dongwoon, designed for linear control of voice coil motor,
> and controlled via I2C serial interface.
> Signed-off-by: Dongchun Zhu <dongchun.zhu@mediatek.com>
> ---
> MAINTAINERS | 1 +
This should go to the same patch, where you introduce a record in the
MAINTAINERS database.
> +#define DW9768_SET_POSITION_ADDR 0x03
Indentation issue.
> +static struct regval_list dw9768_init_regs[] = {
> + {0x02, 0x02},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x06, 0x41},
> + {0x07, 0x39},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static struct regval_list dw9768_release_regs[] = {
> + {0x02, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x01, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static int dw9768_write_smbus(struct dw9768 *dw9768, unsigned char reg,
> + unsigned char value)
> +{
> + struct i2c_client *client = v4l2_get_subdevdata(&dw9768->sd);
> + int ret;
> +
> + if (reg == DW9768_CMD_DELAY && value == DW9768_CMD_DELAY)
Indentation issue.
But see other's comments.
> + usleep_range(DW9768_CTRL_DELAY_US,
> + DW9768_CTRL_DELAY_US + 100);
> + else
This needs an explanation.
> + ret = i2c_smbus_write_byte_data(client, reg, value);
> + return ret;
> +}
I'm wondering if we can benefit from regmap I²C API in this driver.
> +static int __maybe_unused dw9768_vcm_suspend(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
isn't is simple dev_get_drvdata() ?
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_off(dw9768);
> +}
> +
> +static int __maybe_unused dw9768_vcm_resume(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
Ditto.
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_on(dw9768);
> +}
> +static const struct i2c_device_id dw9768_id_table[] = {
> + { DW9768_NAME, 0 },
> + { },
No comma.
> +};
> +static const struct of_device_id dw9768_of_table[] = {
> + { .compatible = "dongwoon,dw9768" },
> + { },
Ditto.
> +};
--
With Best Regards,
Andy Shevchenko
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: dongchun.zhu@mediatek.com
Cc: mchehab@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com,
sakari.ailus@linux.intel.com, drinkcat@chromium.org,
tfiga@chromium.org, matthias.bgg@gmail.com, bingbu.cao@intel.com,
srv_heupstream@mediatek.com, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, sj.huang@mediatek.com,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
sam.hung@mediatek.com, shengnan.wang@mediatek.com
Subject: Re: [V2, 2/2] media: i2c: Add DW9768 VCM driver
Date: Thu, 5 Sep 2019 13:26:33 +0300 [thread overview]
Message-ID: <20190905102633.GC2680@smile.fi.intel.com> (raw)
In-Reply-To: <20190905072142.14606-3-dongchun.zhu@mediatek.com>
On Thu, Sep 05, 2019 at 03:21:42PM +0800, dongchun.zhu@mediatek.com wrote:
> From: Dongchun Zhu <dongchun.zhu@mediatek.com>
>
> This patch adds a V4L2 sub-device driver for DW9768 lens voice coil,
> and provides control to set the desired focus.
>
> The DW9768 is a 10 bit DAC with 100mA output current sink capability
> from Dongwoon, designed for linear control of voice coil motor,
> and controlled via I2C serial interface.
> Signed-off-by: Dongchun Zhu <dongchun.zhu@mediatek.com>
> ---
> MAINTAINERS | 1 +
This should go to the same patch, where you introduce a record in the
MAINTAINERS database.
> +#define DW9768_SET_POSITION_ADDR 0x03
Indentation issue.
> +static struct regval_list dw9768_init_regs[] = {
> + {0x02, 0x02},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x06, 0x41},
> + {0x07, 0x39},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static struct regval_list dw9768_release_regs[] = {
> + {0x02, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> + {0x01, 0x00},
> + {DW9768_CMD_DELAY, DW9768_CMD_DELAY},
> +};
> +
> +static int dw9768_write_smbus(struct dw9768 *dw9768, unsigned char reg,
> + unsigned char value)
> +{
> + struct i2c_client *client = v4l2_get_subdevdata(&dw9768->sd);
> + int ret;
> +
> + if (reg == DW9768_CMD_DELAY && value == DW9768_CMD_DELAY)
Indentation issue.
But see other's comments.
> + usleep_range(DW9768_CTRL_DELAY_US,
> + DW9768_CTRL_DELAY_US + 100);
> + else
This needs an explanation.
> + ret = i2c_smbus_write_byte_data(client, reg, value);
> + return ret;
> +}
I'm wondering if we can benefit from regmap I²C API in this driver.
> +static int __maybe_unused dw9768_vcm_suspend(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
isn't is simple dev_get_drvdata() ?
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_off(dw9768);
> +}
> +
> +static int __maybe_unused dw9768_vcm_resume(struct device *dev)
> +{
> + struct i2c_client *client = to_i2c_client(dev);
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
Ditto.
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_on(dw9768);
> +}
> +static const struct i2c_device_id dw9768_id_table[] = {
> + { DW9768_NAME, 0 },
> + { },
No comma.
> +};
> +static const struct of_device_id dw9768_of_table[] = {
> + { .compatible = "dongwoon,dw9768" },
> + { },
Ditto.
> +};
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2019-09-05 10:26 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-05 7:21 [V2, 0/2] media: i2c: add support for DW9768 VCM driver dongchun.zhu-NuS5LvNUpcJWk0Htik3J/w
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 7:21 ` [V2, 1/2] media: i2c: dw9768: Add DT support and MAINTAINERS entry dongchun.zhu
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 10:14 ` Andy Shevchenko
2019-09-05 10:14 ` Andy Shevchenko
2019-09-05 10:14 ` Andy Shevchenko
2019-09-05 10:48 ` Sakari Ailus
2019-09-05 10:48 ` Sakari Ailus
2019-09-05 10:48 ` Sakari Ailus
2019-09-05 11:35 ` Andy Shevchenko
2019-09-05 11:35 ` Andy Shevchenko
2019-09-05 11:35 ` Andy Shevchenko
2019-09-05 11:49 ` Javier Martinez Canillas
2019-09-05 11:49 ` Javier Martinez Canillas
2019-09-05 11:49 ` Javier Martinez Canillas
2019-09-05 12:00 ` Sakari Ailus
2019-09-05 12:00 ` Sakari Ailus
2019-09-05 12:00 ` Sakari Ailus
2019-09-05 12:24 ` Andy Shevchenko
2019-09-05 12:24 ` Andy Shevchenko
2019-09-05 12:24 ` Andy Shevchenko
2019-09-17 20:47 ` Rob Herring
2019-09-17 20:47 ` Rob Herring
2019-09-17 20:47 ` Rob Herring
2019-09-05 7:21 ` [V2, 2/2] media: i2c: Add DW9768 VCM driver dongchun.zhu
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 7:21 ` dongchun.zhu
2019-09-05 8:21 ` Sakari Ailus
2019-09-05 8:21 ` Sakari Ailus
2019-09-05 8:21 ` Sakari Ailus
2019-09-05 10:19 ` Andy Shevchenko
2019-09-05 10:19 ` Andy Shevchenko
2019-09-05 10:19 ` Andy Shevchenko
2019-09-05 10:40 ` Sakari Ailus
2019-09-05 10:40 ` Sakari Ailus
2019-09-05 10:40 ` Sakari Ailus
2019-09-05 10:57 ` Javier Martinez Canillas
2019-09-05 10:57 ` Javier Martinez Canillas
2019-09-05 11:36 ` Andy Shevchenko
2019-09-05 11:36 ` Andy Shevchenko
2019-09-05 11:36 ` Andy Shevchenko
2019-09-05 8:28 ` Tomasz Figa
2019-09-05 8:28 ` Tomasz Figa
2019-09-05 8:28 ` Tomasz Figa
2019-09-05 10:26 ` Andy Shevchenko [this message]
2019-09-05 10:26 ` Andy Shevchenko
2019-09-05 10:26 ` Andy Shevchenko
[not found] ` <e8b59857e39744a6acfe5d862f3ac8d5@mtkmbs05n2.mediatek.inc>
2020-01-20 8:34 ` Dongchun Zhu
2020-01-20 8:34 ` Dongchun Zhu
2020-01-20 8:34 ` Dongchun Zhu
2019-09-07 22:12 ` kbuild test robot
2019-09-07 22:12 ` kbuild test robot
2019-09-07 22:12 ` kbuild test robot
[not found] ` <20190905072142.14606-3-dongchun.zhu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-10-09 4:40 ` Tomasz Figa
2019-10-09 4:40 ` Tomasz Figa
2019-10-09 4:40 ` Tomasz Figa
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=20190905102633.GC2680@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bingbu.cao@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=dongchun.zhu@mediatek.com \
--cc=drinkcat@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=sam.hung@mediatek.com \
--cc=shengnan.wang@mediatek.com \
--cc=sj.huang@mediatek.com \
--cc=srv_heupstream@mediatek.com \
--cc=tfiga@chromium.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.