From patchwork Tue Jan 9 21:34:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13515404 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DE371C4707C for ; Tue, 9 Jan 2024 21:36:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=99Gt2XlaBpX5AxKcIyxHXeHmEfDZdmoavhVANAYI5A0=; b=Yk2hpiMkUDx5hO OsHZMU1nyu6CAF/NUdAY1zd8WwllSxUsbJvzYx/C/WZZmI6tAt7u+yDS6O3Vi4XgmEBeJZQcAYdTm ktyQ9Xn9FCb9W8iDuynMPC5ybs3+pWcW3K7o7lSzXl10LCtr1mvgvfdJJk3ZwXX8nDGm0CXsE2oaI zDZeG+9Wx+HC9YDZ28kVNaaGLl2bKlBtTMx9Nk8ZF7z79Du1h5ZMI8t5fTGtKoO8rH2oaTEN8KDh5 fez6L9BhhIBgqZDleh1v+n0pelGurZIEMgSVgsdH/DeemNIRDrrk2i1+XdF8sQOOgM/nM1lMcOPkt or4BxQDybRO9iXNcfwbQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNJlM-009ZVU-10; Tue, 09 Jan 2024 21:35:56 +0000 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rNJlI-009ZUH-2i for linux-arm-kernel@lists.infradead.org; Tue, 09 Jan 2024 21:35:54 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rNJkD-0006cp-6D; Tue, 09 Jan 2024 22:34:45 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNJkB-001Z2C-GH; Tue, 09 Jan 2024 22:34:43 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1rNJkB-00667w-1H; Tue, 09 Jan 2024 22:34:43 +0100 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Thierry Reding Cc: Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Alexander Shiyan , Benson Leung , Guenter Roeck , dri-devel@lists.freedesktop.org, kernel@pengutronix.de, linux-pwm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, chrome-platform@lists.linux.dev Subject: [PATCH 2/5] pwm: Drop useless member .of_pwm_n_cells of struct pwm_chip Date: Tue, 9 Jan 2024 22:34:32 +0100 Message-ID: <53d8c545aa8f79a920358be9e72e382b3981bdc4.1704835845.git.u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5203; i=u.kleine-koenig@pengutronix.de; h=from:subject:message-id; bh=GJ0QtTqjWHKutYbvp2zQTs/Phsuql2QUxQ8yJz35gAI=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBlnbvrhTT7y69ES64JrD+RrccwPuJTtkKJygiSm Ib3qp9QMJ6JATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZZ276wAKCRCPgPtYfRL+ Tr3HCACFpOQpAlmiIB6gDwhfqub+Og4pnYAbOzF4PJ2YCxccK/gZciaqUudnsp5w0RRaOeU+ff+ WeBIldrVZ5lRQocQKX9qtV835zLJb9JXBRrFQuf0EWgQuBVUE5Rg6o2Gi5JYgAZeNsQMdv9krS5 kD6J/hQe11lAcHqtTkNrsJo8VQUZlaAwkvym+M7C5Etu3wL0f1HljxFTk3fOX2rrv74rIQuSDe2 5q56LeQ2/n2c/5mdHh83xUYTyCQ90yaJuVCpyRuppNBUoEWVahX95fVi11/MqIohHSLQKXd69O+ L89MtSMdfG0C/ghykbapH2IcDu+wlwjhgJ8fW+Jq7BL4p3rF X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240109_133553_030345_2D7AF58F X-CRM114-Status: GOOD ( 19.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Apart from the two of_xlate implementations this member is write-only. In the of_xlate functions of_pwm_xlate_with_flags() and of_pwm_single_xlate() it's more sensible to check for args->args_count because this is what is actually used in the device tree. Signed-off-by: Uwe Kleine-König Acked-by: Douglas Anderson --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 - drivers/pwm/core.c | 22 +++------------------- drivers/pwm/pwm-clps711x.c | 1 - drivers/pwm/pwm-cros-ec.c | 1 - drivers/pwm/pwm-pxa.c | 4 +--- include/linux/pwm.h | 2 -- 6 files changed, 4 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index c45c07840f64..02d9449956e5 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -1591,7 +1591,6 @@ static int ti_sn_pwm_probe(struct auxiliary_device *adev, pdata->pchip.ops = &ti_sn_pwm_ops; pdata->pchip.npwm = 1; pdata->pchip.of_xlate = of_pwm_single_xlate; - pdata->pchip.of_pwm_n_cells = 1; return pwmchip_add(&pdata->pchip); } diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index f2728ee787d7..31f210872a07 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -107,9 +107,6 @@ of_pwm_xlate_with_flags(struct pwm_chip *chip, const struct of_phandle_args *arg { struct pwm_device *pwm; - if (chip->of_pwm_n_cells < 2) - return ERR_PTR(-EINVAL); - /* flags in the third cell are optional */ if (args->args_count < 2) return ERR_PTR(-EINVAL); @@ -124,10 +121,8 @@ of_pwm_xlate_with_flags(struct pwm_chip *chip, const struct of_phandle_args *arg pwm->args.period = args->args[1]; pwm->args.polarity = PWM_POLARITY_NORMAL; - if (chip->of_pwm_n_cells >= 3) { - if (args->args_count > 2 && args->args[2] & PWM_POLARITY_INVERTED) - pwm->args.polarity = PWM_POLARITY_INVERSED; - } + if (args->args_count > 2 && args->args[2] & PWM_POLARITY_INVERTED) + pwm->args.polarity = PWM_POLARITY_INVERSED; return pwm; } @@ -138,9 +133,6 @@ of_pwm_single_xlate(struct pwm_chip *chip, const struct of_phandle_args *args) { struct pwm_device *pwm; - if (chip->of_pwm_n_cells < 1) - return ERR_PTR(-EINVAL); - /* validate that one cell is specified, optionally with flags */ if (args->args_count != 1 && args->args_count != 2) return ERR_PTR(-EINVAL); @@ -164,16 +156,8 @@ static void of_pwmchip_add(struct pwm_chip *chip) if (!chip->dev || !chip->dev->of_node) return; - if (!chip->of_xlate) { - u32 pwm_cells; - - if (of_property_read_u32(chip->dev->of_node, "#pwm-cells", - &pwm_cells)) - pwm_cells = 2; - + if (!chip->of_xlate) chip->of_xlate = of_pwm_xlate_with_flags; - chip->of_pwm_n_cells = pwm_cells; - } of_node_get(chip->dev->of_node); } diff --git a/drivers/pwm/pwm-clps711x.c b/drivers/pwm/pwm-clps711x.c index 42179b3f7ec3..06562d4bb963 100644 --- a/drivers/pwm/pwm-clps711x.c +++ b/drivers/pwm/pwm-clps711x.c @@ -103,7 +103,6 @@ static int clps711x_pwm_probe(struct platform_device *pdev) priv->chip.dev = &pdev->dev; priv->chip.npwm = 2; priv->chip.of_xlate = clps711x_pwm_xlate; - priv->chip.of_pwm_n_cells = 1; spin_lock_init(&priv->lock); diff --git a/drivers/pwm/pwm-cros-ec.c b/drivers/pwm/pwm-cros-ec.c index 5fe303b8656d..339cedf3a7b1 100644 --- a/drivers/pwm/pwm-cros-ec.c +++ b/drivers/pwm/pwm-cros-ec.c @@ -279,7 +279,6 @@ static int cros_ec_pwm_probe(struct platform_device *pdev) chip->dev = dev; chip->ops = &cros_ec_pwm_ops; chip->of_xlate = cros_ec_pwm_xlate; - chip->of_pwm_n_cells = 1; if (ec_pwm->use_pwm_type) { chip->npwm = CROS_EC_PWM_DT_COUNT; diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index 76685f926c75..61b74fa1d348 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -180,10 +180,8 @@ static int pwm_probe(struct platform_device *pdev) pc->chip.ops = &pxa_pwm_ops; pc->chip.npwm = (id->driver_data & HAS_SECONDARY_PWM) ? 2 : 1; - if (IS_ENABLED(CONFIG_OF)) { + if (IS_ENABLED(CONFIG_OF)) pc->chip.of_xlate = of_pwm_single_xlate; - pc->chip.of_pwm_n_cells = 1; - } pc->mmio_base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(pc->mmio_base)) diff --git a/include/linux/pwm.h b/include/linux/pwm.h index fcc2c4496f73..8ffe9ae7a23a 100644 --- a/include/linux/pwm.h +++ b/include/linux/pwm.h @@ -271,7 +271,6 @@ struct pwm_ops { * @id: unique number of this PWM chip * @npwm: number of PWMs controlled by this chip * @of_xlate: request a PWM device given a device tree PWM specifier - * @of_pwm_n_cells: number of cells expected in the device tree PWM specifier * @atomic: can the driver's ->apply() be called in atomic context * @pwms: array of PWM devices allocated by the framework */ @@ -284,7 +283,6 @@ struct pwm_chip { struct pwm_device * (*of_xlate)(struct pwm_chip *chip, const struct of_phandle_args *args); - unsigned int of_pwm_n_cells; bool atomic; /* only used internally by the PWM framework */ From patchwork Tue Jan 9 21:34:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13515402 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1EB82C4706C for ; Tue, 9 Jan 2024 21:35:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0/ldlkRC24GCEUaatgXkI2Bf9ezLmfNfIgnIKmVfVWc=; b=RClzGCHYs3QiaR Hqze/d1vmXSNziRVjEXQwl1RNfVqcZJ+yi50sfpAlGRyrCigK5skeRKt6YtWH0P8OyvyoKYvZaRMy FBKpVqcqyg7zGR7OSBCaxdWAvI8PMgnOtILwX+L9S68sK0M4DInLDrQ5slhxBRKmZPWPzfGYQog8r 6pNoDS2KNuJ+Jgog10JByyOMuft3Ah8NHWQdOM2Nnr0a9VYjnRVvJa5soo+Lb4q0kUQkGupCLpwTF tYvKi89QeRgu+HMjJzga9gtFe6hDOIYLh/8THFV2POvaZwl2neVSOQTDv2kfJg584JcdTBdDOdRRX /lGZXHPZvZ0U0DKY/vkg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNJkL-009ZJG-0g; Tue, 09 Jan 2024 21:34:53 +0000 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rNJkI-009ZIU-1Y for linux-arm-kernel@lists.infradead.org; Tue, 09 Jan 2024 21:34:52 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rNJkC-0006d7-LL; Tue, 09 Jan 2024 22:34:44 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNJkC-001Z2J-1I; Tue, 09 Jan 2024 22:34:44 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1rNJkB-006684-36; Tue, 09 Jan 2024 22:34:43 +0100 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Thierry Reding Cc: Alexander Shiyan , linux-pwm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de Subject: [PATCH 4/5] pwm: clps711x: Drop custom .of_xlate() callback Date: Tue, 9 Jan 2024 22:34:34 +0100 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1231; i=u.kleine-koenig@pengutronix.de; h=from:subject:message-id; bh=MRf9JAs8zCjPUJzbSQFNiSB8gbAELLop2Pk86mvT/YI=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBlnbvtCkegZGK8b4lOH4ObugUAivVjxHTc/xweO GSp5klUCMyJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZZ277QAKCRCPgPtYfRL+ TvNjB/0SJdDG80i+BMkqUniB/tNuDFlHVBxzovEJ1nmIb2CpaynXJSpXcx6VpD20/osduQrTIzA 9+WDo5XCvm+XLhyUPAbjJkpUNo0O+pDi7W1dWVveCfyrnrh6EN/9K4N+fh2kDbjr5X+AUg9i8M9 TdeBKU1eK/RqLnhxbCkk0l/YX/jU4WE0imE+bEdgeeTh1XCmC9olO9eEs1rVmgkxCp31AGSOc7K cbbSBC66yFsbGUYFY4kx9D4S4xXfGF7TUcfSr1k5OnbmlFSFEzhJpFGet29XT4qlJeaq7S/PCfM crHLProsjMM/UzoD5jo4La4pKROn7UlPik49IIFVFNA/f52E X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240109_133450_534672_2188DA0E X-CRM114-Status: GOOD ( 11.22 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The default of_xlate callback (of_pwm_xlate_with_flags()) does everything the drivers expects from its .of_xlate() callback. So drop the custom implementation. Signed-off-by: Uwe Kleine-König --- drivers/pwm/pwm-clps711x.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/pwm/pwm-clps711x.c b/drivers/pwm/pwm-clps711x.c index 06562d4bb963..f3b4af7963be 100644 --- a/drivers/pwm/pwm-clps711x.c +++ b/drivers/pwm/pwm-clps711x.c @@ -74,15 +74,6 @@ static const struct pwm_ops clps711x_pwm_ops = { .apply = clps711x_pwm_apply, }; -static struct pwm_device *clps711x_pwm_xlate(struct pwm_chip *chip, - const struct of_phandle_args *args) -{ - if (args->args[0] >= chip->npwm) - return ERR_PTR(-EINVAL); - - return pwm_request_from_chip(chip, args->args[0], NULL); -} - static int clps711x_pwm_probe(struct platform_device *pdev) { struct clps711x_chip *priv; @@ -102,7 +93,6 @@ static int clps711x_pwm_probe(struct platform_device *pdev) priv->chip.ops = &clps711x_pwm_ops; priv->chip.dev = &pdev->dev; priv->chip.npwm = 2; - priv->chip.of_xlate = clps711x_pwm_xlate; spin_lock_init(&priv->lock);