From patchwork Sun Nov 13 23:36:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703372 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=Xf9X45aw; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TNz0BdTz23nK for ; Mon, 14 Nov 2022 10:36:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233793AbiKMXgu (ORCPT ); Sun, 13 Nov 2022 18:36:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230525AbiKMXgt (ORCPT ); Sun, 13 Nov 2022 18:36:49 -0500 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29F2CCE2A for ; Sun, 13 Nov 2022 15:36:49 -0800 (PST) Received: by mail-pf1-x434.google.com with SMTP id y13so9534845pfp.7 for ; Sun, 13 Nov 2022 15:36:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JA/+4JMPRi8hzrqhKnb+aNk6xu53Qw2sorxsmEi56VU=; b=Xf9X45awjbJNSpsDPfBC83agtjxVHdqLMoQfyEgGCoXXj+KeZ+g4OG4SK1JtHXQF90 mkVV2rugqxlucXdjV+wc5BrM4YXHsmNtCG5twavjl9dTfwE+ItITVXCocJRc/PHOxrG3 gHgRoKuhFIEOuYg4uKGk8FjMD79AmS+oEJm+A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JA/+4JMPRi8hzrqhKnb+aNk6xu53Qw2sorxsmEi56VU=; b=41JOjcs1KaoPnRcmD3bgfBBtpxHc4q8GarQfMHeBrQGEKe3EXIDMbjnhAdM28+UE8N ztJm7ELvdZwsSH1P6EzXPFqvTEaikQEZWJwfofCQ4jjpWVsIjb/gh1pNhmEzQeITy4Ab ladXAn942j/DhIy81ZpmU2en7A7tSHA2gbb/xod5lhnK70xjZg5OI7w1fnCrrlZqua3F v8pJkeZu6f+DfPvaFjwB2uPEn4UIIn418ZKaiIwYbqR2+Qdq6HJdvKfqdF9YR9idF8jr 2aibf9PUOX1yAi5ZZkq+DtXXPOB4nHrkzLV/M2Pd4MacATYmRC2aLCNB7kc/KC5ElpD8 /7EA== X-Gm-Message-State: ANoB5pm/hxiSN8ZAOsucvvcY811Guayv2lUGgP3EQclePeduhNq+ZT0u EjHuVaqPD92ttasDRm/bZyFwZg== X-Google-Smtp-Source: AA0mqf5KvSQyeSjCTq81bEOOgNGz4J9swD5nmNFm00/d9u3Y2gVdEYY4JTETsDUjT2fy0FEcCVkWbQ== X-Received: by 2002:a63:4509:0:b0:46f:b6df:3107 with SMTP id s9-20020a634509000000b0046fb6df3107mr9851086pga.454.1668382608577; Sun, 13 Nov 2022 15:36:48 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:36:47 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 1/6] pwm: pxa: Remove pxa_pwm_enable/disable Date: Sun, 13 Nov 2022 15:36:34 -0800 Message-Id: <20221113233639.24244-2-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org These functions are only acting as wrappers for clk_prepare_enable and clk_disable_unprepare now, so remove them to simplify the driver. Suggested-by: Uwe Kleine-König Signed-off-by: Doug Brown Reviewed-by: Uwe Kleine-König --- drivers/pwm/pwm-pxa.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index 0bcaa58c6a91..0ac052652c62 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -101,23 +101,10 @@ static int pxa_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, return 0; } -static int pxa_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) -{ - struct pxa_pwm_chip *pc = to_pxa_pwm_chip(chip); - - return clk_prepare_enable(pc->clk); -} - -static void pxa_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) -{ - struct pxa_pwm_chip *pc = to_pxa_pwm_chip(chip); - - clk_disable_unprepare(pc->clk); -} - static int pxa_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, const struct pwm_state *state) { + struct pxa_pwm_chip *pc = to_pxa_pwm_chip(chip); int err; if (state->polarity != PWM_POLARITY_NORMAL) @@ -125,7 +112,7 @@ static int pxa_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, if (!state->enabled) { if (pwm->state.enabled) - pxa_pwm_disable(chip, pwm); + clk_disable_unprepare(pc->clk); return 0; } @@ -135,7 +122,7 @@ static int pxa_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, return err; if (!pwm->state.enabled) - return pxa_pwm_enable(chip, pwm); + return clk_prepare_enable(pc->clk); return 0; } From patchwork Sun Nov 13 23:36:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703373 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=SHRsqkbs; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TP21ZNxz23nJ for ; Mon, 14 Nov 2022 10:36:54 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230525AbiKMXgx (ORCPT ); Sun, 13 Nov 2022 18:36:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235014AbiKMXgw (ORCPT ); Sun, 13 Nov 2022 18:36:52 -0500 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89C07D2D3 for ; Sun, 13 Nov 2022 15:36:51 -0800 (PST) Received: by mail-pf1-x431.google.com with SMTP id i3so9513197pfc.11 for ; Sun, 13 Nov 2022 15:36:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=leQgJ9bcx3VfAns6DS1hNL1QDESZmnuXmuLithED7DY=; b=SHRsqkbshmSG2494oxRUFMXSx65xC5XzbK/JHle0LwA0lyrHP5Tz9i7gBq38skSD4X UEx5z3LGoxjBmSC2PnTKFbY/bu5riOY34rdddUb6CBHPB4mkReXstb1cY7coKwwwPMQI Sbu1PQZ7ihHNo1K1doI7E/86CQrXQeD6N1dnU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=leQgJ9bcx3VfAns6DS1hNL1QDESZmnuXmuLithED7DY=; b=D2FpcD4CB21VesE9ANtxiS0Q3Sv09Qo+VvnvNkcNwXUcKAiGi0fzeN2Er4TVU8sgIQ VE+f2McK8R+UD4GyezzmA2xacIPKK2IgGhPtH1DgLyKE+uRCaNdHCOAuCsVOK+FCL8a9 8g9cEbCn3yQ3O1lgXjUlkqTTbGsVVaqCSYXX89Hq6ZIv25+s9pe85YJF6i0en0AMwBkt 8RUNotUzcF8RYipprSnVOQmX+dMW/iQJtMZbn1xSK35uPym/I/KRmlTwh/rg8e2EKgg/ kxp62FjsRZjcrL4nImXWYuhmgi5lArHhFsrMt4HFatqmz31vP5IarHqSeDkR3zfDFXzK rOWQ== X-Gm-Message-State: ANoB5pmaJlS7AI2DH576sCt5a6C2GggvrwCmE+aoYRyRKbBxWFdnV21N 9n9JYuHPrchEXtAj+2Z78J/1eQ== X-Google-Smtp-Source: AA0mqf79kAsx9d36/aG9XzlGtOaCIYe1HvUi2sziXMZf4oN7uCneSMKtA4bnbB02JgMqalQXIq/DYA== X-Received: by 2002:a63:1d49:0:b0:476:898c:ded5 with SMTP id d9-20020a631d49000000b00476898cded5mr1668226pgm.299.1668382611024; Sun, 13 Nov 2022 15:36:51 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:36:50 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 2/6] pwm: pxa: Set duty cycle to 0 when disabling PWM Date: Sun, 13 Nov 2022 15:36:35 -0800 Message-Id: <20221113233639.24244-3-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org When disabling PWM, the duty cycle needs to be set to 0. This prevents the previous duty cycle from showing up momentarily when the clock is re-enabled next time. Because the clock has to be running in order to configure the duty cycle, unconditionally enable it early in pxa_pwm_apply and account for the correct enable count at the end. Suggested-by: Uwe Kleine-König Signed-off-by: Doug Brown Reviewed-by: Uwe Kleine-König --- drivers/pwm/pwm-pxa.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index 0ac052652c62..9ee9b41d62b8 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -105,24 +105,31 @@ static int pxa_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, const struct pwm_state *state) { struct pxa_pwm_chip *pc = to_pxa_pwm_chip(chip); + u64 duty_cycle; int err; if (state->polarity != PWM_POLARITY_NORMAL) return -EINVAL; - if (!state->enabled) { - if (pwm->state.enabled) - clk_disable_unprepare(pc->clk); + err = clk_prepare_enable(pc->clk); + if (err) + return err; - return 0; - } + duty_cycle = state->enabled ? state->duty_cycle : 0; - err = pxa_pwm_config(chip, pwm, state->duty_cycle, state->period); - if (err) + err = pxa_pwm_config(chip, pwm, duty_cycle, state->period); + if (err) { + clk_disable_unprepare(pc->clk); return err; + } + + if (state->enabled && !pwm->state.enabled) + return 0; + + clk_disable_unprepare(pc->clk); - if (!pwm->state.enabled) - return clk_prepare_enable(pc->clk); + if (!state->enabled && pwm->state.enabled) + clk_disable_unprepare(pc->clk); return 0; } From patchwork Sun Nov 13 23:36:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703374 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=le8na0Py; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TP32XHvz23nJ for ; Mon, 14 Nov 2022 10:36:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233029AbiKMXgy (ORCPT ); Sun, 13 Nov 2022 18:36:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235014AbiKMXgy (ORCPT ); Sun, 13 Nov 2022 18:36:54 -0500 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86E15CE2A for ; Sun, 13 Nov 2022 15:36:53 -0800 (PST) Received: by mail-pj1-x1032.google.com with SMTP id m14-20020a17090a3f8e00b00212dab39bcdso12322842pjc.0 for ; Sun, 13 Nov 2022 15:36:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hhnmldC/KC8ynC2xFeluinhd/J6Lon5h4EuseZ1p76o=; b=le8na0PyeiQofD2uKLUTMevqmElaBkdpnHGNAw3uimRcTofF6HIiQ0xI4au3RxZHY5 AaDYxfuErnsE/YpQ/M7Es8jXtIMRccIgV+73cGCp3WY8xlOQtMyuOlDn1ncdTASk8iTq DMh63N6oQJXoTKkJ9my2BsKbPZf1mN16xhqdQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hhnmldC/KC8ynC2xFeluinhd/J6Lon5h4EuseZ1p76o=; b=MOZoCjqlhuGGBsM3PktCwz2/KTm4YShd9GaUYziisRjRZn01laCj7ufn8uFtKwiyId U7aFjdc4wDvOWfIU3kbUl6irE3CWZtNL4vj0tQ8Dz4Y0+sWprN/cxa+d6+DZfY5+qvTx LGmjH1Dkms0ZGk5pQmQulrYdeZEsZgbc2hJOILkolmw4mZLWO4CBovuY2FMOUwdg3AyV QM8e9Da3UPihk4sBXb9tiFc1QrQb4Xo6zrTInV/jIl4SRQFCSLUJ2TowmJQ+5daApAP6 jV0Rpl9Kxpxq7YrECXaExWesnLUIccHGkO573q+4pKjtmuxG5OQQLh8ZoC9tnvxwpfyc 0IkA== X-Gm-Message-State: ANoB5pnOkwVgnBerPOaMmVHaFuIgimlonsYcZFcLzR14uNE0BdaCDRxF 8RfT+AaELRmFSYliBrz5wOiokA== X-Google-Smtp-Source: AA0mqf60OVmuiSUl5IL+CpEZfJmNFI74FdqOxkcfLV6AQ2EebWZBQQeEXQ/fFw3QgO3EsHJnEqW8xA== X-Received: by 2002:a17:902:8506:b0:174:a0e6:428 with SMTP id bj6-20020a170902850600b00174a0e60428mr11466540plb.124.1668382612963; Sun, 13 Nov 2022 15:36:52 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:36:52 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 3/6] pwm: pxa: Remove clk enable/disable from pxa_pwm_config Date: Sun, 13 Nov 2022 15:36:36 -0800 Message-Id: <20221113233639.24244-4-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org Now that pxa_pwm_apply always enables the clock first, there is no need for pxa_pwm_config to do any clock enabling/disabling. Signed-off-by: Doug Brown Reviewed-by: Uwe Kleine-König --- drivers/pwm/pwm-pxa.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index 9ee9b41d62b8..cf4d22c91929 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -64,7 +64,6 @@ static int pxa_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, unsigned long long c; unsigned long period_cycles, prescale, pv, dc; unsigned long offset; - int rc; offset = pwm->hwpwm ? 0x10 : 0; @@ -86,18 +85,10 @@ static int pxa_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, else dc = mul_u64_u64_div_u64(pv + 1, duty_ns, period_ns); - /* NOTE: the clock to PWM has to be enabled first - * before writing to the registers - */ - rc = clk_prepare_enable(pc->clk); - if (rc < 0) - return rc; - writel(prescale, pc->mmio_base + offset + PWMCR); writel(dc, pc->mmio_base + offset + PWMDCR); writel(pv, pc->mmio_base + offset + PWMPCR); - clk_disable_unprepare(pc->clk); return 0; } From patchwork Sun Nov 13 23:36:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703375 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=N+2owV/0; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TP71P1Nz23nJ for ; Mon, 14 Nov 2022 10:36:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235014AbiKMXg5 (ORCPT ); Sun, 13 Nov 2022 18:36:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234152AbiKMXg5 (ORCPT ); Sun, 13 Nov 2022 18:36:57 -0500 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F6DDCE2A for ; Sun, 13 Nov 2022 15:36:56 -0800 (PST) Received: by mail-pj1-x1029.google.com with SMTP id h14so8911479pjv.4 for ; Sun, 13 Nov 2022 15:36:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9Kyvw31TgLffj7HAZf1IK3Or+xdvZYADxQVyVGeC+sM=; b=N+2owV/06cxVuwWWOH6E2/XJgD7bgJJo5PLjkrDciNlZOS4uhDPhc4fEs6fuUqZ00i gR9zJq8dKYiXzP4tqxfQIk1iPLgXuQdibHhwkv9P1omnHepoBMetEWeSFGyP8WZJuOZT YIFEDJzxPAJgClUFkiwG0KFuUshQvznwyJp1I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9Kyvw31TgLffj7HAZf1IK3Or+xdvZYADxQVyVGeC+sM=; b=1cqNGhBmqwXlc7857Zed6c6mVYrco6ks3waUFZI4YotyEVyhqJnFtkdIUZQfBZL3sn njxG9+UdJH/u9ygb/OgTxG0C2U1zDdGoYbYkS4wmv95tjJFpxZb5+hB9DQs+NnZAbjxj vX00XkYHfd6rTY7kHR8cLH6LtE3w38oPlCYxtE9OmsIJ6QLTo8fI67Pcp+WY+uDBjeE9 9fIW+rvmcHIBK0N71cM3JHGOZmE7UCV11EZ0wH054x4vJKblj8+5sXeO/xhEBffOuCnd KUV2q3Ry1lofMcStnSnoH8zExHlV8QJ+YDVrJn5QMCBluI7nSDgVnQ65vmODfbtZ41a8 BUqw== X-Gm-Message-State: ANoB5pmculsMhOHSFtNQbGU3qgmplQGpis/d2EleOhwvoyOKE+7TRcVP 8GaXGMXN9cxG67fHjQ8N7Z9uDw== X-Google-Smtp-Source: AA0mqf41quJ8U+vXHa5URPajEA7I7bM+ukphrv5tbi6vNT+5eqyKmD1oF6nO1EENN3giJozmyYJUiQ== X-Received: by 2002:a17:902:c385:b0:16e:e703:2186 with SMTP id g5-20020a170902c38500b0016ee7032186mr11520054plg.90.1668382615677; Sun, 13 Nov 2022 15:36:55 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:36:55 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 4/6] pwm: pxa: Use abrupt shutdown mode Date: Sun, 13 Nov 2022 15:36:37 -0800 Message-Id: <20221113233639.24244-5-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org Switch to abrupt shutdown mode in order to stop the clock as soon as possible when PWM is disabled. This minimizes the possibility of the clock being re-enabled while it is still in the process of turning off, which will result in the clock ending up erroneously disabled. Signed-off-by: Doug Brown Reviewed-by: Uwe Kleine-König --- drivers/pwm/pwm-pxa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index cf4d22c91929..00063ead7c0a 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -85,7 +85,7 @@ static int pxa_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, else dc = mul_u64_u64_div_u64(pv + 1, duty_ns, period_ns); - writel(prescale, pc->mmio_base + offset + PWMCR); + writel(prescale | PWMCR_SD, pc->mmio_base + offset + PWMCR); writel(dc, pc->mmio_base + offset + PWMDCR); writel(pv, pc->mmio_base + offset + PWMPCR); From patchwork Sun Nov 13 23:36:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703376 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=at3xK04x; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TP922cdz23nJ for ; Mon, 14 Nov 2022 10:37:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235280AbiKMXhA (ORCPT ); Sun, 13 Nov 2022 18:37:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234152AbiKMXg7 (ORCPT ); Sun, 13 Nov 2022 18:36:59 -0500 Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A93ACE2A for ; Sun, 13 Nov 2022 15:36:58 -0800 (PST) Received: by mail-pl1-x636.google.com with SMTP id l2so8588022pld.13 for ; Sun, 13 Nov 2022 15:36:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OePMi4mw1G/4lVVl2oHBMTsTK79Bvn24hVYBtQka0Pg=; b=at3xK04xbxXGg/veF1pZy1G3bPzAWRmtCNKlHJbBIelJxedJiOXq3VytNrmYFlkJg0 riWr6tppZGo2hfD5qtuAHGd63VetpubgRgnAu8nfJleMCd6tXj+oXE2zFqDuLnA23ONR 6Z5q82O8UubMcCJt00HP9f9/UMW9HiUL4CKRA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OePMi4mw1G/4lVVl2oHBMTsTK79Bvn24hVYBtQka0Pg=; b=Lctl+N9VloEGgtKEZeYQ3lK9eaxFk14EK6AK9gI40cejH5SuiX6IDjYX1NyLf85Av7 h0sZF9qqQjzNHubKMMLYwWM7299m9t1hZg22ta8TU3O+OcoBAXZysnEiJZq+nb1Th2V9 TBWgYb7GF5CshdfWdRdt4VKmL/YJOOfbIacrFtR+TVfFZ6ukvSGRqQ+dKgAS+toijZn2 mWqIfPMRE+CSccgUbY1POdopRpT99mHc5lQThNFtOQ0Z0pc6/ehF33wrmepzOGAbozW/ KtLE6DKTP37+hinZn3AfncUa5wqoczmk9fxH50h3QL59yzROuBKWS7Xncp4i/FMkjewV 4tYQ== X-Gm-Message-State: ANoB5pkzoHOj1TKoDzVUuxdowMS2fA/ultBO4NH/j2y5UkKOLP8CKXuq 9yyUhehM8WejAghItMkzQHCnfA== X-Google-Smtp-Source: AA0mqf6dwNAc3sR2cIL78dJGc2O3mdWuUQdoH2O4mqtX7ogA36yRttkNqe7cGirBeXYF9r5uiXbbAw== X-Received: by 2002:a17:903:2797:b0:17f:628d:2a8 with SMTP id jw23-20020a170903279700b0017f628d02a8mr10878153plb.34.1668382617898; Sun, 13 Nov 2022 15:36:57 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:36:57 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 5/6] pwm: pxa: Add reference manual link and limitations Date: Sun, 13 Nov 2022 15:36:38 -0800 Message-Id: <20221113233639.24244-6-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org Add a pointer to the location of reference manuals for some of the supported chips, and add a limitations section explaining the hardware's PWM disable behavior. Suggested-by: Uwe Kleine-König Signed-off-by: Doug Brown Reviewed-by: Uwe Kleine-König --- drivers/pwm/pwm-pxa.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index 00063ead7c0a..46ed668bd141 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c @@ -6,6 +6,13 @@ * * 2008-02-13 initial version * eric miao + * + * Links to reference manuals for some of the supported PWM chips can be found + * in Documentation/arm/marvell.rst. + * + * Limitations: + * - When PWM is stopped, the current PWM period stops abruptly at the next + * input clock (PWMCR_SD is set) and the output is driven to inactive. */ #include From patchwork Sun Nov 13 23:36:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Brown X-Patchwork-Id: 1703377 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=schmorgal.com header.i=@schmorgal.com header.a=rsa-sha256 header.s=google header.b=EvBM+GOX; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N9TPB6H2lz23nJ for ; Mon, 14 Nov 2022 10:37:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235318AbiKMXhC (ORCPT ); Sun, 13 Nov 2022 18:37:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234152AbiKMXhB (ORCPT ); Sun, 13 Nov 2022 18:37:01 -0500 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12B67CE2A for ; Sun, 13 Nov 2022 15:37:01 -0800 (PST) Received: by mail-pf1-x435.google.com with SMTP id b29so9508570pfp.13 for ; Sun, 13 Nov 2022 15:37:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=schmorgal.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uDS2LHrr0iyus1PVsFFCM5d1XlkXhGS0bBzYDSzvT2c=; b=EvBM+GOXIkFNeOPimGHVcJ7FbDPBgHvlS7yU94qiaQxpf9tkzcGrj0PbqYgH/pbKsg Q1UDIZYOfG9y/ZTTtLCT7qiXu8UAW6cdbYFKdgNSIJeDIjUY1xz0ij1sHA4MUgJfoI6i 9JNUJ+xkm9eR96DTb003LWg7o91uI2cl+sE6A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uDS2LHrr0iyus1PVsFFCM5d1XlkXhGS0bBzYDSzvT2c=; b=IDgwLwWXGTbCxb7QMbYwccuSb+JbBAvY4DT90i+Eb9SGL740MFFDejuYOakaoSavok HrFS/C3KJoByPf9Iy95sqTK9REAmwsZKTXRKupGoz+pGX4w31Ftdt17OBwDAuIvf7zwe otV7AqkhdDH7lWnAxqJgInrL6MQfGsws8LfMvNyHYO3HQ8Q3bEX8llYyoOwoxr5ffTnR 17zFhKmlU9sSc7ax8h/smOH7ZZTBIYT+K38LH+TF1CeZ6LUR3O5wUxsmIwqSKvfOykXE 8w++cyHfXH/PRv2fj2gzmvGnrb8hCw/+ZxQGQaPAaFcWohCxwdC8BAt+diJRuCuW5uOT H0+w== X-Gm-Message-State: ANoB5pmm0OlLbO3xbh02VXWbRrDeKlehP8V92RCDOW5f7380HnhOLCOr tQlmJaXYm7F1z4JGj4JEgPAZsyHRiVSEECW5Odg= X-Google-Smtp-Source: AA0mqf5lPsWgYCg9g+lTtmQpD8Vcbsk7VwxZXhNZa3oUDCl+E3Sb47gVEfDTwvhymobagfQFq3Q05g== X-Received: by 2002:a63:ea03:0:b0:470:814c:f54a with SMTP id c3-20020a63ea03000000b00470814cf54amr9678012pgi.516.1668382620494; Sun, 13 Nov 2022 15:37:00 -0800 (PST) Received: from doug-ryzen-5700G.. ([192.183.212.197]) by smtp.gmail.com with ESMTPSA id q14-20020a635c0e000000b004597e92f99dsm4641990pgb.66.2022.11.13.15.36.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 15:37:00 -0800 (PST) From: Doug Brown To: Thierry Reding , =?utf-8?q?Uwe_Kleine-K=C3=B6n?= =?utf-8?q?ig?= Cc: linux-pwm@vger.kernel.org, Doug Brown Subject: [PATCH v3 6/6] pwm: pxa: Enable for MMP platform Date: Sun, 13 Nov 2022 15:36:39 -0800 Message-Id: <20221113233639.24244-7-doug@schmorgal.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221113233639.24244-1-doug@schmorgal.com> References: <20221113233639.24244-1-doug@schmorgal.com> MIME-Version: 1.0 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 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-pwm@vger.kernel.org The PXA168, which is part of the MMP platform, also uses this driver. Signed-off-by: Doug Brown Acked-by: Uwe Kleine-König --- drivers/pwm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig index 60d13a949bc5..d0d4caebf12f 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig @@ -434,7 +434,7 @@ config PWM_PCA9685 config PWM_PXA tristate "PXA PWM support" - depends on ARCH_PXA || COMPILE_TEST + depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST depends on HAS_IOMEM help Generic PWM framework driver for PXA.