Message ID | 20220607134057.2427663-1-bryan.odonoghue@linaro.org (mailing list archive) |
---|---|
Headers |
Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from <linux-media-owner@vger.kernel.org>) id 1nyZSF-00Ajds-0q; Tue, 07 Jun 2022 13:41:09 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244845AbiFGNlE (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Tue, 7 Jun 2022 09:41:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244842AbiFGNlD (ORCPT <rfc822;linux-media@vger.kernel.org>); Tue, 7 Jun 2022 09:41:03 -0400 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF5F8BC6F8 for <linux-media@vger.kernel.org>; Tue, 7 Jun 2022 06:41:01 -0700 (PDT) Received: by mail-wr1-x436.google.com with SMTP id h5so24284464wrb.0 for <linux-media@vger.kernel.org>; Tue, 07 Jun 2022 06:41:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=H1AtsGdEkkqVoDoziwXz7u9gxAqoupVuYeRio02Yhgc=; b=Y7PerUmuAC+I+TxAwvOKEOP3NPC1VHKehphs8e30npMwl+dDGqLkSX50iz2BXzKBVr 7MfkDNfKgZJdv3e0N3tDHnkvGBfJKgT1Vpa0sPApGKlS9fgDUmDh5p1BWAtqpdYFXkP/ N6zgT8ZXa6HyXYbZgM1F3oncwhzyc2rp2Kjil9QhjHz63F1a8LUvwWaiGuVnWaeS3eSR QOV3pLw9hRFqEB7F1+EtoPZZHkVV91Hb9GSX6W1eyOAjQegLMTX/jiafWIbT4cmvHK6T Wvc0dr+kRoe+jdDOctNwp0EwnnBk0I503HGE+3TnE850llkSTRN7Z2WOOMWudW5GpP7V +dzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=H1AtsGdEkkqVoDoziwXz7u9gxAqoupVuYeRio02Yhgc=; b=1gwfm3EnbxGc3/hDQvTKyOFCG9OVQ7IHHMPUfWo/P0GYKAXeibrimM4xyjyyvzSVsT jZ3lQi2gULzkJgjGIXrC6b9gsuAOwTc0esAx9dkGViqucpzEZAD+3GK/wFtwXCrFBlaP 7xApYKBpKe4uL2hEe3ohDCj6DzUMasPsilzxd0klIc9bIKWpDSALZN0vfo7zlTaPiWLH Gi9Q0K+GW2Fz6ayfqyIu8C9ipOmbSLIMsyPVQGPhPOZ7af6YrBF+k7H2AdPF7cOXxl/q 3cL1QBBhWgS4CaXvgy6k19yUzMEkPEh6aRWmxt4n4/uAhvbQWFI0QgukmOdBvGwNIX2B iYRA== X-Gm-Message-State: AOAM530T97HULj5vPWnasHuoCbCsxnzN+dmvYdHS47vpfE+HKuVQkngw 8B1r//cGumGSAiaIrMSj9lJ5Yw== X-Google-Smtp-Source: ABdhPJzL9EH31N8AERCGNlck5JOegjARRYqZjS+5PlKTlV1mXDSm7m5WtDLdrVtfkbpWaNxGfC9wHA== X-Received: by 2002:a5d:59a4:0:b0:218:4a29:f12b with SMTP id p4-20020a5d59a4000000b002184a29f12bmr6732079wrr.145.1654609260350; Tue, 07 Jun 2022 06:41:00 -0700 (PDT) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id k7-20020a5d6d47000000b0020e5e906e47sm17818792wri.75.2022.06.07.06.40.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 06:40:59 -0700 (PDT) From: Bryan O'Donoghue <bryan.odonoghue@linaro.org> To: sakari.ailus@iki.fi, jacopo@jmondi.org, paul.j.murphy@intel.com, daniele.alessandrelli@intel.com, mchehab@kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org Cc: dmitry.baryshkov@linaro.org, konrad.dybcio@somainline.org, andrey.konovalov@linaro.org, Bryan O'Donoghue <bryan.odonoghue@linaro.org> Subject: [PATCH 0/2] Add imx577 compatible to imx412 Date: Tue, 7 Jun 2022 14:40:55 +0100 Message-Id: <20220607134057.2427663-1-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,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: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -2.5 (--) X-LSpam-Report: No, score=-2.5 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1 autolearn=ham autolearn_force=no |
Series |
Add imx577 compatible to imx412
|
|
Message
Bryan O'Donoghue
June 7, 2022, 1:40 p.m. UTC
Right now the imx412 and imx577 are code and pin compatible however, they are distinct pieces of silicon. Document imx577 as a compatible enum and add the compat string to imx412.c. This allows us to differentiate these chips in DTS and potentially to apply any future imx412 or imx577 specific changes appropriately. Bryan O'Donoghue (2): media: dt-bindings: imx412: Add imx577 compatible string media: i2c: imx412: Add imx577 compatible string Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml | 5 ++++- drivers/media/i2c/imx412.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
Comments
Quoting Bryan O'Donoghue (2022-06-07 14:40:55) > Right now the imx412 and imx577 are code and pin compatible however, they > are distinct pieces of silicon. > > Document imx577 as a compatible enum and add the compat string to imx412.c. > This allows us to differentiate these chips in DTS and potentially to apply > any future imx412 or imx577 specific changes appropriately. While I think this is probably fine to get things working, there seems to be quite a few extra features in the IMX577 [0] compared with the IMX412 [1]. [0] https://www.sony-semicon.co.jp/products/common/pdf/IMX412-AACK_Flyer03.pdf [1] https://www.sony-semicon.co.jp/products/common/pdf/IMX577-AACK_Flyer.pdf I certainly agree though that it's better to declare the camera correctly in the DT - so it's better to add this support than 'fake' the DT to say it's an IMX412 on the platform. wdiff /tmp/imx412 /tmp/imx577 [-IMX412-AACK-] {+IMX577-AACK+} Diagonal 7.857 mm (Type 1/2.3) 12.3 Mega-Pixel CMOS Image Sensor with Square Pixel for Color Cameras Description [-IMX412-AACK-]{+The IMX577-AACK+} is a diagonal 7.857 mm (Type 1/2.3) 12.3 Mega-pixel CMOS active pixel type stacked image sensor with a square pixel array. {+It adopts Sony’s Stacked CMOS Image Sensor technology to achieve high speed image capturing by column parallel A/D converter circuits and high sensitivity and low noise image (comparing with conventional CMOS image sensor) through the backside illuminated imaging pixel structure.+} R, G, and B pigment primary color mosaic filter is employed. It equips an electronic shutter with variable integration time. It operates with three power supply voltages: analog [-2.75-] {+2.8+} V, digital 1.05 V and 1.8 V for input/output interface and achieves low power consumption. [-(Applications: Surveillance cameras)-] {+In addition, this product is designed for use in consumer use camcorder. When using this for another application, Sony Semiconductor Solutions Corporation does not guarantee the quality and reliability of product. Therefore, don't use this for applications other than consumer use camcorder. In addition, individual specification change cannot be supported because this is a standard product. Consult your Sony Semiconductor Solutions Corporation sales representative if you have any questions.+} Features ◆ Back-illuminated and stacked CMOS image sensor ◆ Digital Overlap High Dynamic Range (DOL-HDR) mode with raw data [-output-] {+output.+} ◆ High signal to noise ratio [-(SNR)-] {+(SNR).+} ◆ Full resolution @60 frame/s (Normal), 4K2K @60 frame/s (Normal), 1080p @240 frame/s Full resolution @40 frame/s (12 bit Normal), Full resolution @30 frame/s (DOL-HDR, 2 frame) ◆ Output video format of [-RAW12/10-] {+RAW12/10/8, COMP8.+} ◆ [-Low-] Power [-Streaming-] {+Save+} Mode with MIPI ULPS operation ◆ Pixel binning readout and V sub-sampling [-function-] {+function.+} ◆ Independent flipping and [-mirroring-] {+mirroring.+} ◆ Input clock frequency [-6, 12, 18, 24 or-] {+6 to+} 27 MHz ◆ CSI-2 serial data output (MIPI 2lane/4lane, Max. 2.1 Gbps/lane, D-PHY spec. ver. 1.2 compliant) ◆ 2-wire serial [-communication-] {+communication.+} ◆ Two PLLs for independent clock generation for pixel control and data output [-interface-] {+interface.+} ◆ Defect Pixel Correction (DPC) ◆ {+Ambient Light Sensor (ALS) ◆+} Fast mode [-transition-] {+transition.+} (on the fly) ◆ Dual sensor synchronization operation (Multi camera compatible) ◆ 7 k bit of OTP ROM for [-users-] {+users. ◆ Built-in temperature sensor+} ◆ 10-bit/12-bit A/D conversion on chip ◆ Horizontal Low Power [-analog-] {+Analog+} Cropping {+◆ Window Scanning mode+} ◆ 92-pin high-precision ceramic package So picking out the diffs from that: IMX412 - Designed for Surveillance cameras - Defined input clocks of 6, 12, 18, 24 or 27MHz IMX577 + Designed for Camcorder use cases + May have an extra RAW8, COMP8 output format. + Less definition on input clock '6 to 27MHz' (may be the same) + Has an Ambiant light sensor + Has Built in temperature sensor + Window scanning mode The extra RAW modes, ALS and temperature sensor may be key differentiators in the future to be aware of. Perhaps they can be handled by the compatible string though. If only we had better/more open drivers/documentation for these components I bet they could be factored out for better support. -- Kieran > > Bryan O'Donoghue (2): > media: dt-bindings: imx412: Add imx577 compatible string > media: i2c: imx412: Add imx577 compatible string > > Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml | 5 ++++- > drivers/media/i2c/imx412.c | 1 + > 2 files changed, 5 insertions(+), 1 deletion(-) > > -- > 2.36.1 >
On 07/06/2022 22:56, Kieran Bingham wrote: > Quoting Bryan O'Donoghue (2022-06-07 14:40:55) >> Right now the imx412 and imx577 are code and pin compatible however, they >> are distinct pieces of silicon. >> >> Document imx577 as a compatible enum and add the compat string to imx412.c. >> This allows us to differentiate these chips in DTS and potentially to apply >> any future imx412 or imx577 specific changes appropriately. > While I think this is probably fine to get things working, there seems to > be quite a few extra features in the IMX577 [0] compared with the IMX412 [1]. > > [0]https://www.sony-semicon.co.jp/products/common/pdf/IMX412-AACK_Flyer03.pdf > [1]https://www.sony-semicon.co.jp/products/common/pdf/IMX577-AACK_Flyer.pdf > > I certainly agree though that it's better to declare the camera > correctly in the DT - so it's better to add this support than 'fake' the > DT to say it's an IMX412 on the platform. Agreed the specs differ but the only silicon enabling code I have access to - from the qcom camx release is a 1:1 for 412 and 577. The init process works for me on rb5 to obtain 10 bit bayer @ 30 fps. Agreed the 577 does a whole bunch of extra stuff I just have no reference either in PDF or code on how to do any of it. Its "good enough" for me in 412 mode. --- bod
Hi Kieran, On Tue, Jun 07, 2022 at 10:56:32PM +0100, Kieran Bingham wrote: > So picking out the diffs from that: > > IMX412 > - Designed for Surveillance cameras > - Defined input clocks of 6, 12, 18, 24 or 27MHz Probably the spec just these while other frequencies in the range would work equally well --- with different register configuration. The sensor might work with the CCS driver, too, with MSR configuration taken from this driver.