linux/drivers/media/i2c
Luca Weiss a97b24febd media: i2c: ov5670: Support single-lane operation
Currently the driver always configures the sensor for dual-lane MIPI
output, but it also supports single-lane output. Add support for that by
checking the data-lanes fwnode property how many lanes are used and
configure the necessary registers based on that.

To achieve this we move setting register 0x3018 out of the general reg
sequence so we set it to the correct value. The pixel_rate value also
needs to be adjusted.

[Sakari Ailus: Use div_s64 to divide a 64-bit number]

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2023-03-20 15:54:56 +01:00
..
adv748x media: adv748x: afe: Select input port when initializing AFE 2022-10-24 19:03:53 +02:00
ccs i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
cx25840 media: cx25840: Convert to i2c's .probe_new() 2022-11-21 11:04:28 +01:00
et8ek8 i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
m5mols media: m5mols: Convert to i2c's .probe_new() 2022-11-21 11:04:30 +01:00
s5c73m3 media: i2c: s5c73m3: return 0 instead of 'ret'. 2023-02-08 08:30:29 +01:00
ad5820.c media: Switch to use dev_err_probe() helper 2022-12-07 17:58:46 +01:00
ad9389b.c media: i2c/ad9389b: Convert to i2c's .probe_new() 2022-11-21 11:04:24 +01:00
adp1653.c media: i2c/adp1653: Convert to i2c's .probe_new() 2022-11-21 11:04:25 +01:00
adv7170.c media: i2c/adv7170: Convert to i2c's .probe_new() 2022-11-21 11:04:25 +01:00
adv7175.c media: i2c/adv7175: Convert to i2c's .probe_new() 2022-11-21 11:04:25 +01:00
adv7180.c media: i2c/adv7180: Convert to i2c's .probe_new() 2023-01-22 08:33:12 +01:00
adv7183_regs.h
adv7183.c media: i2c/adv7183: Convert to i2c's .probe_new() 2022-11-21 11:04:26 +01:00
adv7343_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7343.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
adv7393_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7393.c media: i2c/adv7393: Convert to i2c's .probe_new() 2022-11-21 11:04:26 +01:00
adv7511-v4l2.c media: i2c/adv7511-v4l2: Convert to i2c's .probe_new() 2022-11-21 11:04:26 +01:00
adv7604.c media: i2c/adv7604: Convert to i2c's .probe_new() 2023-01-22 08:33:13 +01:00
adv7842.c media: i2c/adv7842: Convert to i2c's .probe_new() 2022-11-21 11:04:26 +01:00
ak881x.c media: i2c/ak881x: Convert to i2c's .probe_new() 2022-11-21 11:04:27 +01:00
ak7375.c media: i2c: ak7375: Add regulator management 2023-02-06 08:38:34 +01:00
aptina-pll.c media: i2c: aptina-pll: Remove a useless include 2022-11-25 08:35:48 +00:00
aptina-pll.h
ar0521.c media: ar0521: Tab-align definitions 2022-11-25 08:46:29 +00:00
bt819.c media: i2c/bt819: Convert to i2c's .probe_new() 2022-11-21 11:04:27 +01:00
bt856.c media: i2c/bt856: Convert to i2c's .probe_new() 2022-11-21 11:04:27 +01:00
bt866.c media: i2c/bt866: Convert to i2c's .probe_new() 2022-11-21 11:04:28 +01:00
ccs-pll.c Linux 5.11-rc6 2021-02-01 10:03:45 +01:00
ccs-pll.h media: ccs-pll: Switch from standard integer types to kernel ones 2021-01-12 17:55:28 +01:00
cs53l32a.c media: i2c/cs53l32a: Convert to i2c's .probe_new() 2023-01-22 08:33:14 +01:00
cs3308.c media: i2c/cs3308: Convert to i2c's .probe_new() 2022-11-21 11:04:28 +01:00
cs5345.c media: i2c/cs5345: Convert to i2c's .probe_new() 2022-11-21 11:04:28 +01:00
dw9714.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
dw9768.c dw9768: Enable low-power probe on ACPI 2022-10-27 14:38:03 +03:00
dw9807-vcm.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
hi556.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
hi846.c media: i2c: hi846: Fix memory leak in hi846_parse_dt() 2022-10-25 10:37:03 +03:00
hi847.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
imx208.c media: i2c: imx208: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips 2022-12-06 07:23:19 +00:00
imx214.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
imx219.c media: i2c: imx219: Fix binning for RAW8 capture 2023-02-06 08:42:28 +01:00
imx258.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
imx274.c media: Switch to use dev_err_probe() helper 2022-12-07 17:58:46 +01:00
imx290.c media: i2c: imx290: Add support for imx327 variant 2023-03-20 15:23:13 +01:00
imx296.c media: i2c: IMX296 camera sensor driver 2023-02-06 08:41:36 +01:00
imx319.c media: i2c: imx319: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips 2022-12-06 07:23:37 +00:00
imx334.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
imx335.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
imx355.c media: i2c: imx355: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips 2022-12-06 07:23:56 +00:00
imx412.c media: i2c: imx412: Add new compatible strings 2022-11-25 06:46:05 +00:00
imx415.c media: i2c: add imx415 cmos image sensor driver 2023-02-06 08:52:39 +01:00
ir-kbd-i2c.c media: i2c/ir-kbd-i2c: Convert to i2c's .probe_new() 2023-01-22 08:33:15 +01:00
isl7998x.c media: i2c: isl7998x: make const array isl7998x_video_in_chan_map static 2022-12-07 17:58:46 +01:00
Kconfig media: i2c: add imx415 cmos image sensor driver 2023-02-06 08:52:39 +01:00
ks0127.c media: i2c/ks0127: Convert to i2c's .probe_new() 2022-11-21 11:04:29 +01:00
ks0127.h
lm3560.c media: i2c/lm3560: Convert to i2c's .probe_new() 2022-11-21 11:04:29 +01:00
lm3646.c media: i2c/lm3646: Convert to i2c's .probe_new() 2022-11-21 11:04:29 +01:00
m52790.c media: i2c/m52790: Convert to i2c's .probe_new() 2022-11-21 11:04:30 +01:00
Makefile media: i2c: add imx415 cmos image sensor driver 2023-02-06 08:52:39 +01:00
max2175.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
max2175.h
max9271.c media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9271.h media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9286.c media: max9286: Fix memleak in max9286_v4l2_register() 2023-02-03 14:51:45 +01:00
ml86v7667.c media: i2c/ml86v7667: Convert to i2c's .probe_new() 2022-11-21 11:04:30 +01:00
msp3400-driver.c media: i2c/msp3400-driver: Convert to i2c's .probe_new() 2023-01-22 08:33:16 +01:00
msp3400-driver.h
msp3400-kthreads.c media: msp3400: use semicolons rather than commas to separate statements 2020-11-16 10:31:07 +01:00
mt9m001.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mt9m032.c media: i2c/mt9m032: Convert to i2c's .probe_new() 2022-11-21 11:04:31 +01:00
mt9m111.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mt9p031.c media: i2c/mt9p031: Convert to i2c's .probe_new() 2023-01-22 08:33:17 +01:00
mt9t001.c media: i2c/mt9t001: Convert to i2c's .probe_new() 2022-11-21 11:04:31 +01:00
mt9t112.c media: i2c/mt9t112: Convert to i2c's .probe_new() 2022-11-21 11:04:31 +01:00
mt9v011.c media: i2c/mt9v011: Convert to i2c's .probe_new() 2022-11-21 11:04:31 +01:00
mt9v032.c media: i2c/mt9v032: Convert to i2c's .probe_new() 2023-01-22 08:33:18 +01:00
mt9v111.c media fixes for v6.1-rc2 2022-10-22 15:30:15 -07:00
noon010pc30.c media: i2c/noon010pc30: Convert to i2c's .probe_new() 2022-11-21 11:04:32 +01:00
og01a1b.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov02a10.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov08d10.c media: i2c: ov08d10: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips 2022-12-06 07:24:15 +00:00
ov08x40.c media: i2c: ov08x40: Make remove callback return void 2022-11-25 08:50:23 +00:00
ov13b10.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov772x.c media: i2c: ov772x: Fix memleak in ov772x_probe() 2023-02-06 08:39:04 +01:00
ov2640.c media: ov2640: Drop legacy includes 2022-10-27 14:48:55 +03:00
ov2659.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov2680.c media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips 2022-12-06 07:22:09 +00:00
ov2685.c media: i2c: ov2685: convert to i2c's .probe_new() 2023-03-09 21:59:04 +01:00
ov2740.c media: ov2740: Fix memleak in ov2740_init_controls() 2023-02-03 14:52:11 +01:00
ov4689.c media: i2c: ov4689: code cleanup 2022-10-28 11:31:28 +03:00
ov5640.c media: ov5640: Fix analogue gain control 2023-02-06 08:39:33 +01:00
ov5645.c media: i2c: ov5645: Call ov5645_entity_init_cfg() before registering the subdev 2022-11-25 06:49:15 +00:00
ov5647.c media: i2c: ov5647: Use bus-locked i2c_transfer() 2023-03-20 08:55:57 +01:00
ov5648.c media: i2c: ov5648: Free V4L2 fwnode data on unbind 2022-10-25 14:34:49 +03:00
ov5670.c media: i2c: ov5670: Support single-lane operation 2023-03-20 15:54:56 +01:00
ov5675.c media: i2c: ov5675: add .get_selection support 2023-02-06 08:45:05 +01:00
ov5693.c media: ov5693: Add support for a privacy-led GPIO 2022-12-06 07:10:07 +00:00
ov5695.c media: i2c: ov5695: convert to i2c's .probe_new() 2023-03-09 21:59:00 +01:00
ov6650.c media: i2c/ov6650: Convert to i2c's .probe_new() 2022-11-21 11:04:32 +01:00
ov7251.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov7640.c media: i2c/ov7640: Convert to i2c's .probe_new() 2022-11-21 11:04:33 +01:00
ov7670.c media: i2c: ov7670: 0 instead of -EINVAL was returned 2023-02-08 08:39:50 +01:00
ov7740.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov8856.c media: ov8856: Add runtime PM callbacks 2022-10-25 14:31:51 +03:00
ov8858.c media: i2c: Add driver for OmniVision OV8858 2023-02-06 08:26:29 +01:00
ov8865.c media fixes for v6.1-rc2 2022-10-22 15:30:15 -07:00
ov9282.c media: i2c: ov9282: Switch to use dev_err_probe helper 2023-02-06 08:36:03 +01:00
ov9640.c media: i2c/ov9640: Convert to i2c's .probe_new() 2022-11-21 11:04:33 +01:00
ov9640.h media: ov9640: Use the generic clock framework 2021-02-06 09:38:05 +01:00
ov9650.c media: ov9650: Drop platform data code path 2022-10-27 14:48:55 +03:00
ov9734.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ov13858.c media: i2c/ov13858: Convert to i2c's .probe_new() 2022-11-21 11:04:32 +01:00
rdacm20.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rdacm21.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rj54n1cb0c.c media: i2c/rj54n1cb0c: Convert to i2c's .probe_new() 2022-11-21 11:04:33 +01:00
s5k5baf.c media: i2c: s5k5baf: switch to using gpiod API 2022-12-07 17:58:47 +01:00
s5k6a3.c media: i2c: s5k6a3: switch to using gpiod API 2022-12-07 17:58:47 +01:00
s5k6aa.c media: i2c/s5k6aa: Convert to i2c's .probe_new() 2022-11-21 11:04:34 +01:00
saa711x_regs.h
saa717x.c media: i2c/saa717x: Convert to i2c's .probe_new() 2022-11-21 11:04:35 +01:00
saa6588.c media: i2c/saa6588: Convert to i2c's .probe_new() 2022-11-21 11:04:34 +01:00
saa6752hs.c media: i2c/saa6752hs: Convert to i2c's .probe_new() 2022-11-21 11:04:34 +01:00
saa7110.c media: i2c/saa7110: Convert to i2c's .probe_new() 2022-11-21 11:04:35 +01:00
saa7115.c media: i2c/saa7115: Convert to i2c's .probe_new() 2023-01-22 08:33:20 +01:00
saa7127.c media: i2c/saa7127: Convert to i2c's .probe_new() 2023-01-22 08:33:21 +01:00
saa7185.c media: i2c/saa7185: Convert to i2c's .probe_new() 2022-11-21 11:04:35 +01:00
sony-btf-mpx.c media: i2c/sony-btf-mpx: Convert to i2c's .probe_new() 2022-11-21 11:04:36 +01:00
sr030pc30.c media: i2c/sr030pc30: Convert to i2c's .probe_new() 2022-11-21 11:04:36 +01:00
st-mipid02.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
st-vgxy61.c media: i2c: st-vgxy61: Use VGXY61_NB_POLARITIES instead of hardcoded value in tx_from_ep 2023-03-20 00:36:53 +01:00
tc358743_regs.h
tc358743.c media: Switch to use dev_err_probe() helper 2022-12-07 17:58:46 +01:00
tc358746.c media: tc358746: Remove unneeded semicolon 2023-03-19 22:46:41 +01:00
tda1997x_regs.h media: TDA1997x: replace video detection routine 2021-10-19 08:08:38 +01:00
tda1997x.c media: i2c/tda1997x: Convert to i2c's .probe_new() 2023-01-22 08:33:22 +01:00
tda7432.c media: i2c/tda7432: Convert to i2c's .probe_new() 2022-11-21 11:04:36 +01:00
tda9840.c media: i2c/tda9840: Convert to i2c's .probe_new() 2022-11-21 11:04:36 +01:00
tea6415c.c media: i2c/tea6415c: Convert to i2c's .probe_new() 2022-11-21 11:04:37 +01:00
tea6415c.h
tea6420.c media: i2c/tea6420: Convert to i2c's .probe_new() 2022-11-21 11:04:37 +01:00
tea6420.h
ths7303.c media: i2c/ths7303: Convert to i2c's .probe_new() 2022-11-21 11:04:37 +01:00
ths8200_regs.h
ths8200.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
tlv320aic23b.c media: i2c/tlv320aic23b: Convert to i2c's .probe_new() 2022-11-21 11:04:38 +01:00
tvaudio.c media: i2c/tvaudio: Convert to i2c's .probe_new() 2023-01-22 08:33:22 +01:00
tvp514x_regs.h media: media/i2c: fix kerneldoc issues for media i2c headers 2021-03-22 10:23:43 +01:00
tvp514x.c media: i2c/tvp514x: Convert to i2c's .probe_new() 2023-01-22 08:33:23 +01:00
tvp5150_reg.h
tvp5150.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
tvp7002_reg.h
tvp7002.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
tw2804.c media: i2c/tw2804: Convert to i2c's .probe_new() 2022-11-21 11:04:38 +01:00
tw9903.c media: i2c/tw9903: Convert to i2c's .probe_new() 2022-11-21 11:04:38 +01:00
tw9906.c media: i2c/tw9906: Convert to i2c's .probe_new() 2022-11-21 11:04:38 +01:00
tw9910.c media: i2c/tw9910: Convert to i2c's .probe_new() 2022-11-21 11:04:39 +01:00
uda1342.c media: i2c/uda1342: Convert to i2c's .probe_new() 2022-11-21 11:04:39 +01:00
upd64031a.c media: i2c/upd64031a: Convert to i2c's .probe_new() 2022-11-21 11:04:39 +01:00
upd64083.c media: i2c/upd64083: Convert to i2c's .probe_new() 2022-11-21 11:04:40 +01:00
video-i2c.c media: i2c/video-i2c: Convert to i2c's .probe_new() 2023-01-22 08:33:24 +01:00
vp27smpx.c media: i2c/vp27smpx: Convert to i2c's .probe_new() 2022-11-21 11:04:40 +01:00
vpx3220.c media: i2c/vpx3220: Convert to i2c's .probe_new() 2022-11-21 11:04:40 +01:00
vs6624_regs.h
vs6624.c media: i2c/vs6624: Convert to i2c's .probe_new() 2022-11-21 11:04:41 +01:00
wm8739.c media: i2c/wm8739: Convert to i2c's .probe_new() 2022-11-21 11:04:41 +01:00
wm8775.c media: i2c/wm8775: Convert to i2c's .probe_new() 2022-11-21 11:04:41 +01:00