Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1957222iob; Thu, 5 May 2022 11:47:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyewTRjQzi+JpA9hiByoUfYR6mUxNOTMmtrTvTdjuk4NB9yazy+hHK7GeLw1nro/ltiDC3a X-Received: by 2002:a17:906:854b:b0:6f4:58a7:5a07 with SMTP id h11-20020a170906854b00b006f458a75a07mr19863679ejy.440.1651776475119; Thu, 05 May 2022 11:47:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651776475; cv=none; d=google.com; s=arc-20160816; b=BTfzFPodtGQhgOKRIXaKsXameKLaVPxNZBRB1tVFETfa4YDoQOG7HwGoZWS3PxKlJj feasGKpAuohb9W62HDOd2PAWQM7AaYHAFr5r9cukOgioZJKs8HVR1maKuyv4b1T79GLY gz0AfHLbF8lD9VXTvyYdWdR0jwG5cWYknGwGYeHleTXDwiA+oD7IjBYkNz1V6xwHgbwy RWlZ2v+mj1a0VSInYdsUUpgREp2SGaFSg5iiW4/3o8kfYCEA8G4PIe57BLSZFbSt7pBD V3i9I7R8OXxqGK2QepLBLFyEyUeZ5hR24/Jpyab0NFrsi8qDwnH9OPY7KHLyrss4QEWh rjzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:from; bh=gpFqfW2pWbG9SFOcr31DoRwR9uEtKyiMcZxHilO8UtU=; b=SdZVKiFp/1OjU2mK0/jrVjlZVSPJ63ZcPQhBGpNBN/XSvVDV/y67vrBCLuc0kImLhS yeQUCYeZsdW9KIj8g0z5A5IHkGjcAzwQ2kfi0fToLtkqUnLab9VYw9cTff0Nu5Bxru6T Ot65nzARhZG+ydHu85zPM5TdgNl5HtB9nzlRxvzB8AA/PzHk+LbvkMy+xrqFeZb8s41D Bw78V3YJtdn/91/QqfHPgASEFv/y20EAYt7ttmWW4oUrmcLZk1JFYOegaAz/S8CH/Psb qQm8Sv8hz5I+xnEDAB9gylAVNXBVYhIXj/srfFQTmQbZa+UhZ1zcS40osMgGTpXfONgv Kf0g== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v17-20020a170906565100b006e897edaf16si2949937ejr.842.2022.05.05.11.47.30; Thu, 05 May 2022 11:47:55 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233073AbiEDOIC (ORCPT + 99 others); Wed, 4 May 2022 10:08:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351051AbiEDOHy (ORCPT ); Wed, 4 May 2022 10:07:54 -0400 Received: from mslow1.mail.gandi.net (mslow1.mail.gandi.net [217.70.178.240]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE3A13BFBF; Wed, 4 May 2022 07:04:18 -0700 (PDT) Received: from relay4-d.mail.gandi.net (unknown [217.70.183.196]) by mslow1.mail.gandi.net (Postfix) with ESMTP id 4AA4ECAB3F; Wed, 4 May 2022 13:56:04 +0000 (UTC) Received: (Authenticated sender: foss@0leil.net) by mail.gandi.net (Postfix) with ESMTPSA id 13B83E0008; Wed, 4 May 2022 13:55:56 +0000 (UTC) From: Quentin Schulz Cc: shawnx.tu@intel.com, mchehab@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Quentin Schulz , Quentin Schulz Subject: [PATCH v2 3/3] media: i2c: ov5675: parse and register V4L2 device tree properties Date: Wed, 4 May 2022 15:55:43 +0200 Message-Id: <20220504135543.59522-3-foss+kernel@0leil.net> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220504135543.59522-1-foss+kernel@0leil.net> References: <20220504135543.59522-1-foss+kernel@0leil.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE,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 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Quentin Schulz Parse V4L2 device tree properties and register controls for them. Cc: Quentin Schulz Signed-off-by: Quentin Schulz --- drivers/media/i2c/ov5675.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov5675.c b/drivers/media/i2c/ov5675.c index ccbc8dc506ff..324992fca557 100644 --- a/drivers/media/i2c/ov5675.c +++ b/drivers/media/i2c/ov5675.c @@ -778,12 +778,14 @@ static const struct v4l2_ctrl_ops ov5675_ctrl_ops = { static int ov5675_init_controls(struct ov5675 *ov5675) { + struct i2c_client *client = v4l2_get_subdevdata(&ov5675->sd); struct v4l2_ctrl_handler *ctrl_hdlr; + struct v4l2_fwnode_device_properties props; s64 exposure_max, h_blank; int ret; ctrl_hdlr = &ov5675->ctrl_handler; - ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8); + ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10); if (ret) return ret; @@ -837,9 +839,23 @@ static int ov5675_init_controls(struct ov5675 *ov5675) if (ctrl_hdlr->error) return ctrl_hdlr->error; + ret = v4l2_fwnode_device_parse(&client->dev, &props); + if (ret) + goto error; + + ret = v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &ov5675_ctrl_ops, + &props); + if (ret) + goto error; + ov5675->sd.ctrl_handler = ctrl_hdlr; return 0; + +error: + v4l2_ctrl_handler_free(ctrl_hdlr); + + return ret; } static void ov5675_update_pad_format(const struct ov5675_mode *mode, -- 2.35.1