Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp7268981rwd; Mon, 19 Jun 2023 21:50:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7bN3fRqw8x/rK/Qx0dR6E9XR7+Z4IAgu2hTXuwCDw05+wfs6EF0dfXYsGdhuQiwgCwL5e7 X-Received: by 2002:a05:6214:ca8:b0:62f:f6ed:857e with SMTP id s8-20020a0562140ca800b0062ff6ed857emr12616804qvs.55.1687236625306; Mon, 19 Jun 2023 21:50:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687236625; cv=none; d=google.com; s=arc-20160816; b=xg1v2g0tU72Z0TD30a+oHjQ/K5anc000cV8fKxB/a4eywOOOiLO7jLgoc/xHPyZ8jr cztc8vxda/F5xtNBxrfyIbha89qm1/cjVKFURmNHWLrpS8qGkRdbXV+/PjqBLNK5xmTD OuNQEWSK5Q2gVu5qQqmcZ2F1ZWYXKEQsIArc9Jp8moiO88V+RKlyPem2OStU5AgI3Mvd ZG9FGqOohiIxLPJXNLiszYUY4vrW1jTQzUO4nZaAsIyX0CTrRn350H/GIqLao1ydpwuK gdKFdTlR05KyU73zKKxBldMn/LBpkI9yp4fYf9N/PhTk8p8CZN8SiZiMURbCxJ6oHcKc L13g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=WyXS4pKb/F3YooxbD5XKE6J6OFs+0vjQkR+hkj5DOy4=; b=lb3FTOiqV/ubDNPfZYwlufg7RFFWY8YyuywoCWuKD0guGoVutJdDWWIVdTRmLgKz17 CyRKad0QsOkXann+o+tVVH42rwmm0ZESJ3dvPyLdxFTDbSqT8EvO0SgQikodyPj7+Tuq STtcLPsNRS/jQ6vrCOZMyOznkfmQGPS8se++vkNfW5HLtk/aiblzHREd+yFf7dV3o75V po+y09EpNnnI0x0ZounHML7bovJsN6gKfzvU7mrw6P56rkSY/MvgzPnbV14cFfNSD3UI ba65EXEEjL7cReFvW8ZE+UoLN5ZtzUPUPfAkPyWcUXLOefh2Pywkn+924fo8RF6IzapN RmHg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x4-20020a63db44000000b0055381e05244si873098pgi.777.2023.06.19.21.50.12; Mon, 19 Jun 2023 21:50:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229958AbjFTEBz (ORCPT + 99 others); Tue, 20 Jun 2023 00:01:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229462AbjFTEBy (ORCPT ); Tue, 20 Jun 2023 00:01:54 -0400 Received: from mo-csw-fb.securemx.jp (mo-csw-fb1514.securemx.jp [210.130.202.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8046E1A7; Mon, 19 Jun 2023 21:01:50 -0700 (PDT) Received: by mo-csw-fb.securemx.jp (mx-mo-csw-fb1514) id 35K3HOOH027548; Tue, 20 Jun 2023 12:17:24 +0900 Received: by mo-csw.securemx.jp (mx-mo-csw1514) id 35K3GcAM002896; Tue, 20 Jun 2023 12:16:38 +0900 X-Iguazu-Qid: 34trpHMSnXmTjlxbug X-Iguazu-QSIG: v=2; s=0; t=1687230997; q=34trpHMSnXmTjlxbug; m=VijdW/1VVpKTosARkiGIGWKaDbgPs1ppw5zTgecCyaQ= Received: from imx12-a.toshiba.co.jp ([38.106.60.135]) by relay.securemx.jp (mx-mr1511) id 35K3GZcJ025779 (version=TLSv1.2 cipher=AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 20 Jun 2023 12:16:35 +0900 X-SA-MID: 2172042 From: Yuji Ishikawa To: Hans Verkuil , Sakari Ailus , 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 v6 0/5] Add Toshiba Visconti Video Input Interface driver Date: Tue, 20 Jun 2023 12:11:06 +0900 X-TSB-HOP2: ON Message-Id: <20230620031111.3776-1-yuji2.ishikawa@toshiba.co.jp> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 This series is the Video Input Interface driver for Toshiba's ARM SoC, Visconti[0]. 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 Yuji Ishikawa (5): dt-bindings: media: platform: visconti: Add Toshiba Visconti Video Input Interface bindings media: platform: visconti: Add Toshiba Visconti Video Input Interface driver media: 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 .../bindings/media/toshiba,visconti-viif.yaml | 102 + .../driver-api/media/drivers/index.rst | 1 + .../media/drivers/visconti-viif.rst | 462 +++ 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 | 714 ++++ .../media/platform/toshiba/visconti/viif.h | 375 ++ .../platform/toshiba/visconti/viif_capture.c | 1481 +++++++ .../platform/toshiba/visconti/viif_capture.h | 22 + .../platform/toshiba/visconti/viif_common.c | 191 + .../platform/toshiba/visconti/viif_common.h | 38 + .../platform/toshiba/visconti/viif_controls.c | 3411 +++++++++++++++++ .../platform/toshiba/visconti/viif_controls.h | 18 + .../platform/toshiba/visconti/viif_csi2rx.c | 687 ++++ .../platform/toshiba/visconti/viif_csi2rx.h | 24 + .../toshiba/visconti/viif_csi2rx_regs.h | 102 + .../platform/toshiba/visconti/viif_isp.c | 1264 ++++++ .../platform/toshiba/visconti/viif_isp.h | 24 + .../platform/toshiba/visconti/viif_regs.h | 714 ++++ include/uapi/linux/v4l2-controls.h | 6 + include/uapi/linux/visconti_viif.h | 1800 +++++++++ 26 files changed, 11476 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/toshiba,visconti-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.25.1