[V4,0/2] media: i2c: add support for DW9768 VCM driver

Message ID 20200330123634.363-1-dongchun.zhu@mediatek.com (mailing list archive)
Headers
Series media: i2c: add support for DW9768 VCM driver |

Message

Dongchun Zhu March 30, 2020, 12:36 p.m. UTC
  Hello,

Here is the updated version of the changes to add DT bindings in YAML
and V4L2 driver for the DW9768 lens voicee coil motor.
This 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 to set the desired focus.

The DW9768 controls the position with 10-bit DAC data D[9:0] and seperates
two 8-bit registers to control the VCM position as belows.
DAC_MSB: D[9:8](ADDR: 0x03):
     +---+---+---+---+---+---+---+---+
     |---|---|---|---|---|---|D09|D08|
     +---+---+---+---+---+---+---+---+
DAC_LSB: D[7:0](ADDR: 0x04):
     +---+---+---+---+---+---+---+---+
     |D07|D06|D05|D04|D03|D02|D01|D00|
     +---+---+---+---+---+---+---+---+

This driver supports:
 - set DW9768 to standby mode once suspend and turn it back to active if resume
 - set the desired focus via V4L2_CID_FOCUS_ABSOLUTE ctrl

Previous versions of this patch-set can be found here:
v3: https://patchwork.kernel.org/cover/11412719/
v2: https://patchwork.kernel.org/cover/11132299/
v1: https://patchwork.kernel.org/cover/11034797/

Mainly changes of v4 are addressing comments from Rob, Andy, Sakari, Tomasz.
Compared to v3:
 - Fix DT bindings and MAINTAINERS checking errors
 - Use i2c_smbus_write_word_swapped() to replace of i2c_smbus_write_word_data()
 - Refine driver more simply and clear
 - Add a dependency to CONFIG_PM

Please review.
Thanks.

Dongchun Zhu (2):
  media: i2c: dw9768: Add DT support and MAINTAINERS entry
  media: i2c: Add DW9768 VCM driver

 .../bindings/media/i2c/dongwoon,dw9768.yaml        |  62 +++
 MAINTAINERS                                        |   8 +
 drivers/media/i2c/Kconfig                          |  11 +
 drivers/media/i2c/Makefile                         |   1 +
 drivers/media/i2c/dw9768.c                         | 432 +++++++++++++++++++++
 5 files changed, 514 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml
 create mode 100644 drivers/media/i2c/dw9768.c