linux/Documentation/driver-api
Hans de Goede 613cbb91e9 media: Add MIPI CCI register access helper functions
The CSI2 specification specifies a standard method to access camera sensor
registers called "Camera Control Interface (CCI)".

This uses either 8 or 16 bit (big-endian wire order) register addresses
and supports 8, 16, 24 or 32 bit (big-endian wire order) register widths.

Currently a lot of Linux camera sensor drivers all have their own custom
helpers for this, often copy and pasted from other drivers.

Add a set of generic helpers for this so that all sensor drivers can
switch to a single common implementation.

These helpers take an extra optional "int *err" function parameter,
this can be used to chain a bunch of register accesses together with
only a single error check at the end, rather than needing to error
check each individual register access. The first failing call will
set the contents of err to a non 0 value and all other calls will
then become no-ops.

Link: https://lore.kernel.org/linux-media/59aefa7f-7bf9-6736-6040-39551329cd0a@redhat.com/

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Tested-by: Tommaso Merciai <tomm.merciai@gmail.com>
Reviewed-by: Tommaso Merciai <tomm.merciai@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2023-08-10 07:58:38 +02:00
..
80211
acpi Documentation: ACPI: fix error script name 2021-06-17 13:21:48 -06:00
backlight
cxl Documentation: cxl: remove dangling kernel-doc reference 2022-08-05 08:41:02 -07:00
dmaengine Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
driver-model devres: Provide krealloc_array 2023-05-30 21:07:15 +01:00
early-userspace Documentation: Fix intiramfs script name 2021-07-18 23:48:14 +09:00
firmware Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
fpga docs: fpga: mgr: document parse_header() callback 2022-06-24 12:12:24 +08:00
gpio gpiolib: remove unused gpio_cansleep() 2023-06-13 16:49:23 +02:00
hte hte: Re-phrase tegra API document 2023-04-26 15:43:19 -07:00
i3c
iio docs: iio: mark "repeat" sysfs attribute as optional 2021-03-11 20:47:08 +00:00
md Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
media media: Add MIPI CCI register access helper functions 2023-08-10 07:58:38 +02:00
mei Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
memory-devices
mmc docs: mmc: update maintainer name and URL 2021-10-28 11:54:54 +02:00
mtd mtd: spi-nor: Stop exporting spi_nor_restore() 2023-04-04 09:43:50 +03:00
nfc Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
nvdimm Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
pci PCI/MSI: Move code into a separate directory 2021-12-09 11:52:22 +01:00
phy phy: Add devm_of_phy_optional_get() helper 2023-02-03 10:52:49 +05:30
pldmfw Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
pm docs: devices.rst: better reference documentation docs 2021-06-17 13:24:36 -06:00
rapidio
serial Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
soundwire
surface_aggregator It has been a moderately calm cycle for documentation; the significant 2023-02-22 12:00:20 -08:00
thermal thermal: intel: int340x: Add DLVR support for RFIM control 2023-04-18 15:24:40 +02:00
tty tty: n_gsm: add ioctl for DLC config via ldisc handle 2023-03-29 10:50:48 +02:00
usb Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
virtio docs: driver-api: virtio: commentize spec version checking 2023-02-20 19:26:57 -05:00
xilinx firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE) 2021-03-01 12:52:07 +01:00
aperture.rst drm: Implement DRM aperture helpers under video/ 2022-06-27 11:07:55 +02:00
auxiliary_bus.rst Documentation/auxiliary_bus: Move the text into the code 2021-12-03 16:41:50 +01:00
basics.rst locking/atomic: docs: Add atomic operations to the driver basic API documentation 2023-06-05 09:57:24 +02:00
clk.rst docs: clk: add documentation to log which clocks have been disabled 2023-04-20 17:53:38 -06:00
component.rst
connector.rst net/connector: Add const qualifier to cb_id 2020-12-16 11:06:49 -08:00
console.rst
dcdbas.rst
devfreq.rst
device_link.rst
device-io.rst docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
dma-buf.rst dma-buf/sync_file: Surface sync-file uABI 2023-03-28 13:39:02 -07:00
edac.rst EDAC/amd64: Document heterogeneous system enumeration 2023-06-05 12:27:15 +02:00
eisa.rst Documentation: eisa: Fix typo 2022-11-15 14:52:38 -07:00
firewire.rst Documentation: fix firewire.rst ABI file path error 2022-01-20 17:01:32 -07:00
frame-buffer.rst
generic-counter.rst counter: Update documentation for new counter registration functions 2021-12-30 17:44:06 +01:00
hsi.rst Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
i2c.rst
index.rst platform/x86: wmi: Add documentation 2023-05-09 11:54:42 +02:00
infiniband.rst
infrastructure.rst
input.rst Input: remove input_polled_dev implementation 2020-12-02 12:35:14 -08:00
interconnect.rst
io_ordering.rst
io-mapping.rst Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
ioctl.rst docs: driver-api: avoid using ReST :doc:foo markup 2021-06-17 13:24:37 -06:00
ipmb.rst
ipmi.rst ipmi: Add docs for the IPMI IPMB driver 2021-10-05 06:54:17 -05:00
isa.rst Remove duplicate words inside documentation 2022-09-27 13:21:43 -06:00
isapnp.rst
libata.rst libata: Improve ATA queued command allocation 2022-04-11 09:27:44 +09:00
mailbox.rst
men-chameleon-bus.rst Documentation: document dma device use for mcb 2021-01-11 13:26:13 -07:00
message-based.rst
misc_devices.rst
miscellaneous.rst docs/driver-api/miscellaneous: Remove kernel-doc of serial_core.c 2022-11-09 14:56:05 +01:00
mtdnand.rst docs: mtd: Avoid htmldocs warnings 2020-12-10 22:37:32 +01:00
ntb.rst ntb.rst: Fix copy and paste error 2023-07-08 11:05:05 -04:00
nvmem.rst nvmem: core: introduce NVMEM layouts 2023-04-05 19:41:11 +02:00
parport-lowlevel.rst
pin-control.rst It has been a moderately calm cycle for documentation; the significant 2023-02-22 12:00:20 -08:00
pps.rst
ptp.rst docs: ptp.rst: Add information about NVIDIA Mellanox devices 2023-06-20 09:02:32 +01:00
pwm.rst pwm: Delete deprecated functions pwm_request() and pwm_free() 2023-04-13 14:27:53 +02:00
regulator.rst
reset.rst docs: add a reset controller chapter to the driver API docs 2020-12-08 10:48:04 -07:00
rfkill.rst
s390-drivers.rst
scsi.rst
slimbus.rst
sm501.rst
spi.rst spi: Update reference to struct spi_controller 2022-11-01 18:30:09 +00:00
switchtec.rst
sync_file.rst
target.rst
uio-howto.rst
vfio-mediated-device.rst vfio-mdev: remove an non-existing driver from vfio-mediated-device 2023-01-23 11:26:29 -07:00
vfio-pci-device-specific-driver-acceptance.rst vfio-pci: Provide reviewers and acceptance criteria for variant drivers 2022-03-17 09:57:11 -06:00
vfio.rst docs: vfio: fix header path 2023-03-14 11:31:57 -06:00
vme.rst vme: move back to staging 2022-06-10 15:38:14 +02:00
w1.rst
wmi.rst platform/x86: wmi: Add documentation 2023-05-09 11:54:42 +02:00
xillybus.rst
zorro.rst