From patchwork Wed Jun 19 08:23:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen-Yu Tsai X-Patchwork-Id: 11003695 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7EABD924 for ; Wed, 19 Jun 2019 08:29:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F68828A1A for ; Wed, 19 Jun 2019 08:29:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6345C28A61; Wed, 19 Jun 2019 08:29:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E392728A1A for ; Wed, 19 Jun 2019 08:29:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: MIME-Version:Message-ID:Subject:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=7ko8uOgllELC3jPdBFdUHaZiB4jI8Dl1TlQkdjv+IHo=; b=WG4 EL5Vfgc10jL4gfVd/LsjXMWEdHFgHwBm1ENmZFlvNGng1CoUPUDsxGxIRyvbrvdnFkPGu8dhJIEMg CU5+jsUoIgrWvqltHwoyGuJSwWb4vrFho4L6R9Go8Vspot/RE8lOeEEDHKJWp9MB+E5MYhQQg47RE UMXvxCkZSjrtczf34K+J6Pnho3JwPa9T3GEhQdYuPSKooFQQlAhceldxMBfgxrjNKWUIxExVBiAhK M0OGUl92pwIbURWXuyMDpFRENnyxr4prN5pc8KZQtIG+xB0wmQt+h/pKymTh6oGnlqGNNkUzB2o9c 4ryeYjk51anqG1m6fJkAdfaPRCbmQ/w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hdVxt-0004hA-Nm; Wed, 19 Jun 2019 08:29:09 +0000 Received: from mirror2.csie.ntu.edu.tw ([140.112.30.76] helo=wens.tw) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hdVxp-0004ge-Qw for linux-arm-kernel@lists.infradead.org; Wed, 19 Jun 2019 08:29:07 +0000 Received: by wens.tw (Postfix, from userid 1000) id D29C15FCE5; Wed, 19 Jun 2019 16:23:07 +0800 (CST) Date: Wed, 19 Jun 2019 16:23:07 +0800 From: Chen-Yu Tsai To: Michael Turquette , Stephen Boyd Subject: [GIT PULL] clk: sunxi-ng: clk parent rewrite part 1 Message-ID: <20190619082307.GA27382@wens.csie.org> MIME-Version: 1.0 User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190619_012906_141717_3376618D X-CRM114-Status: GOOD ( 10.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maxime Ripard , Chen-Yu Tsai , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The following changes since commit a188339ca5a396acc588e5851ed7e19f66b0ebd9: Linux 5.2-rc1 (2019-05-19 15:47:09 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git tags/sunxi-ng-parent-rewrite-part-1 for you to fetch changes up to 594d7e8fbe906ad3162ad84ae74acfbdcf8fa3a5: clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE (2019-06-18 19:53:33 +0800) ---------------------------------------------------------------- Allwinner sunxi-ng clk driver parent relation rewrite part 1 The first part of ongoing work to convert the sunxi-ng clk driver from using global clock name strings to describe clk parenting, to having direct struct clk_hw pointers, or local names based on clock-names from the device tree binding. This is based on Stephen Boyd's recent work allowing clk drivers to specify clk parents using struct clk_hw * or parsing DT phandles in the clk node. This series can be split into a few major parts: 1) The first patch is a small fix for clk debugfs representation. 2) A bunch of CLK_HW_INIT_* helper macros are added. These cover the situations I encountered, or assume I will encounter, such as single internal (struct clk_hw *) parent, single DT (struct clk_parent_data .fw_name), multiple internal parents, and multiple mixed (internal + DT) parents. A special variant for just an internal single parent is added, CLK_HW_INIT_HWS, which lets the driver share the singular list, instead of having the compiler create a compound literal every time. It might even make sense to only keep this variant. 3) A bunch of CLK_FIXED_FACTOR_* helper macros are added. The rationale is the same as the single parent CLK_HW_INIT_* helpers. 4) Bulk conversion of CLK_FIXED_FACTOR to use local parent references, either struct clk_hw * or DT .fw_name types, whichever the hardware requires. 5) The beginning of SUNXI_CCU_GATE conversion to local parent references. This part is not done. They are included as justification and examples for the shared list of clk parents case. ---------------------------------------------------------------- Chen-Yu Tsai (25): clk: Fix debugfs clk_possible_parents for clks without parent string names clk: Add CLK_HW_INIT_* macros using .parent_hws clk: Add CLK_HW_INIT_FW_NAME macro using .fw_name in .parent_data clk: Add CLK_HW_INIT_PARENT_DATA macro using .parent_data clk: fixed-factor: Add CLK_FIXED_FACTOR_HW which takes clk_hw pointer as parent clk: fixed-factor: Add CLK_FIXED_FACTOR_HWS which takes list of struct clk_hw * clk: fixed-factor: Add CLK_FIXED_FACTOR_FW_NAME for DT clock-names parent clk: sunxi-ng: switch to of_clk_hw_register() for registering clks clk: sunxi-ng: sun8i-r: Use local parent references for CLK_HW_INIT_* clk: sunxi-ng: a10: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: sun5i: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: a31: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: a23: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: a33: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: h3: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: r40: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: v3s: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: sun8i-r: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: f1c100s: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: a64: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: h6: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: h6-r: Use local parent references for CLK_FIXED_FACTOR clk: sunxi-ng: gate: Add macros for referencing local clock parents clk: sunxi-ng: a80-usb: Use local parent references for SUNXI_CCU_GATE clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE drivers/clk/clk.c | 44 ++++++++++++- drivers/clk/sunxi-ng/ccu-sun4i-a10.c | 39 +++++++----- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 41 +++++++----- drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 2 +- drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 69 ++++++++++++-------- drivers/clk/sunxi-ng/ccu-sun5i.c | 34 ++++++---- drivers/clk/sunxi-ng/ccu-sun6i-a31.c | 39 +++++++----- drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 34 ++++++---- drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 34 ++++++---- drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 29 ++++++--- drivers/clk/sunxi-ng/ccu-sun8i-r.c | 104 +++++++++++++++---------------- drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++----- drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 29 ++++++--- drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c | 32 ++++++---- drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 29 ++++++--- drivers/clk/sunxi-ng/ccu_common.c | 2 +- drivers/clk/sunxi-ng/ccu_gate.h | 53 ++++++++++++++++ include/linux/clk-provider.h | 89 ++++++++++++++++++++++++++ 18 files changed, 526 insertions(+), 223 deletions(-)