Add a v4l2 sensor driver for Sony IMX728 v1->v2: * Elaborate on device details in dt-bindings. * Add links and voltage supplies to dt-bindings. * Re-order so that dt-bindings are applied first. * Move pattern gen config into v4l2_ctrls. * Switch to using CCI functions to access the sensor. * Merge header into c file. * Move verbose prints to dev_dbg. * Add missing v4l2 format params. * Added support for software reset if no hardware one is available. * Move register constants into defines, these are vague as Sony requested that I not use register names from the datasheet. v4l2-compliance 1.24.1, 64 bits, 64-bit time_t Compliance test for device /dev/v4l-subdev4: Driver Info: Driver version : 6.1.80 Capabilities : 0x00000002 Streams Support Required ioctls: test VIDIOC_SUDBEV_QUERYCAP: OK test invalid ioctls: OK Allow for multiple opens: test second /dev/v4l-subdev4 open: OK test VIDIOC_SUBDEV_QUERYCAP: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_LOG_STATUS: OK (Not Supported) Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK (Not Supported) test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 0 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 12 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported) test VIDIOC_G/S_PARM: OK (Not Supported) test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK (Not Supported) test VIDIOC_TRY_FMT: OK (Not Supported) test VIDIOC_S_FMT: OK (Not Supported) test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls: test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls: test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported) test VIDIOC_EXPBUF: OK (Not Supported) test Requests: OK (Not Supported) Total for device /dev/v4l-subdev4: 43, Succeeded: 43, Failed: 0, Warnings: 0 Spencer Hill (2): media: i2c: Add driver for Sony IMX728 media: dt-bindings: Add Sony IMX728 .../bindings/media/i2c/sony,imx728.yaml | 78 + MAINTAINERS | 9 + drivers/media/i2c/Kconfig | 11 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/imx728.c | 1167 ++++++ drivers/media/i2c/imx728.h | 3458 +++++++++++++++++ 6 files changed, 4724 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx728.yaml create mode 100644 drivers/media/i2c/imx728.c create mode 100644 drivers/media/i2c/imx728.h -- 2.40.1 --- Spencer Hill (2): media: dt-bindings: Add Sony IMX728 media: i2c: Add driver for Sony IMX728 .../devicetree/bindings/media/i2c/sony,imx728.yaml | 119 + MAINTAINERS | 7 + drivers/media/i2c/Kconfig | 11 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/imx728.c | 4660 ++++++++++++++++++++ 5 files changed, 4798 insertions(+) --- base-commit: 8771b7f31b7fff91a998e6afdb60650d4bac59a5 change-id: 20240627-imx728-driver-a8d905cafd2d Best regards, -- Spencer Hill <shill@xxxxxxxxxxxxxxxxx> Please be aware that this email includes email addresses outside of the organization.