linux/drivers/media/i2c
Benoit Parrot 2b4a07a0dd media: i2c: ov2659: Add powerdown/reset gpio handling
On some board it is possible that the sensor 'powerdown' and or 'reset'
pin might be controlled by gpio instead of being tied.

To implement we add pm_runtime support which will handle the power
up/down sequence when it is available otherwise the sensor will be
powered on at module insertion/probe and powered off at module removal.

Now originally the driver assumed that the sensor would always stay
powered and keep its register setting. We cannot assume this anymore, so
every time we "power up" we need to re-program the initial registers
configuration first. This was previously done only at probe time.

[Sakari Ailus: Resolve a conflict in Kconfig]

Signed-off-by: Benoit Parrot <bparrot@ti.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-10-01 17:36:43 -03:00
..
adv748x Merge branch 'i2c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-09-24 16:48:02 -07:00
cx25840 Linux 5.2-rc4 2019-06-11 12:09:28 -04:00
et8ek8 media: i2c: et8ek8: Convert to new i2c device probe() 2019-08-13 11:53:02 -03:00
m5mols treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
s5c73m3 media: i2c: s5c73m3: Convert to new i2c device probe() 2019-08-13 11:52:38 -03:00
smiapp media: i2c: smiapp: Convert to new i2c device probe() 2019-08-13 11:52:24 -03:00
ad5820.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
ad9389b.c media: i2c: ad9389b: convert to i2c_new_dummy_device 2019-08-13 11:45:04 -03:00
adp1653.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
adv7170.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
adv7175.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
adv7180.c media: i2c: adv7180: convert to i2c_new_dummy_device 2019-08-13 11:45:33 -03:00
adv7183_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
adv7183.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
adv7343_regs.h
adv7343.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
adv7393_regs.h
adv7393.c media: fix usage of whitespaces and on indentation 2018-01-04 13:12:01 -05:00
adv7511-v4l2.c media: i2c: adv7511-v4l2: drop check because i2c_unregister_device() is NULL safe 2019-08-26 10:44:16 -03:00
adv7604.c i2c: replace i2c_new_secondary_device with an ERR_PTR variant 2019-08-14 14:54:55 +02:00
adv7842.c media: i2c: adv7842: drop check because i2c_unregister_device() is NULL safe 2019-08-26 10:44:38 -03:00
ak881x.c media updates for v5.3-rc1 2019-07-09 09:47:22 -07:00
ak7375.c media: ak7375: Add ak7375 lens voice coil driver 2018-07-04 07:13:34 -04:00
aptina-pll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
aptina-pll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
bt819.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
bt856.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
bt866.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
cs53l32a.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
cs3308.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
cs5345.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
dw9714.c media: ipu3-cio2, dw9714: Remove Jian Xu's e-mail 2019-01-16 13:34:01 -05:00
dw9807-vcm.c media: dw9807-vcm: Fix probe error handling 2018-10-08 11:51:31 -04:00
imx214.c media: imx214: Fix typo in module description of imx214 2019-06-12 10:47:15 -04:00
imx258.c media: unify some sony camera sensors pattern naming 2018-12-05 06:34:26 -05:00
imx274.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
imx319.c media: unify some sony camera sensors pattern naming 2018-12-05 06:34:26 -05:00
imx355.c media: unify some sony camera sensors pattern naming 2018-12-05 06:34:26 -05:00
ir-kbd-i2c.c media: ir-kbd-i2c: convert to i2c_new_dummy_device() 2019-08-14 05:05:10 -03:00
Kconfig media: i2c: ov2659: Add powerdown/reset gpio handling 2019-10-01 17:36:43 -03:00
ks0127.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
ks0127.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
lm3560.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
lm3646.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
m52790.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
Makefile media: ov5675: Add support for OV5675 sensor 2019-08-15 08:05:15 -03:00
max2175.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
max2175.h media: i2c: max2175: convert to SPDX identifiers 2018-09-12 10:51:18 -04:00
ml86v7667.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
msp3400-driver.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
msp3400-driver.h media: msp3400: declare its own pads 2018-09-17 13:16:19 -04:00
msp3400-kthreads.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mt9m001.c media: i2c: mt9m001: make array init_regs static, makes object smaller 2019-10-01 12:25:44 -03:00
mt9m032.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mt9m111.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
mt9p031.c media updates for v5.3-rc1 2019-07-09 09:47:22 -07:00
mt9t001.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mt9t112.c media: i2c: fix several typos 2019-03-01 09:29:58 -05:00
mt9v011.c media: convert g/s_parm to g/s_frame_interval in subdevs 2018-02-22 12:27:35 -05:00
mt9v032.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mt9v111.c media: i2c: mt9v111: Fix v4l2-ctrl error handling 2018-09-12 06:44:01 -04:00
noon010pc30.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ov772x.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
ov2640.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
ov2659.c media: i2c: ov2659: Add powerdown/reset gpio handling 2019-10-01 17:36:43 -03:00
ov2680.c media: ov2680: fix a typo in a function name 2019-07-25 06:44:39 -04:00
ov2685.c media: i2c: Fix Unnecessary Semicolon Warning Reported by coccicheck 2019-06-21 17:52:50 -04:00
ov5640.c media: ov5640: Add support for flash and lens devices 2019-08-15 08:05:57 -03:00
ov5645.c media: i2c: ov5645: Fix power sequence 2019-08-15 08:08:07 -03:00
ov5647.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
ov5670.c media: i2c: Fix pm_runtime_get_if_in_use() usage in sensor drivers 2018-08-31 09:23:53 -04:00
ov5675.c media: ov5675: Add support for OV5675 sensor 2019-08-15 08:05:15 -03:00
ov5695.c media: i2c: ov5695: Modify the function of async register subdev related devices 2019-10-01 17:33:21 -03:00
ov6650.c media: ov6650: Fix stored crop rectangle not in sync with hardware 2019-10-01 17:31:20 -03:00
ov7251.c media: v4l: mediabus: Recognise CSI-2 D-PHY and C-PHY 2018-10-04 16:06:15 -04:00
ov7640.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
ov7670.c media: ov7670: don't return ENOTTY if SUBDEV_API is not set 2019-07-23 08:55:36 -04:00
ov7740.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
ov8856.c media: ov8856: Check reading clock frequency succeeded 2019-08-15 08:05:40 -03:00
ov9640.c media: ov9640: Don't check for NULL on devm_gpiod_get return values 2019-06-21 17:54:25 -04:00
ov9640.h media: i2c: ov9640: add missing SPDX identifiers 2019-01-16 13:30:44 -05:00
ov9650.c media: ov9650: add a sanity check 2019-08-26 14:05:09 -03:00
ov13858.c media: i2c: Fix Unnecessary Semicolon Warning Reported by coccicheck 2019-06-21 17:52:50 -04:00
rj54n1cb0c.c media: v4l: Remove support for crop default target in subdev drivers 2018-10-03 11:58:24 -04:00
s5k4ecgx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
s5k5baf.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
s5k6a3.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
s5k6aa.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
saa711x_regs.h MAINTAINERS & files: Canonize the e-mails I use at files 2018-05-04 06:21:06 -04:00
saa717x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
saa6588.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
saa6752hs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 68 2019-05-24 17:36:46 +02:00
saa7110.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
saa7115.c media: i2c: fix several typos 2019-03-01 09:29:58 -05:00
saa7127.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
saa7185.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
smiapp-pll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
smiapp-pll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sony-btf-mpx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sr030pc30.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
st-mipid02.c media: st-mipid02: add support of JPEG 2019-06-24 13:04:58 -04:00
tc358743_regs.h media: i2c: add SPDX license info 2018-02-14 13:16:31 -05:00
tc358743.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
tda1997x_regs.h media: i2c: fix several typos 2019-03-01 09:29:58 -05:00
tda1997x.c media: i2c: tda1997x: prevent potential NULL pointer access 2019-08-13 11:46:32 -03:00
tda7432.c media: add SPDX headers to some files 2019-06-12 11:42:27 -04:00
tda9840.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
tea6415c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 68 2019-05-24 17:36:46 +02:00
tea6415c.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tea6420.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
tea6420.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ths7303.c media: replace all <spaces><tab> occurrences 2018-01-04 13:15:05 -05:00
ths8200_regs.h
ths8200.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
tlv320aic23b.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
tvaudio.c media: i2c: fix several typos 2019-03-01 09:29:58 -05:00
tvp514x_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486 2019-06-19 17:09:52 +02:00
tvp514x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486 2019-06-19 17:09:52 +02:00
tvp5150_reg.h media: tvp5150: Add sync lock interrupt handling 2018-09-17 13:30:28 -04:00
tvp5150.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
tvp7002_reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
tvp7002.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
tw2804.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tw9903.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tw9906.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tw9910.c media: i2c: tw9910: simplify getting the adapter of a client 2019-06-24 11:17:03 -04:00
uda1342.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
upd64031a.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
upd64083.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
video-i2c.c media: video-i2c: use V4L2_FRACT_COMPARE 2019-06-21 17:13:58 -04:00
vp27smpx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
vpx3220.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
vs6624_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
vs6624.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
wm8739.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
wm8775.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00