Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp129260rdg; Thu, 12 Oct 2023 00:22:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJEaNTQ9NcWyQbpEHw34huW9MUGxZu/UUe/n1K3q41iN452TNhMekN3K0/4DBZ3nHezZ5r X-Received: by 2002:a17:902:8544:b0:1b9:e972:134d with SMTP id d4-20020a170902854400b001b9e972134dmr17071377plo.3.1697095327586; Thu, 12 Oct 2023 00:22:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697095327; cv=none; d=google.com; s=arc-20160816; b=Dl4kWs0peunN0xnw8sYYnaaHYN1D9u5fDVqKn2za2ogW1ON8G6X+Jwqzwm/oWZb5n8 Adf0UU5+T5SdIylgRjl62Un5mPMnagKFsC0DbnEfH326l3frc0LgpXFSNDN7gQIHZPIT dQohTTtn2EumUl1eGmH5sgRy9f2OY0+anpR/BD0C2Lkm2WnJq7N+N8bafeW5jm8q4eMb dtx47/g9xIEshNvIrc+5rQxfWCsj24uibI+HpX4/LBhbaqgPam7Aon9H15LEbw6ij1C3 UWd2STBI7sAonzF1deYxXgA7FJAfhXw9pQSpDZjR+o6I9xLVQgFGgO+rrNSJkHxI85h0 RlOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=I9X4rC8RqdLQeu99567mrud96Lt8/9ViDpFHPYWVJMY=; fh=UeKM+KApGUayh+tX9HDtrflEf38HxPpIXljS7fqECYg=; b=bv2qH56PiwxzSeADVWdxaASzOd2h5KCkFNeMeaaRNRggtKTihkcMiZ7gfrGRv105tq MebxDKzwEOYBjr3EEmYObUTBaTScfx4N7rddzTASHLBnVdqDtmhnBY4aJwRp5+9dYsu1 8nsvM2aHzGgGPpOob26rpEkPrPZSb+Zqvbq7lTi95aB0+PtZdlutZHoOtNZqmkjGv4WE LcxpwdnCJFJagnasHphY5wRLAbTZt8UyYd4V/Nqp5lyPa73YXpOz3jpALAw/mm/gwaBa gPKJnoFTr3eMqThn8E/L2RHxXu36pKU02phrRza62y1xNLfFSWuhHobcKlgb5kf9dC6m wVTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id s17-20020a170902a51100b001c9b0be1391si1433060plq.614.2023.10.12.00.22.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Oct 2023 00:22:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 427E8805B31E; Thu, 12 Oct 2023 00:21:27 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377666AbjJLHVS (ORCPT + 99 others); Thu, 12 Oct 2023 03:21:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347108AbjJLHVJ (ORCPT ); Thu, 12 Oct 2023 03:21:09 -0400 Received: from mo-csw.securemx.jp (mo-csw1121.securemx.jp [210.130.202.132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F2A42C4; Thu, 12 Oct 2023 00:21:04 -0700 (PDT) Received: by mo-csw.securemx.jp (mx-mo-csw1121) id 39C7KMSS655471; Thu, 12 Oct 2023 16:20:22 +0900 X-Iguazu-Qid: 2rWh1lnDMTa2StM0kT X-Iguazu-QSIG: v=2; s=0; t=1697095222; q=2rWh1lnDMTa2StM0kT; m=bpp4+Py4TjUMLn+o5S+m53ZHfuhpmcZg+4O1Jtk54ds= Received: from imx12-a.toshiba.co.jp ([38.106.60.135]) by relay.securemx.jp (mx-mr1122) id 39C7KKX71767654 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Thu, 12 Oct 2023 16:20:20 +0900 X-SA-MID: 8623574 From: Yuji Ishikawa To: Hans Verkuil , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Nobuhiro Iwamatsu , Yuji Ishikawa Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 0/5] Add Toshiba Visconti Video Input Interface driver Date: Thu, 12 Oct 2023 16:13:24 +0900 X-TSB-HOP2: ON Message-Id: <20231012071329.2542003-1-yuji2.ishikawa@toshiba.co.jp> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 12 Oct 2023 00:21:27 -0700 (PDT) This series is the Video Input Interface driver for Toshiba's ARM SoC, Visconti. This provides DT binding documentation, device driver, documentation and MAINTAINER files. A visconti VIIF driver instance exposes 1 media control device file and 3 video device files for a VIIF hardware. Detailed HW/SW are described in documentation directory. The VIIF hardware has CSI2 receiver, image signal processor and DMAC inside. The subdevice for image signal processor provides vendor specific V4L2 controls. The device driver depends on two other drivers under development; clock framework driver and IOMMU driver. Corresponding features will be added later. Best regards, Yuji Changelog v2: - Resend v1 because a patch exceeds size limit. Changelog v3: - Add documentation to describe SW and HW - Adapted to media control framework - Introduced ISP subdevice, capture device - Remove private IOCTLs and add vendor specific V4L2 controls - Change function name avoiding camelcase and uppercase letters Changelog v4: - Split patches because a patch exceeds size limit - fix dt-bindings document - stop specifying ID numbers for driver instance explicitly at device tree - use pm_runtime to trigger initialization of HW along with open/close of device files. - add a entry for a header file at MAINTAINERS file Changelog v5: - Fix coding style problem in viif.c (patch 2/6) Changelog v6: - add register definition of BUS-IF and MPU in dt-bindings - add CSI2RX subdevice (separeted from ISP subdevice) - change directory layout (moved to media/platform/toshiba/visconti) - change source file layout (removed hwd_xxxx.c) - pointer to userland memory is removed from uAPI parameters - change register access (from struct style to macro style) - remove unused macros Changelog v7: - remove redundant "bindings" from header and description text - fix multiline text of "description" - change "compatible" to "visconti5-viif" - explicitly define allowed properties for port::endpoint - remove unused variables - update kerneldoc comments - update references to headers Changelog v8: - rename bindings description file - remove/simplify items in bindings - update operations around v4l2_async_notifier - use v4l2_async_connection instead of v4l2_async_subdev - use dev_err_probe() - better error handling at probe - remove redundant mutex - add V4L2_CTRL_TYPE_VISCONTI_ISP constant Changelog v9: - dictionary ordering of dt-bindings properties - applied sparce checker - call div64_u64 for 64bit division - rebase to media_staging tree - fix warning for cast between ptr and dma_addr_t Yuji Ishikawa (5): dt-bindings: media: platform: visconti: Add Toshiba Visconti Video Input Interface media: platform: visconti: Add Toshiba Visconti Video Input Interface driver media: platform: visconti: add V4L2 vendor specific control handlers documentation: media: add documentation for Toshiba Visconti Video Input Interface driver MAINTAINERS: Add entries for Toshiba Visconti Video Input Interface .../media/toshiba,visconti5-viif.yaml | 105 + .../driver-api/media/drivers/index.rst | 1 + .../media/drivers/visconti-viif.rst | 462 +++ .../media/v4l/vidioc-g-ext-ctrls.rst | 4 + .../media/v4l/vidioc-queryctrl.rst | 5 + .../media/videodev2.h.rst.exceptions | 1 + MAINTAINERS | 4 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/toshiba/Kconfig | 6 + drivers/media/platform/toshiba/Makefile | 2 + .../media/platform/toshiba/visconti/Kconfig | 18 + .../media/platform/toshiba/visconti/Makefile | 8 + .../media/platform/toshiba/visconti/viif.c | 650 ++++ .../media/platform/toshiba/visconti/viif.h | 374 ++ .../platform/toshiba/visconti/viif_capture.c | 1483 +++++++ .../platform/toshiba/visconti/viif_capture.h | 22 + .../platform/toshiba/visconti/viif_common.c | 199 + .../platform/toshiba/visconti/viif_common.h | 38 + .../platform/toshiba/visconti/viif_controls.c | 3395 +++++++++++++++++ .../platform/toshiba/visconti/viif_controls.h | 18 + .../platform/toshiba/visconti/viif_csi2rx.c | 695 ++++ .../platform/toshiba/visconti/viif_csi2rx.h | 24 + .../toshiba/visconti/viif_csi2rx_regs.h | 102 + .../platform/toshiba/visconti/viif_isp.c | 1259 ++++++ .../platform/toshiba/visconti/viif_isp.h | 24 + .../platform/toshiba/visconti/viif_regs.h | 716 ++++ drivers/media/v4l2-core/v4l2-ctrls-core.c | 7 +- include/uapi/linux/v4l2-controls.h | 6 + include/uapi/linux/videodev2.h | 2 + include/uapi/linux/visconti_viif.h | 1800 +++++++++ 31 files changed, 11431 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/media/toshiba,visconti5-viif.yaml create mode 100644 Documentation/driver-api/media/drivers/visconti-viif.rst create mode 100644 drivers/media/platform/toshiba/Kconfig create mode 100644 drivers/media/platform/toshiba/Makefile create mode 100644 drivers/media/platform/toshiba/visconti/Kconfig create mode 100644 drivers/media/platform/toshiba/visconti/Makefile create mode 100644 drivers/media/platform/toshiba/visconti/viif.c create mode 100644 drivers/media/platform/toshiba/visconti/viif.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_capture.c create mode 100644 drivers/media/platform/toshiba/visconti/viif_capture.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_common.c create mode 100644 drivers/media/platform/toshiba/visconti/viif_common.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_controls.c create mode 100644 drivers/media/platform/toshiba/visconti/viif_controls.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx.c create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx_regs.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_isp.c create mode 100644 drivers/media/platform/toshiba/visconti/viif_isp.h create mode 100644 drivers/media/platform/toshiba/visconti/viif_regs.h create mode 100644 include/uapi/linux/visconti_viif.h -- 2.34.1