From mboxrd@z Thu Jan 1 00:00:00 1970 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=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 DA86EC4743D for ; Tue, 8 Jun 2021 06:45:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BCE1B61027 for ; Tue, 8 Jun 2021 06:45:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230254AbhFHGrQ (ORCPT ); Tue, 8 Jun 2021 02:47:16 -0400 Received: from twspam01.aspeedtech.com ([211.20.114.71]:59907 "EHLO twspam01.aspeedtech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229507AbhFHGrP (ORCPT ); Tue, 8 Jun 2021 02:47:15 -0400 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1586UuVe088772; Tue, 8 Jun 2021 14:30:56 +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; Tue, 8 Jun 2021 14:44:45 +0800 From: Billy Tsai To: , , , , , , , , , , , , CC: Subject: [v8 0/2] Support pwm driver for aspeed ast26xx Date: Tue, 8 Jun 2021 14:46:56 +0800 Message-ID: <20210608064658.14262-1-billy_tsai@aspeedtech.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit 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 1586UuVe088772 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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 v7: - pwm-aspeed-g6.c - Rename the driver: pwm-aspeed-g6.c -> pwm-aspeed-ast2600.c. - Macro remove "_CH" part of the register name. - Unroll the aspeed_pwm_get_period and remove it. - Simplify the formula to get duty_pt - Reduce the number of writting register. Organize all the fields and write them at once. Change since v6: - dt-bindings: - Add blank line between each DT property. - Change the sub-node name from fan to tach-ch. - pwm-aspeed-g6.c - Merge aspeed_pwm_set_period and aspeed_pwm_set_duty into .apply. - Convert the factor type to u64 when calculating the period value. - Using ROUND_UP strategy to calculate div_h for finer resolution. Change since v5: - pwm-aspeed-g6.c suggested by Uwe Kleine-König - Move the divide at the end of the calculation. - Unified the prefix of the function name. - Use div64_u64 to calculate the divider of frequency. 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 | 69 ++++ .../bindings/mfd/aspeed,ast2600-pwm-tach.yaml | 87 +++++ .../bindings/pwm/aspeed,ast2600-pwm.yaml | 64 ++++ drivers/pwm/Kconfig | 9 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-aspeed-ast2600.c | 311 ++++++++++++++++++ 6 files changed, 541 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-ast2600.c -- 2.25.1 From mboxrd@z Thu Jan 1 00:00:00 1970 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=-11.9 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,URIBL_BLOCKED,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 8E7D2C47082 for ; Tue, 8 Jun 2021 06:46:56 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 4D7E760234 for ; Tue, 8 Jun 2021 06:46:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D7E760234 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=bombadil.20210309; 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=yS9hQpP5/dlJ2QYM1+wkNOup76Sh3Y6ZVqhfV+OczLE=; b=vT/5TuXy4+mIMC WN7tNX9jJSDyqg2OJqZTEl9mQbznVuDUT1J1VGgbFGjn/pJUdOTsKdYJUYDoo+ax36FEWkq3w6InQ 17FO7OKhx7Ex+lUXLGs3lzP0PuJufZkWzq2R8MVcNPNeA0CMufRfeZqTZWEJhHGEbxK5UU5Kr8Zat PCfeaW8ysBoHGwPKNtfnm+oPoH0MsukS8Tt3ZiIG1oqY2TeIfMpWx1y2xX+P3DYNw2BCTvzqNPqIU BTzZU/T0bkMmhvnYgsOJTWxq+pBfRE6XA8t2CsYftjEa+uVamuvCoZJNn2cWfxLRGVKww3LfET2IQ urAkQZSYqHvyaTkXfZsA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqVU3-006jfJ-TE; Tue, 08 Jun 2021 06:45:08 +0000 Received: from [211.20.114.71] (helo=twspam01.aspeedtech.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqVTz-006jer-ML for linux-arm-kernel@lists.infradead.org; Tue, 08 Jun 2021 06:45:05 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1586UuVe088772; Tue, 8 Jun 2021 14:30:56 +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; Tue, 8 Jun 2021 14:44:45 +0800 From: Billy Tsai To: , , , , , , , , , , , , CC: Subject: [v8 0/2] Support pwm driver for aspeed ast26xx Date: Tue, 8 Jun 2021 14:46:56 +0800 Message-ID: <20210608064658.14262-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 1586UuVe088772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210607_234504_012304_7F113353 X-CRM114-Status: GOOD ( 15.49 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhlIGxlZ2FjeSBkcml2ZXIgb2YgYXNwZWVkIHB3bSBpcyBiaW5kaW5nIHdpdGggdGFjaCBjb250 cm9sbGVyIGFuZCBpdApkb2Vzbid0IGZvbGxvdyB0aGUgcHdtIGZyYW13b3JrcyB1c2FnZS4gSW4g YWRkaXRpb24sIHRoZSBwd20gcmVnaXN0ZXIKdXNhZ2Ugb2YgdGhlIDZ0aCBnZW5lcmF0aW9uIG9m IGFzdDI2eHggaGFzIGRyYXN0aWMgY2hhbmdlLiBTbyB0aGVzZQpwYXRjaCBzZXJpYWxzIGFkZCB0 aGUgbmV3IGFzcGVlZCBwd20gZHJpdmVyIHRvIGZpeCB1cCB0aGUgcHJvYmxlbSBhYm92ZS4KCkNo YW5nZSBzaW5jZSB2NzoKLSBwd20tYXNwZWVkLWc2LmMKICAtIFJlbmFtZSB0aGUgZHJpdmVyOiBw d20tYXNwZWVkLWc2LmMgLT4gcHdtLWFzcGVlZC1hc3QyNjAwLmMuCiAgLSBNYWNybyByZW1vdmUg Il9DSCIgcGFydCBvZiB0aGUgcmVnaXN0ZXIgbmFtZS4KICAtIFVucm9sbCB0aGUgYXNwZWVkX3B3 bV9nZXRfcGVyaW9kIGFuZCByZW1vdmUgaXQuCiAgLSBTaW1wbGlmeSB0aGUgZm9ybXVsYSB0byBn ZXQgZHV0eV9wdAogIC0gUmVkdWNlIHRoZSBudW1iZXIgb2Ygd3JpdHRpbmcgcmVnaXN0ZXIuIE9y Z2FuaXplIGFsbCB0aGUgZmllbGRzIGFuZAogICAgd3JpdGUgdGhlbSBhdCBvbmNlLgoKQ2hhbmdl IHNpbmNlIHY2OgotIGR0LWJpbmRpbmdzOgogIC0gQWRkIGJsYW5rIGxpbmUgYmV0d2VlbiBlYWNo IERUIHByb3BlcnR5LgogIC0gQ2hhbmdlIHRoZSBzdWItbm9kZSBuYW1lIGZyb20gZmFuIHRvIHRh Y2gtY2guCi0gcHdtLWFzcGVlZC1nNi5jCiAgLSBNZXJnZSBhc3BlZWRfcHdtX3NldF9wZXJpb2Qg YW5kIGFzcGVlZF9wd21fc2V0X2R1dHkgaW50byAuYXBwbHkuCiAgLSBDb252ZXJ0IHRoZSBmYWN0 b3IgdHlwZSB0byB1NjQgd2hlbiBjYWxjdWxhdGluZyB0aGUgcGVyaW9kIHZhbHVlLgogIC0gVXNp bmcgUk9VTkRfVVAgc3RyYXRlZ3kgdG8gY2FsY3VsYXRlIGRpdl9oIGZvciBmaW5lciByZXNvbHV0 aW9uLgoKQ2hhbmdlIHNpbmNlIHY1OgotIHB3bS1hc3BlZWQtZzYuYyBzdWdnZXN0ZWQgYnkgVXdl IEtsZWluZS1Lw7ZuaWcKICAtIE1vdmUgdGhlIGRpdmlkZSBhdCB0aGUgZW5kIG9mIHRoZSBjYWxj dWxhdGlvbi4KICAtIFVuaWZpZWQgdGhlIHByZWZpeCBvZiB0aGUgZnVuY3Rpb24gbmFtZS4KICAt IFVzZSBkaXY2NF91NjQgdG8gY2FsY3VsYXRlIHRoZSBkaXZpZGVyIG9mIGZyZXF1ZW5jeS4KCkNo YW5nZSBzaW5jZSB2NDoKLSBkdF9iaW5kaW5nOgogIC0gcHdtL3RhY2ggeWFtbDogUmVwbGFjZSBj aGlsZC1ub2RlIHdpdGggYWRkaXRpb25hbFByb3BlcnRpZXMKICAtIHB3bS10YWNoIHlhbWw6IFJl cGxhY2UgY2hpbGQtbm9kZSB3aXRoIHBhdHRlcm5Qcm9wZXJ0aWVzCi0gcHdtLWFzcGVlZC1nNi5j IHN1Z2dlc3RlZCBieSBVd2UgS2xlaW5lLUvDtm5pZwogIC0gVGhlIGJpdCBkZWZpbml0aW9ucyBj b250YWluZWQgdGhlIG5hbWUgb2YgdGhlIHJlZ2lzdGVyLgogIC0gUmVtb3ZlIHNpbmdsZSBjYWxs ZXIgZnVuY3Rpb24gYW5kIGZvbGQgaXQgdG8gdGhlIGNhbGxlci4KICAtIEF2b2lkIHRvIGRpdmlk ZSBieSB0aGUgcmVzdWx0IG9mIGEgZGl2aXNpb24uCiAgLSBSZW1vdmUgdW5uZWNlc3NhcnkgY29u ZGl0aW9uIGluIC5hcHBseSgpLgogIC0gVXNlIGdvdG8gZm9yIGVycm9yIGhhbmRsaW5nCgpDaGFu Z2VzIHNpbmNlIHYzOgotIEFkZCB0aGUgZHRfYmluZGluZyBmb3IgYXNwZWVkLGFzdDI2MDAtdGFj aC4KLSBEZXNjcmliZSB0aGUgcHdtL3RhY2ggYXMgY2hpbGQtbm9kZSBvZiBwd20tdGFjaCBtZmQu Ci0gQ29tcGxldGUgdGhlIHByb3BlcnRpZXMgb2YgcHdtIG5vZGUuCgpDaGFuZ2VzIHNpbmNlIHYy OgotIFJlbW92ZSB0aGUgdGFjaCBub2RlLCAjYWRkcmVzcy1jZWxscyBhbmQgI3NpemUtY2VsbHMg ZnJvbSBwd20tdGFjaC55YW1sCi0gQWRkIGNsb2NrcyBhbmQgcmVzZXQgcHJvcGVydGllcyB0byBw d20tdGFjaC55YW1sCi0gS2NvbmZpZy9NYWtmaWxlIHNvcnRlZCBhbHBoYWJldGljYWxseQotIHB3 bS1hc3BlZWQtZzYuYyBzdWdnZXN0ZWQgYnkgVXdlIEtsZWluZS1Lw7ZuaWcKICAtIEFkZCBtb3Jl IGhhcmR3YXJlIGRlc2NyaXB0aW9ucyBhdCB0b3Agb2YgdGhlIGRyaXZlci4KICAtIFJlbW92ZSB1 bnVzZWQgYXBpIHJlcXVlc3QgYW5kIGZyZWUKICAtIE1vdmUgdGhlIGluaXRpYWxpemUgc2V0dGlu Z3Mgb2YgYWxsIHB3bSBjaGFubmVsIHRvIHByb2JlLgogIC0gQ2hhbmdlIHRoZSBtZXRob2Qgb2Yg Z2V0dGluZyB0aGUgYXBwcm94aW1hdGUgcGVyaW9kLgogIC0gUmVhZCB0aGUgaGFyZHdhcmUgcmVn aXN0ZXIgdmFsdWVzIHRvIGZpbGwgdGhlIHN0YXRlIGZvciAuZ2V0X3N0YXRlKCkKCkNoYW5nZXMg c2luY2UgdjE6Ci0gRml4IHRoZSBkdF9iaW5kaW5nX2NoZWNrIGZhaWwgc3VnZ2VzdGVkIGJ5IFJv YiBIZXJyaW5nCi0gQWRkIGRlcGVuZHMgdG8gUFdNX0FTUEVFRF9HNiBjb25maWd1cmUgc3VnZ2Vz dGVkIGJ5IFV3ZSBLbGVpbmUtS29uaWcKLSBwd20tYXNwZWVkLWc2LmMgc3VnZ2VzdGVkIGJ5IFV3 ZSBLbGVpbmUtS8O2bmlnCiAgLSBGaXggbGljZW5zZSBoZWFkZXIKICAtIFVzZSBiaXRmaWxlZC5o IG1hY3JvIHRvIGRlZmluZSByZWdpc3RlciBmaWVsZHMKICAtIEltcGxlbWVudCAucmVtb3ZlIGRl dmljZSBmdW5jdGlvbgogIC0gSW1wbGVtZW50IC5nZXRfc3RhdGUgcHdtIGFwaQoKQmlsbHkgVHNh aSAoMik6CiAgZHQtYmluZGluZ3M6IEFkZCBiaW5kaW5ncyBmb3IgYXNwZWVkIHB3bS10YWNoLgog IHB3bTogQWRkIEFzcGVlZCBhc3QyNjAwIFBXTSBzdXBwb3J0CgogLi4uL2JpbmRpbmdzL2h3bW9u L2FzcGVlZCxhc3QyNjAwLXRhY2gueWFtbCAgIHwgIDY5ICsrKysKIC4uLi9iaW5kaW5ncy9tZmQv YXNwZWVkLGFzdDI2MDAtcHdtLXRhY2gueWFtbCB8ICA4NyArKysrKwogLi4uL2JpbmRpbmdzL3B3 bS9hc3BlZWQsYXN0MjYwMC1wd20ueWFtbCAgICAgIHwgIDY0ICsrKysKIGRyaXZlcnMvcHdtL0tj b25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBkcml2ZXJzL3B3bS9NYWtl ZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9wd20vcHdtLWFz cGVlZC1hc3QyNjAwLmMgICAgICAgICAgICAgIHwgMzExICsrKysrKysrKysrKysrKysrKwogNiBm aWxlcyBjaGFuZ2VkLCA1NDEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9od21vbi9hc3BlZWQsYXN0MjYwMC10YWNoLnlh bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv bWZkL2FzcGVlZCxhc3QyNjAwLXB3bS10YWNoLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL2FzcGVlZCxhc3QyNjAwLXB3bS55YW1s CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9wd20vcHdtLWFzcGVlZC1hc3QyNjAwLmMKCi0t IAoyLjI1LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==