From patchwork Fri May 14 02:48:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Billy Tsai X-Patchwork-Id: 12256995 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 181BBC433B4 for ; Fri, 14 May 2021 02:51:51 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9AAA2613BC for ; Fri, 14 May 2021 02:51:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AAA2613BC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=aspeedtech.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version: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:In-Reply-To:References:List-Owner; bh=gyOlQynvRZBPJGtMnuuJm84CEhf5FLVUIvcCAsZ/GL8=; b=DeM+zrMBrtfw4vWtHgJXln44tV fOvLYCpVpFsp9JauqBzNgE0TIihNMUvBUoTojv0mwTlSlHbVmdbsVVXiYRcYFFUYpBySAm3RFiqHi b2V94ZqLKIQEv26iFwkQVHOgcLAVk+u06puzKwiy1ZbUdW8ID4v3b5yVeRR+hBeo0kRw+bIq/Rot8 pHJWg6fYt1lb/Ha+Jf0LKRlJaTozBrA8qXtmOdGI4WMVdwt5hYud3/2blPh37jVcV19vB+StzDzQq leM4p/OOSsVz5NqnNfmjGsn3P77214N5Q18PYXyNsVFUWGDW8d7ISE1To3t6F3OC6P0vPAOORezEy dX2VOU3w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lhNtZ-006zh6-Dd; Fri, 14 May 2021 02:49:45 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lhNtX-006zgy-Mj for linux-arm-kernel@desiato.infradead.org; Fri, 14 May 2021 02:49:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-ID:Date:Subject:CC:To:From:Sender:Reply-To:Content-ID: Content-Description:In-Reply-To:References; bh=n63b0S8UC60rbbgOO978awoZ08kh0IFH4WwvLcsLR4U=; b=E6DuVZjcclvLZ70hb6Kh4l20QL bqdau4APlBgsQ7P/7ny46VJQtIw5b6StMLHtHJbnJkjBmSdP9pS6vteN1cFeF0nNv2G8YdbvZvalJ mzXvCrWtj7l85UgoweIgJcCx8+uCIovVDlczCpseRfqN1mOecSgRQKGBb4Ig65j3DgmdN3PuiYarj iyBHCuNBKtyQhNNlTOiUSNZ2OuB37tWmrF6KOZCRbJYCJTGgcL+CYvgPYLIF55unHBdVHzbbx+R6K ICEhZuhEzx0e4j2SJUgb8oOWEAgslulSfwaCswZUDqA94q0B8dRYN5mNWTWLLoBet7e5Hh6U/oqkF Ai2DU1gA==; Received: from twspam01.aspeedtech.com ([211.20.114.71]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lhNtI-009zo6-Gl for linux-arm-kernel@lists.infradead.org; Fri, 14 May 2021 02:49:35 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 14E2aHCD043662; Fri, 14 May 2021 10:36:17 +0800 (GMT-8) (envelope-from billy_tsai@aspeedtech.com) Received: from BillyTsai-pc.aspeed.com (192.168.2.149) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 May 2021 10:48:33 +0800 From: Billy Tsai To: , , , , , , , , , , , , CC: Subject: [v5 0/2] Support pwm driver for aspeed ast26xx Date: Fri, 14 May 2021 10:48:43 +0800 Message-ID: <20210514024845.10531-1-billy_tsai@aspeedtech.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [192.168.2.149] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 14E2aHCD043662 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210514_034933_971289_B03A99D1 X-CRM114-Status: GOOD ( 13.67 ) 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 legacy driver of aspeed pwm is binding with tach controller and it doesn't follow the pwm framworks usage. In addition, the pwm register usage of the 6th generation of ast26xx has drastic change. So these patch serials add the new aspeed pwm driver to fix up the problem above. Change since v4: - dt_binding: - pwm/tach yaml: Replace child-node with additionalProperties - pwm-tach yaml: Replace child-node with patternProperties - pwm-aspeed-g6.c suggested by Uwe Kleine-König - The bit definitions contained the name of the register. - Remove single caller function and fold it to the caller. - Avoid to divide by the result of a division. - Remove unnecessary condition in .apply(). - Use goto for error handling Changes since v3: - Add the dt_binding for aspeed,ast2600-tach. - Describe the pwm/tach as child-node of pwm-tach mfd. - Complete the properties of pwm node. Changes since v2: - Remove the tach node, #address-cells and #size-cells from pwm-tach.yaml - Add clocks and reset properties to pwm-tach.yaml - Kconfig/Makfile sorted alphabetically - pwm-aspeed-g6.c suggested by Uwe Kleine-König - Add more hardware descriptions at top of the driver. - Remove unused api request and free - Move the initialize settings of all pwm channel to probe. - Change the method of getting the approximate period. - Read the hardware register values to fill the state for .get_state() Changes since v1: - Fix the dt_binding_check fail suggested by Rob Herring - Add depends to PWM_ASPEED_G6 configure suggested by Uwe Kleine-Konig - pwm-aspeed-g6.c suggested by Uwe Kleine-König - Fix license header - Use bitfiled.h macro to define register fields - Implement .remove device function - Implement .get_state pwm api Billy Tsai (2): dt-bindings: Add bindings for aspeed pwm-tach. pwm: Add Aspeed ast2600 PWM support .../bindings/hwmon/aspeed,ast2600-tach.yaml | 66 ++++ .../bindings/mfd/aspeed,ast2600-pwm-tach.yaml | 84 +++++ .../bindings/pwm/aspeed,ast2600-pwm.yaml | 62 +++ drivers/pwm/Kconfig | 8 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-aspeed-g6.c | 355 ++++++++++++++++++ 6 files changed, 576 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwmon/aspeed,ast2600-tach.yaml create mode 100644 Documentation/devicetree/bindings/mfd/aspeed,ast2600-pwm-tach.yaml create mode 100644 Documentation/devicetree/bindings/pwm/aspeed,ast2600-pwm.yaml create mode 100644 drivers/pwm/pwm-aspeed-g6.c