From patchwork Fri Feb 3 23:13:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 52707 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1107644wrn; Fri, 3 Feb 2023 15:27:10 -0800 (PST) X-Google-Smtp-Source: AK7set+1GGELEmlL5h2BBZ3z8S9brwjHwFjA67WpwnH+0eYx32aTH/rcHlcR1/03Mo77WP8eeY7V X-Received: by 2002:a17:90b:1647:b0:22c:7996:bc with SMTP id il7-20020a17090b164700b0022c799600bcmr12538404pjb.41.1675466830448; Fri, 03 Feb 2023 15:27:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675466830; cv=none; d=google.com; s=arc-20160816; b=rIy2G6I7YcbmBYqydh6tJ9HVSzzlr0zyJ/LlWciFy9iyz+7amPTxg3YkX4OIBsaltJ 83RXOa0NkxLmXEZzR1QhAtMlfccQ8BnOSjbsC9mo7uKnWGyJ7xLFwimtgAoyanauRV1z py0AVbS/nl6Yu3R41GWweJDDgQkOv37n6qzY2/RQ6EO/WSpTWVWh4coptYza7s8RrqNM Gc49iIO6Ugv+kYBFYdoZSfvkIBJyKvMQ5kvU61StIsH+V+zXE61WMVxOqxuZ+/q0P0/E Mm7xTEdqTOKEQ6jnELLqV6GsatnfGS3Z0LAv9UwxnVTnR2spQG7fZDMV8oFkt+an4S55 uTYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=KHbHNdg7pHAZm+iH1umTf2t8yLyMxQ4O1NYUoM8SKQ4=; b=echpgwcCKXf4kfFirRd+z4ZZm0GbMbMXo3SqgkIyU2uSISY7QkPvTI2zxatGt+BAJQ e//ZFw4JRU86ZsbU0eupjUzNCuV10nYoQVA83p5Y1r+YzkpAiAcB1o+Ymw0HI3v8MxNz a8Dk8qiOEjTe9vQOEbvqz5Jsy8e5HoMZ+FC1TTEBzq2PvYZ/aOrNVcsMxCMefzY4QCwo UJFA9zMsiDt3oWCLY1UU/n29ZT5ljnNruDooc/xwNSo8veWIRTh3/EndW/ivUFmF6+mU sVcDXzaYtl05T00tLbhAM8a0AC1ELm9/i1DWFKrfbCQQNVQG4UGa/cT8k9faMgrmA+OE /f5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=GH1GgjQZ; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m3-20020a637103000000b004ce0ead7aabsi3832514pgc.302.2023.02.03.15.26.57; Fri, 03 Feb 2023 15:27:10 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20210112 header.b=GH1GgjQZ; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232611AbjBCXN4 (ORCPT + 99 others); Fri, 3 Feb 2023 18:13:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38876 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229814AbjBCXNy (ORCPT ); Fri, 3 Feb 2023 18:13:54 -0500 Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 240708D634; Fri, 3 Feb 2023 15:13:53 -0800 (PST) Received: by mail-pf1-x42b.google.com with SMTP id n2so4816195pfo.3; Fri, 03 Feb 2023 15:13:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=KHbHNdg7pHAZm+iH1umTf2t8yLyMxQ4O1NYUoM8SKQ4=; b=GH1GgjQZNFEmvuBmSymoXZd3w+dMuweEQssS5Sv0HcRz1X3P4GV6YymXJheadYKSSB 5/bhs3nVBE7BnbD0iGQ9VX+MDfp1oLJldRwcISktoB9IJfM3Xf/dZk4nDLhFAtdLyjZ8 IEPYimOB9brCQJ5fclnP74q+AnER8hOsOHpSRa6D//iM9HA917XbAVXQc8qN0lhcyi2x +doKrQHfVAzgMmaEdbvZmHqQJO0cDBqI1fU+gpMAaanzseDHR2N//dl2A3+8P3PbZ1R+ +wOUgZENewKDlU21i0cubU7YKCCfgUJsp/rgH6mjHsgdu0d4qiz+8on6LHEj5zj2C54y USHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KHbHNdg7pHAZm+iH1umTf2t8yLyMxQ4O1NYUoM8SKQ4=; b=AavPbVU+ZzwqmG/3wOOniiQ0rsoSvbjc5ICsRGj6GsKDKl4+0bCm3UtccaitkDc5TK BNgPwg7CDNGOgzcQnV0U3OpVE8U0j6eCl+ptMCQYD2GXHnPacHL68JEQs2N1siSM/nxh SxKxmUTCura6hbPJAarHx/EUu4rQj8ekajD8yKL7cz1DBtJSt5AlbijIbztqDSd1D4Yz gliJ/GLlaO4NEfdV72Ghh+7VI4JFkVS+hmPM9CgUbb1+dXup50X+hEW7y7NIgYnHTKmt p04XahYXfxwAIdvUp/9TlGd4LPJKw3RTpETWG/TQiqCl6zfvxmFTuisLpDHzzwYMksQD TiSQ== X-Gm-Message-State: AO0yUKVGSUJBqzcd4zubHmVCuZftouvgACzqmapiGGw8m6SRk7nuIiyt o8rGLmyVCCijRxjYNEaNvok= X-Received: by 2002:a05:6a00:330d:b0:587:8d47:acdd with SMTP id cq13-20020a056a00330d00b005878d47acddmr11019138pfb.34.1675466032436; Fri, 03 Feb 2023 15:13:52 -0800 (PST) Received: from google.com ([2620:15c:9d:2:6e90:bb76:2b36:4df2]) by smtp.gmail.com with ESMTPSA id m26-20020aa78a1a000000b0056b4c5dde61sm2441207pfa.98.2023.02.03.15.13.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Feb 2023 15:13:51 -0800 (PST) Date: Fri, 3 Feb 2023 15:13:48 -0800 From: Dmitry Torokhov To: Patrice Chotard , Mauro Carvalho Chehab Cc: Arnd Bergmann , Andy Shevchenko , Hans Verkuil , Liang He , Wan Jiabing , Hugues Fruchet , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] media: c8sectpfe: switch to using gpiod API Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756854307615108787?= X-GMAIL-MSGID: =?utf-8?q?1756854307615108787?= This switches the driver from using legacy gpio API and to the newer gpiod API. Since ordinary gpiod APIs operate on logical and not electrical levels, handling of the reset GPIO is adjusted accordingly. Signed-off-by: Dmitry Torokhov Reviewed-by: Andy Shevchenko --- .../st/sti/c8sectpfe/c8sectpfe-core.c | 31 ++++++++----------- .../st/sti/c8sectpfe/c8sectpfe-core.h | 4 ++- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c b/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c index c38b62d4f1ae..dd8141e0828d 100644 --- a/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c +++ b/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c @@ -16,8 +16,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -812,30 +814,23 @@ static int c8sectpfe_probe(struct platform_device *pdev) } of_node_put(i2c_bus); - tsin->rst_gpio = of_get_named_gpio(child, "reset-gpios", 0); - - ret = gpio_is_valid(tsin->rst_gpio); - if (!ret) { - dev_err(dev, - "reset gpio for tsin%d not valid (gpio=%d)\n", - tsin->tsin_id, tsin->rst_gpio); - ret = -EINVAL; - goto err_node_put; - } - - ret = devm_gpio_request_one(dev, tsin->rst_gpio, - GPIOF_OUT_INIT_LOW, "NIM reset"); + /* Acquire reset GPIO and activate it */ + tsin->rst_gpio = devm_fwnode_gpiod_get(dev, + of_fwnode_handle(child), + "reset", GPIOD_OUT_HIGH, + "NIM reset"); + ret = PTR_ERR_OR_ZERO(tsin->rst_gpio); if (ret && ret != -EBUSY) { - dev_err(dev, "Can't request tsin%d reset gpio\n" - , fei->channel_data[index]->tsin_id); + dev_err(dev, "Can't request tsin%d reset gpio\n", + fei->channel_data[index]->tsin_id); goto err_node_put; } if (!ret) { - /* toggle reset lines */ - gpio_direction_output(tsin->rst_gpio, 0); + /* wait for the chip to reset */ usleep_range(3500, 5000); - gpio_direction_output(tsin->rst_gpio, 1); + /* release the reset line */ + gpiod_set_value_cansleep(tsin->rst_gpio, 0); usleep_range(3000, 5000); } diff --git a/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.h b/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.h index c9d6021904cd..bf377cc82225 100644 --- a/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.h +++ b/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.h @@ -16,6 +16,8 @@ #define C8SECTPFE_MAX_TSIN_CHAN 8 +struct gpio_desc; + struct channel_info { int tsin_id; @@ -25,7 +27,7 @@ struct channel_info { int i2c; int dvb_card; - int rst_gpio; + struct gpio_desc *rst_gpio; struct i2c_adapter *i2c_adapter; struct i2c_adapter *tuner_i2c;