From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 947FBEB64DD for ; Thu, 27 Jul 2023 05:32:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231699AbjG0Fck (ORCPT ); Thu, 27 Jul 2023 01:32:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231545AbjG0Fci (ORCPT ); Thu, 27 Jul 2023 01:32:38 -0400 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C3442721 for ; Wed, 26 Jul 2023 22:32:37 -0700 (PDT) Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1bbc87ded50so3442855ad.1 for ; Wed, 26 Jul 2023 22:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435957; x=1691040757; 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=Uyw3PNfZIGdqDhQAwksMXr4rBdSDRWmBdpkW/XA90lY=; b=drVvjIcn6IwB7Xn0zmy1NP5nq8SSNIQeAYnATBZ8fVrsX3Re7hS8xvzwCPrOOmVYDT yvIrdOKnD205U8KOaVniDdHmXe61quc45RJ0Xm894JcBaaGRr4BKabCckcXl5URiQWH0 OGbAX7YKljP3iTfl/3QanAGlykvZsQi5Y0AYQrXpWJViHwMX+u6xE7IXKi/2Z0Th2JQG IBiQCMQdJMO/DQaTOPzXZ1Tq9oT1VWrQk0dSWDwwnMayGY9EoNDPEtcPQjFfsnoaccIx 5iW8qx8pC5Q4xnmtaK6y7SmD1mHgGXItb87R/AB/rTYXh3OuZAYkoO7kg72q+pYebyVk KTxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435957; x=1691040757; 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=Uyw3PNfZIGdqDhQAwksMXr4rBdSDRWmBdpkW/XA90lY=; b=jHvdPV5Mnbai0Y2qODGWbw2rgXyKOY3zNEzxBxcG+TVDi4SNiSSppzuIoZkfm/Wujj 2U3cc+Qy3X4+I7cc4RcdQ2GEBuucJxfoKxn+ssgHjGB+kvh/iGZiSCR6J0BuIwB9OkSr 89OWpB8g87sIh2/Ipi10hf5RniTBQBdVKejUujMH8c7EyPQ3G2jsmsYNcwtw223EmZit fpVizec6f6McrPnK+yP5XvR3fWLBZCbxiCT1lBYY5o4243/xEv4y2ap1ChhcM9gx8Glb +PG74I7COdTt+pjsdZPXRfDXl8vTTcsCal3wPJKACMkgYbG2sPs75B0ItmEOpvyo42Yu t9hw== X-Gm-Message-State: ABy/qLYcPCWjZ9iZ8CWEG/7IMLmFo2zIGmRq/T9M3pPvWsnCmB773Z2A QzyicsPUwHP4RF58xgGFuil7dQ== X-Google-Smtp-Source: APBJJlFaiXidP9D8t/SlKdr/7PjGHe8B2LxzQ0uXp+qc5AmYStgN8YypNaZm+7pCUSKDHPRfKQtsJw== X-Received: by 2002:a17:903:2305:b0:1b8:1687:b53 with SMTP id d5-20020a170903230500b001b816870b53mr4574340plh.26.1690435956889; Wed, 26 Jul 2023 22:32:36 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:32:36 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 01/42] clk: at91: sama7g5: check __clk_get_hw() argument for errors Date: Thu, 27 Jul 2023 08:31:15 +0300 Message-Id: <20230727053156.13587-2-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" __clk_get_hw() argument in sama7g5 is obtained using of_clk_get_by_name() which might return error. Passing an error casted pointer to __clk_get_hw() may lead to crashes. Thus, check the pointer for errors before passing it to __clk_get_hw(). Fixes: de3383e993a5 ("clk: at91: sama7g5: switch to parent_hw and parent_da= ta") Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sama7g5.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index 91b5c6f14819..16e458be8304 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -988,14 +988,27 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) struct clk_hw *td_slck_hw, *md_slck_hw; static struct clk_parent_data parent_data; struct clk_hw *parent_hws[10]; + struct clk *clk; bool bypass; int i, j; =20 - td_slck_hw =3D __clk_get_hw(of_clk_get_by_name(np, "td_slck")); - md_slck_hw =3D __clk_get_hw(of_clk_get_by_name(np, "md_slck")); - main_xtal_hw =3D __clk_get_hw(of_clk_get_by_name(np, main_xtal_name)); - - if (!td_slck_hw || !md_slck_hw || !main_xtal_hw) + clk =3D of_clk_get_by_name(np, "td_slck"); + if (IS_ERR(clk)) + return; + td_slck_hw =3D __clk_get_hw(clk); + if (!td_slck_hw) + return; + clk =3D of_clk_get_by_name(np, "md_slck"); + if (IS_ERR(clk)) + return; + md_slck_hw =3D __clk_get_hw(clk); + if (!md_slck_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; =20 regmap =3D device_node_to_regmap(np); --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8782AC001E0 for ; Thu, 27 Jul 2023 05:32:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231700AbjG0Fcx (ORCPT ); Thu, 27 Jul 2023 01:32:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231690AbjG0Fcu (ORCPT ); Thu, 27 Jul 2023 01:32:50 -0400 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 B2A582D57 for ; Wed, 26 Jul 2023 22:32:44 -0700 (PDT) Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1bbd2761f1bso4432445ad.2 for ; Wed, 26 Jul 2023 22:32:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435964; x=1691040764; 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=b9Gh+k+Ek4/VSm59HjYvHVbU+3yoxdSusT5dev6nYow=; b=LC1J1Cspx60GAUJsiTYmriRBilILtB3wnVGXGVwUYiEVkyKZVVj9DrQuqW8vu42JIg 4TivKz5mquFmDFqUsR5TiW5UglqjyNnMsLOz2tDXc22bg4Qhq0BAHFDxCCBOq9tsSdpd bCJ/jO6y7mmwTbLoJnV9tc5LSjHWe7AmJd8arnTdqtnbdo4wUPdoG84Cx/duznARUYob Ik6lyEg+Sn2uWDhaGRHUVFwJvX50f69JCqP1xrYoUh48ePMDtgrd5bNX50TxFQ0MaMUp anQaywJUrycIpgKEqpfC/ZEEivAk/Ubf8ai5zbUivZGSVNANTZPEvx+qvEWFRr1rx6yR HnPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435964; x=1691040764; 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=b9Gh+k+Ek4/VSm59HjYvHVbU+3yoxdSusT5dev6nYow=; b=U1P6Wj3lfQ5PdgoNHWHT8AlWDpxz/1SuvEdV3b5hEL3Wr5sE9mDsBCNLNwCxjG2Oxb E/rcygrp6wsjefb9ESU2Vm5r7OaXCLb/r7u1qnQvxYvtMEDBeB/LbJmHPeA5oDT8Qrnm HWorNjaS69laABG/eHdDjT3oUHVhwknVNNBNvH8qDqWUQJOCyGaYPNws3NfvKekJMpau MnXux7t18JYlUyvMrxv/LCrlDrBIAf86bNkhtO68ZhyESgTWnXHPTpXwYM7Qnq/sSJIv CsuXGLVWo1E8tgHnmoJtToLe9565sszDdMGsV9Y4X8UBi02dtxgqRt+HQ28ocrciP24l zvzA== X-Gm-Message-State: ABy/qLYEIkOdQZOFID8i6xcSASXAztIZBIcsVA69/FpJK2nMXzY9AL3s 8oJbA9xMVU/QTsY0ChsQM5xxFw== X-Google-Smtp-Source: APBJJlFrr5ZD5hclfXPll+bVt+fiL3e69OnCXZKnKadyR197MJfhDlT6oGdFH6zBnyDw2HINzYSoug== X-Received: by 2002:a17:902:d501:b0:1b8:b5f8:c485 with SMTP id b1-20020a170902d50100b001b8b5f8c485mr5337310plg.50.1690435964153; Wed, 26 Jul 2023 22:32:44 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.32.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:32:43 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 02/42] clk: at91: clk-usb: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:16 +0300 Message-Id: <20230727053156.13587-3-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in usb clock driver. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-usb were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 2 +- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-usb.c | 41 ++++++++++++++++++++++------------ drivers/clk/at91/dt-compat.c | 6 ++--- drivers/clk/at91/pmc.h | 11 +++++---- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 12 files changed, 46 insertions(+), 30 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 3f19e737ae4d..e5a034f208d8 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -157,7 +157,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", usb_div); + hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", NULL, usb_d= iv); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 0799a13060ea..ae6f126f204a 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -434,7 +434,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 at91sam9260_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", usb_div); + hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", NULL, usb_d= iv); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index f45a7b80f7d8..684d2bcb36e8 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -176,7 +176,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, 2); + hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 751786184ae2..9fc20b177b13 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -201,7 +201,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", "pllbck"); + hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", "pllbck", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 3b801d12fac0..5728cfb9036f 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -222,7 +222,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, 2); + hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c index b0696a928aa9..21f50914c63e 100644 --- a/drivers/clk/at91/clk-usb.c +++ b/drivers/clk/at91/clk-usb.c @@ -221,12 +221,12 @@ static const struct clk_ops at91sam9n12_usb_ops =3D { =20 static struct clk_hw * __init _at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents, - u32 usbs_mask) + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents, u32 usbs_mask) { struct at91sam9x5_clk_usb *usb; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 usb =3D kzalloc(sizeof(*usb), GFP_KERNEL); @@ -235,7 +235,10 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, co= nst char *name, =20 init.name =3D name; init.ops =3D &at91sam9x5_usb_ops; - init.parent_names =3D parent_names; + if (parent_hws) + init.parent_hws =3D (const struct clk_hw **)parent_hws; + else + init.parent_names =3D parent_names; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; @@ -257,27 +260,30 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, c= onst char *name, =20 struct clk_hw * __init at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents) + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents) { return _at91sam9x5_clk_register_usb(regmap, name, parent_names, - num_parents, SAM9X5_USBS_MASK); + parent_hws, num_parents, SAM9X5_USBS_MASK); } =20 struct clk_hw * __init sam9x60_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents) + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents) { return _at91sam9x5_clk_register_usb(regmap, name, parent_names, - num_parents, SAM9X60_USBS_MASK); + parent_hws, num_parents, + SAM9X60_USBS_MASK); } =20 struct clk_hw * __init at91sam9n12_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct at91sam9x5_clk_usb *usb; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 usb =3D kzalloc(sizeof(*usb), GFP_KERNEL); @@ -286,7 +292,10 @@ at91sam9n12_clk_register_usb(struct regmap *regmap, co= nst char *name, =20 init.name =3D name; init.ops =3D &at91sam9n12_usb_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT; =20 @@ -390,11 +399,12 @@ static const struct clk_ops at91rm9200_usb_ops =3D { =20 struct clk_hw * __init at91rm9200_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, const u32 *divisors) + const char *parent_name, struct clk_hw *parent_hw, + const u32 *divisors) { struct at91rm9200_clk_usb *usb; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 usb =3D kzalloc(sizeof(*usb), GFP_KERNEL); @@ -403,7 +413,10 @@ at91rm9200_clk_register_usb(struct regmap *regmap, con= st char *name, =20 init.name =3D name; init.ops =3D &at91rm9200_usb_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_PARENT; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index a32dc2111b90..ead99948375b 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -945,7 +945,7 @@ static void __init of_at91sam9x5_clk_usb_setup(struct d= evice_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_usb(regmap, name, parent_names, + hw =3D at91sam9x5_clk_register_usb(regmap, name, parent_names, NULL, num_parents); if (IS_ERR(hw)) return; @@ -975,7 +975,7 @@ static void __init of_at91sam9n12_clk_usb_setup(struct = device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9n12_clk_register_usb(regmap, name, parent_name); + hw =3D at91sam9n12_clk_register_usb(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 @@ -1008,7 +1008,7 @@ static void __init of_at91rm9200_clk_usb_setup(struct= device_node *np) of_node_put(parent_np); if (IS_ERR(regmap)) return; - hw =3D at91rm9200_clk_register_usb(regmap, name, parent_name, divisors); + hw =3D at91rm9200_clk_register_usb(regmap, name, parent_name, NULL, divis= ors); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 0f52e80bcd49..515a3c5595b7 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -257,16 +257,19 @@ at91_clk_register_system(struct regmap *regmap, const= char *name, =20 struct clk_hw * __init at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents); + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents); struct clk_hw * __init at91sam9n12_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); struct clk_hw * __init sam9x60_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents); + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents); struct clk_hw * __init at91rm9200_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, const u32 *divisors); + const char *parent_name, struct clk_hw *parent_hw, + const u32 *divisors); =20 struct clk_hw * __init at91_clk_register_utmi(struct regmap *regmap_pmc, struct regmap *regmap_sf= r, diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index e309cbf3cb9a..ddf993fe391f 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -297,7 +297,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) parent_names[0] =3D "pllack_divck"; parent_names[1] =3D "upllck_divck"; parent_names[2] =3D "main_osc"; - hw =3D sam9x60_clk_register_usb(regmap, "usbck", parent_names, 3); + hw =3D sam9x60_clk_register_usb(regmap, "usbck", parent_names, NULL, 3); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index c16594fce90c..8bbc34e22cda 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -284,7 +284,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, 2); + hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 522ce6031446..05d0cdd22bc4 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -201,7 +201,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, 2); + hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 160c0bddb6a3..da84b4cef827 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -222,7 +222,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, 2); + hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFB7EEB64DD for ; Thu, 27 Jul 2023 05:33:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231717AbjG0FdO (ORCPT ); Thu, 27 Jul 2023 01:33:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231545AbjG0FdH (ORCPT ); Thu, 27 Jul 2023 01:33:07 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F6812D57 for ; Wed, 26 Jul 2023 22:32:52 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-686fc0d3c92so21907b3a.0 for ; Wed, 26 Jul 2023 22:32:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435971; x=1691040771; 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=FAVoXHZ5zvjZ262DesmDLqKSRAd4U2FxEZjVJgo3dJ4=; b=KKy2c5+u7/wBLVinxt7z+Adc/SzVAGTOKbC3oRrvt/QKaoxeyCBPKBDeJHrLp8VSyE 9oRgHE/+LQ80G3STCVua5wTWya0lyHpftSD/8YWYlg74zjVHQtRon1/gSfN0DevPIjPL zUBBoHIgDZg+PSR6VKx8gLrqTAfGoRJb+61fAa6kXgMrpLMSMolHRGkqLAVF4oED/z6d DPXVHNe7HKdyVgjBDPN09rDTvFGuvp1p1w36Zsafb8O3KdSmQleN0qKJLMePNjUlueEo XTwdE8H57g4Aq6ZNp+SuHRXNcHIi/B5tx06TdhfAFe0KQEddGyTw4IUbvF4fToLFOo9V K2Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435971; x=1691040771; 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=FAVoXHZ5zvjZ262DesmDLqKSRAd4U2FxEZjVJgo3dJ4=; b=VIecTd+YuIyahYtwAWy20g3hhX/s6nakSs8tKuqGU9e71mSdD8pSqh9qhOvlpKrVXt 4+Q7y8JYQV7fUjGDsNrc9uZGapBVv1drRdIAlsIRyg1cR+DExieFE4CfKnLZMLzVSptF VT5qqd6MpiBye0M5wHC6wFS/eveXlnKtGoKISi7XwqIgkxko+pcyhUtObgnLQDXZAph3 ELn9u/02LZ5DkLm74J7lF/hhl2DAozi5a/FnRPCYqqkTeOf3PVwZ101Pl4cR7atd5UDU qwLqDbKuZIFWN8bfl8QQBLf0ATt53mBrPencJrXK1mCBU5q5nlj0mST6VC5GAx6oCrS7 /XPw== X-Gm-Message-State: ABy/qLacYw/RSYIXZKv/v8AQepeniNgmn3LOpYbM5ykQW6g2TEKxIJB3 YHmRjNnAXhBm3HRaVMmUNNXNzw== X-Google-Smtp-Source: APBJJlHYYoR6bV0fsTShxkpROL+ii8w1aBMMilcwh8A7MOFW0fRhhOj0GLZM2UL26NRudApmi9ugrA== X-Received: by 2002:a05:6a21:790b:b0:137:a9d7:de12 with SMTP id bg11-20020a056a21790b00b00137a9d7de12mr3456463pzc.59.1690435971266; Wed, 26 Jul 2023 22:32:51 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.32.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:32:50 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 03/42] clk: at91: sam9x60: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:17 +0300 Message-Id: <20230727053156.13587-4-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch SAM9X60 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Extra time saved on registration is ~180us when running at 600MHz. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sam9x60.c | 124 ++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 56 deletions(-) diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index ddf993fe391f..c68cd969dd46 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -72,9 +73,9 @@ static const struct clk_pcr_layout sam9x60_pcr_layout =3D= { .pid_mask =3D GENMASK(6, 0), }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } sam9x60_systemck[] =3D { @@ -82,11 +83,11 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CR= ITICAL }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "qspick", .p =3D "masterck_div", .id =3D 19 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "qspick", .id =3D 19 }, }; =20 static const struct { @@ -177,31 +178,34 @@ static const struct { =20 static void __init sam9x60_pmc_setup(struct device_node *np) { + struct clk_hw *td_slck_hw, *md_slck_hw, *main_xtal_hw, *main_rc_hw, *main= _osc_hw; + struct clk_hw *parent_hws[6], *hw, *usbck_hw; + static struct clk_parent_data parent_data; struct clk_range range =3D CLK_RANGE(0, 0); - const char *td_slck_name, *md_slck_name, *mainxtal_name; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *sam9x60_pmc; - const char *parent_names[6]; - struct clk_hw *main_osc_hw; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; =20 - i =3D of_property_match_string(np, "clock-names", "td_slck"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "td_slck"); + if (IS_ERR(clk)) return; - - td_slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "md_slck"); - if (i < 0) + td_slck_hw =3D __clk_get_hw(clk); + if (!td_slck_hw) return; - - md_slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "md_slck"); + if (IS_ERR(clk)) + return; + md_slck_hw =3D __clk_get_hw(clk); + if (!md_slck_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -214,26 +218,28 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) if (!sam9x60_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 50000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 50000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL= , 0); + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, + &parent_data, 0); if (IS_ERR(hw)) goto err_free; - main_osc_hw =3D hw; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); if (IS_ERR(hw)) goto err_free; =20 sam9x60_pmc->chws[PMC_MAIN] =3D hw; =20 hw =3D sam9x60_clk_register_frac_pll(regmap, &pmc_pll_lock, "pllack_fracc= k", - "mainck", sam9x60_pmc->chws[PMC_MAIN], + NULL, sam9x60_pmc->chws[PMC_MAIN], 0, &plla_characteristics, &pll_frac_layout, /* @@ -246,7 +252,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) goto err_free; =20 hw =3D sam9x60_clk_register_div_pll(regmap, &pmc_pll_lock, "pllack_divck", - "pllack_fracck", NULL, 0, &plla_characteristics, + NULL, hw, 0, &plla_characteristics, &pll_div_layout, /* * This feeds CPU. It should not @@ -259,14 +265,14 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) sam9x60_pmc->chws[PMC_PLLACK] =3D hw; =20 hw =3D sam9x60_clk_register_frac_pll(regmap, &pmc_pll_lock, "upllck_fracc= k", - "main_osc", main_osc_hw, 1, + NULL, main_osc_hw, 1, &upll_characteristics, &pll_frac_layout, CLK_SET_RATE_GATE); if (IS_ERR(hw)) goto err_free; =20 hw =3D sam9x60_clk_register_div_pll(regmap, &pmc_pll_lock, "upllck_divck", - "upllck_fracck", NULL, 1, &upll_characteristics, + NULL, hw, 1, &upll_characteristics, &pll_div_layout, CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | @@ -276,17 +282,17 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) =20 sam9x60_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D md_slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack_divck"; + parent_hws[0] =3D md_slck_hw; + parent_hws[1] =3D sam9x60_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D sam9x60_pmc->chws[PMC_PLLACK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 3, - parent_names, NULL, &sam9x60_master_layout, + NULL, parent_hws, &sam9x60_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, &sam9x60_master_layout, + NULL, hw, &sam9x60_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); if (IS_ERR(hw)) @@ -294,26 +300,26 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) =20 sam9x60_pmc->chws[PMC_MCK] =3D hw; =20 - parent_names[0] =3D "pllack_divck"; - parent_names[1] =3D "upllck_divck"; - parent_names[2] =3D "main_osc"; - hw =3D sam9x60_clk_register_usb(regmap, "usbck", parent_names, NULL, 3); - if (IS_ERR(hw)) + parent_hws[0] =3D sam9x60_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D sam9x60_pmc->chws[PMC_UTMI]; + parent_hws[2] =3D main_osc_hw; + usbck_hw =3D sam9x60_clk_register_usb(regmap, "usbck", NULL, parent_hws, = 3); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D md_slck_name; - parent_names[1] =3D td_slck_name; - parent_names[2] =3D "mainck"; - parent_names[3] =3D "masterck_div"; - parent_names[4] =3D "pllack_divck"; - parent_names[5] =3D "upllck_divck"; + parent_hws[0] =3D md_slck_hw; + parent_hws[1] =3D td_slck_hw; + parent_hws[2] =3D sam9x60_pmc->chws[PMC_MAIN]; + parent_hws[3] =3D sam9x60_pmc->chws[PMC_MCK]; + parent_hws[4] =3D sam9x60_pmc->chws[PMC_PLLACK]; + parent_hws[5] =3D sam9x60_pmc->chws[PMC_UTMI]; for (i =3D 0; i < 2; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 6, i, + NULL, parent_hws, 6, i, &sam9x60_programmable_layout, NULL); if (IS_ERR(hw)) @@ -322,9 +328,15 @@ static void __init sam9x60_pmc_setup(struct device_nod= e *np) sam9x60_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + sam9x60_systemck[0].parent_hw =3D sam9x60_pmc->chws[PMC_MCK]; + sam9x60_systemck[1].parent_hw =3D usbck_hw; + sam9x60_systemck[2].parent_hw =3D sam9x60_pmc->pchws[0]; + sam9x60_systemck[3].parent_hw =3D sam9x60_pmc->pchws[1]; + sam9x60_systemck[4].parent_hw =3D sam9x60_pmc->chws[PMC_MCK]; for (i =3D 0; i < ARRAY_SIZE(sam9x60_systemck); i++) { hw =3D at91_clk_register_system(regmap, sam9x60_systemck[i].n, - sam9x60_systemck[i].p, NULL, + NULL, sam9x60_systemck[i].parent_hw, sam9x60_systemck[i].id, sam9x60_systemck[i].flags); if (IS_ERR(hw)) @@ -337,7 +349,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sam9x60_pcr_layout, sam9x60_periphck[i].n, - "masterck_div", NULL, + NULL, sam9x60_pmc->chws[PMC_MCK], sam9x60_periphck[i].id, &range, INT_MIN, sam9x60_periphck[i].flags); @@ -351,7 +363,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &sam9x60_pcr_layout, sam9x60_gck[i].n, - parent_names, NULL, NULL, 6, + NULL, parent_hws, NULL, 6, sam9x60_gck[i].id, &sam9x60_gck[i].r, INT_MIN); if (IS_ERR(hw)) --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A810C001E0 for ; Thu, 27 Jul 2023 05:33:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231725AbjG0FdS (ORCPT ); Thu, 27 Jul 2023 01:33:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231755AbjG0FdO (ORCPT ); Thu, 27 Jul 2023 01:33:14 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6AA730DB for ; Wed, 26 Jul 2023 22:32:58 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-686f090316dso320931b3a.2 for ; Wed, 26 Jul 2023 22:32:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435978; x=1691040778; 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=ZOqReItDfaxB+nBJ9zQp2I4wwFvLbgDN9poIQ494Sec=; b=NB7doVVdgWMiRRp5hZkHS0QERPxUWcgaqil3/xOuD7rKNI9jl2wuxHFzDl7N5BBoOO sl3xJNyzvO0bfAnxkzIj7XB2TM9G9N9NB1i79wtoEmLx1OLdWCwh2Gmg9sMe+wQk8dev vYl9h2wmHjFe4B4v+EN50b/3agja8Xa6JRnolEgkoa+ZFEi3SYrtzKFs82tQLWW9ve6K tCwjxpBUGyULVV9R7jaM0IvUcbPPi1HNmwcvsH7MJlkCIaQNsi8mz7auF0JcChkn/Nyb ZQMym9LSeo1fv++udsWd9/YNECzzOjF7U1bFB4rjS1ZfZUhewLByo5ZcBnGnOBiZVtYA ZSOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435978; x=1691040778; 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=ZOqReItDfaxB+nBJ9zQp2I4wwFvLbgDN9poIQ494Sec=; b=Es6F5BJUJDhnEcS8/hJqGQ29SCOcD9eFqHBdsV6REYLClBB80J1hZgYti3t5wtnG63 i1tB28jSjZRmLx9ZiMvthcMsu1LNeg5MwMeasJt0inqoWXkfShVBvlpDqKfhdyqEdb0p 80Md1ngrTMJXRCpfnU8Mn2oA7JTjX/Jb8o0mW9zzqRnB/xKtmxTuu97kZtDbjanoM6Po ozlhnIXfIrbrLhg5M6wRCzZTAQhX6eu8WK/lSj18tOoBlAoDLF0ifdRXf9Qw5/TDxHUR wUxQ8+cgBK10rguhs4N/aRtMHYiCM05iwp7ZEAhK9LXJMiMCdZgN+mnrlFi0CAQDYqE/ 1oWw== X-Gm-Message-State: ABy/qLbGN+zHYyXvAuqHJaSs1ZUApMpR5kaZ/ShLnOuMmJOt84CiyERg nUfj+caNdjQblW5MYRLrhdb2Cw== X-Google-Smtp-Source: APBJJlG4g+UU2DlFHesikVn7Ehf7tvYVZYciQ2xv6muWvezUiwf85V/bBVOrFE/TJKyCXDSRtpnwNQ== X-Received: by 2002:a05:6a21:4985:b0:10f:52e2:49ec with SMTP id ax5-20020a056a21498500b0010f52e249ecmr3493892pzc.53.1690435978324; Wed, 26 Jul 2023 22:32:58 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.32.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:32:58 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 04/42] clk: at91: sam9x60: make checkpatch.pl happy Date: Thu, 27 Jul 2023 08:31:18 +0300 Message-Id: <20230727053156.13587-5-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove the following checkpatch.pl CHECK: Please use a blank line after function/struct/union/enum declarations. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sam9x60.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index c68cd969dd46..930b4515a1dd 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -379,5 +379,6 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) err_free: kfree(sam9x60_pmc); } + /* Some clks are used for a clocksource */ CLK_OF_DECLARE(sam9x60_pmc, "microchip,sam9x60-pmc", sam9x60_pmc_setup); --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E92DDC41513 for ; Thu, 27 Jul 2023 05:33:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231739AbjG0Fdg (ORCPT ); Thu, 27 Jul 2023 01:33:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231743AbjG0Fd3 (ORCPT ); Thu, 27 Jul 2023 01:33:29 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0DB96273D for ; Wed, 26 Jul 2023 22:33:06 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1bb8e45185bso3481315ad.1 for ; Wed, 26 Jul 2023 22:33:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435985; x=1691040785; 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=mS51ZmJrNJRKzR5R8YYwfuBh1xwTctc46iViNhup/Iw=; b=a+aBIZxHWndgPLFmvXqnrfV1/Zes4TfvXi4F37flkt+iHpLt30VDFM1cmtuhTCRYX3 ojMASInkq4m53QK+3xPQudB5jfolz4FVZ5gXcx8OpRGHihcCvLLjt8uWIiOL4jOUsCbD s7oUsu6C0SYG792EAErxf+JpOlzCYo9N0KtZp6TW4QrtIvwerXgzkRmf93XPgPs74zNK DOOEViCfoA4irCztQRKncoa/z0w5zVIBHkPp7T3cwmfQeFI+bTSJREc4ZfYe+HPrePfw 7o+Wv2UUTl8YmGormBtv8f1WVFv84sMbQ8n7ODaJ4SOjFcWcOREvXX17Sm84g4XSRm1W pO/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435985; x=1691040785; 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=mS51ZmJrNJRKzR5R8YYwfuBh1xwTctc46iViNhup/Iw=; b=fSGCtsFZblSEjMbzQ32iHyNEBGZegMGCHALyVXMYWMrxvB5gfyZe2BjjXeCH4hrVZm rQgra1Rm0LPqTEhWFxsRnpC3/5wxcY/+r6Z3KhEI55qxJVjhexvbtmM7rIWxn3mkvVg4 KYQmGTc/sSaHtACbfRB+q++ATlMWeu+QH0ARQdo77cPs2ejRaY5dPRTo+j5zLOB98qLA KV+7nA4ZnP2FJ5iRpIbWB04U1EU89TdkmFA3Ybtl2v3rr3PBKxoXLXY2QW5opHgKaoUs PNybGPjep+9h7MvyG7rEpWbxMd3QoEO58Rvl8iqVMGQaAvs7u5R6MCP0erAHV4DPaGlq KBeA== X-Gm-Message-State: ABy/qLZQM720PszPDHdAw/LSmnjkFVbvMgFfny90oFigzNXSxzg22VQ+ KO3O3C6/U6/L4n6LOby2TiUeEw== X-Google-Smtp-Source: APBJJlHQDI/g7NUGzywOkdGH97lX4hE++O1875qEi81EkWhkKvN55oF3sEhivdPFuNR8aQY2Cu38Mg== X-Received: by 2002:a17:902:e80f:b0:1b8:b436:bef3 with SMTP id u15-20020a170902e80f00b001b8b436bef3mr4111821plg.24.1690435985384; Wed, 26 Jul 2023 22:33:05 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.32.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:05 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 05/42] clk: at91: clk-pll: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:19 +0300 Message-Id: <20230727053156.13587-6-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in pll clock driver. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-pll were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 4 ++-- drivers/clk/at91/at91sam9260.c | 4 ++-- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 4 ++-- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-pll.c | 9 ++++++--- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 12 files changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index e5a034f208d8..623e232ec9c6 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -119,7 +119,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) @@ -127,7 +127,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index ae6f126f204a..f39deb3ec00a 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -395,7 +395,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, slck_name =3D slowxtal_name; } =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, data->plla_layout, data->plla_characteristics); if (IS_ERR(hw)) @@ -403,7 +403,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 at91sam9260_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, data->pllb_layout, data->pllb_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 684d2bcb36e8..3436a09a6e8a 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -134,7 +134,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) =20 at91sam9g45_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 9fc20b177b13..80ccd4a49df3 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -160,7 +160,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; @@ -171,7 +171,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, &at91rm9200_pll_layout, &pllb_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 969f809e7d65..0e8657aac491 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -101,7 +101,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) =20 at91sam9rl_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &at91rm9200_pll_layout, &sam9rl_plla_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 5728cfb9036f..6b8c755fefdf 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -182,7 +182,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, =20 at91sam9x5_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c index 249d6a53cedf..afd48cbaa6db 100644 --- a/drivers/clk/at91/clk-pll.c +++ b/drivers/clk/at91/clk-pll.c @@ -310,13 +310,13 @@ static const struct clk_ops pll_ops =3D { =20 struct clk_hw * __init at91_clk_register_pll(struct regmap *regmap, const char *name, - const char *parent_name, u8 id, + const char *parent_name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_layout *layout, const struct clk_pll_characteristics *characteristics) { struct clk_pll *pll; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int offset =3D PLL_REG(id); unsigned int pllr; int ret; @@ -330,7 +330,10 @@ at91_clk_register_pll(struct regmap *regmap, const cha= r *name, =20 init.name =3D name; init.ops =3D &pll_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index ead99948375b..d8e520e509d8 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -664,7 +664,7 @@ of_at91_clk_pll_setup(struct device_node *np, if (!characteristics) return; =20 - hw =3D at91_clk_register_pll(regmap, name, parent_name, id, layout, + hw =3D at91_clk_register_pll(regmap, name, parent_name, NULL, id, layout, characteristics); if (IS_ERR(hw)) goto out_free_characteristics; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 515a3c5595b7..ce68c1b1fb70 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -211,7 +211,7 @@ at91_clk_register_sam9x5_peripheral(struct regmap *regm= ap, spinlock_t *lock, =20 struct clk_hw * __init at91_clk_register_pll(struct regmap *regmap, const char *name, - const char *parent_name, u8 id, + const char *parent_name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_layout *layout, const struct clk_pll_characteristics *characteristics); struct clk_hw * __init diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 8bbc34e22cda..bc62b9ed4ea0 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -215,7 +215,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) =20 sama5d2_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 05d0cdd22bc4..9d86c350a1e7 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -161,7 +161,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index da84b4cef827..8491b1e0391d 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -176,7 +176,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", 0, + hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E69E7EB64DD for ; Thu, 27 Jul 2023 05:33:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231783AbjG0Fdm (ORCPT ); Thu, 27 Jul 2023 01:33:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231772AbjG0Fdf (ORCPT ); Thu, 27 Jul 2023 01:33:35 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1A1E2D78 for ; Wed, 26 Jul 2023 22:33:12 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1b8b4748fe4so3783095ad.1 for ; Wed, 26 Jul 2023 22:33:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435992; x=1691040792; 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=p47IEHM+JZSsAANQ/kyvjM6x0oAWT/q0JwErNba07sU=; b=Jwa33zZJtyHQ6H92mgUKLxpuKwc455YJUiTrkI7z8K56ZNWLnw5UeW6SLUP+rNVRni IDIcwsZlCQLAQI/L8464HY/WPdd3RN4xbPZDGno3r3bdbezUcvwy+/pT17jiv3DW26Uk JYP9beEDushkyrKuTpEJaIBFNjnWn7q0ZRvV4hNcQX9wMPeavBy0K9hTbfXWnA8iosxR i3xQDBNBm6nMBkpozyoQJ0vRdI2KG68b1O2rX8lMxQej1bpkg95TAwAoCbeBPX17WXQI vrUYqrjnbTqwD0gCqWNILBwWsmF27jlAcQpSe23WxY7NRlxU6c9hx6ZEHQhPAZSI4eVW WVmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435992; x=1691040792; 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=p47IEHM+JZSsAANQ/kyvjM6x0oAWT/q0JwErNba07sU=; b=XksGBddRmkstxZ+yLcM0EwQQe2WPKNN21JmdQmTwd4G5yhV+RDM9oYDtQQdTVkoC9p VaS6YYH1BUcvTPtryjmN3fEgMm4X4a2wYWFi1L9gEHFeFDuOXLCU8YdgeQbdumKIW5Uz Tfo7EiAcwp8Iol+Qp2Znu/O4wkLsLQRZaGeJEqHdvW0VkNjcQ+aCyvUq09CDsPAEF/91 745lFW+jdCr6o7YNFkMnVl3MBkPAkNYvAldppW2hyu2JqdM9s2DEK+PntFrFKkLlKJp+ SC79lUP8Up0+H43tAP2P0H3sgTKhwDupqpgB5NS8fphEtLJ33fG0PT6l57Pc8ywcW0cu OBnw== X-Gm-Message-State: ABy/qLZBjHY/yLFcGVXM08WVgFwFPEAfBR1dVMPgaPIukQR6s0YJdIxn Zjpl1fuM221fecGcgHgjVEIzDA== X-Google-Smtp-Source: APBJJlEpXgAf/SMRf0Z3BXR+DOQC2gQ41hjdzkvIn6yKyCoC8D2FLzqGxSICSduADERyliEuCcZ1sg== X-Received: by 2002:a17:902:7795:b0:1b8:b827:aa8e with SMTP id o21-20020a170902779500b001b8b827aa8emr3089993pll.11.1690435992455; Wed, 26 Jul 2023 22:33:12 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:12 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 06/42] clk: at91: clk-audio-pll: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:20 +0300 Message-Id: <20230727053156.13587-7-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in audio pll clock drivers. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-audio-pll were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-audio-pll.c | 25 +++++++++++++++++-------- drivers/clk/at91/dt-compat.c | 6 +++--- drivers/clk/at91/pmc.h | 6 +++--- drivers/clk/at91/sama5d2.c | 6 +++--- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/drivers/clk/at91/clk-audio-pll.c b/drivers/clk/at91/clk-audio-= pll.c index a92da64c12e1..7a13af95d628 100644 --- a/drivers/clk/at91/clk-audio-pll.c +++ b/drivers/clk/at91/clk-audio-pll.c @@ -450,7 +450,7 @@ static const struct clk_ops audio_pll_pmc_ops =3D { =20 struct clk_hw * __init at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct clk_audio_frac *frac_ck; struct clk_init_data init =3D {}; @@ -462,7 +462,10 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap= , const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_frac_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE; =20 @@ -480,10 +483,10 @@ at91_clk_register_audio_pll_frac(struct regmap *regma= p, const char *name, =20 struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct clk_audio_pad *apad_ck; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 apad_ck =3D kzalloc(sizeof(*apad_ck), GFP_KERNEL); @@ -492,7 +495,10 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap,= const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_pad_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; @@ -511,10 +517,10 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap= , const char *name, =20 struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct clk_audio_pmc *apmc_ck; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 apmc_ck =3D kzalloc(sizeof(*apmc_ck), GFP_KERNEL); @@ -523,7 +529,10 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap,= const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_pmc_ops; - init.parent_names =3D &parent_name; + if (parent_hw) + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + else + init.parent_names =3D &parent_name; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index d8e520e509d8..6698a770d45a 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -43,7 +43,7 @@ static void __init of_sama5d2_clk_audio_pll_frac_setup(st= ruct device_node *np) =20 parent_name =3D of_clk_get_parent_name(np, 0); =20 - hw =3D at91_clk_register_audio_pll_frac(regmap, name, parent_name); + hw =3D at91_clk_register_audio_pll_frac(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 @@ -69,7 +69,7 @@ static void __init of_sama5d2_clk_audio_pll_pad_setup(str= uct device_node *np) =20 parent_name =3D of_clk_get_parent_name(np, 0); =20 - hw =3D at91_clk_register_audio_pll_pad(regmap, name, parent_name); + hw =3D at91_clk_register_audio_pll_pad(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 @@ -95,7 +95,7 @@ static void __init of_sama5d2_clk_audio_pll_pmc_setup(str= uct device_node *np) =20 parent_name =3D of_clk_get_parent_name(np, 0); =20 - hw =3D at91_clk_register_audio_pll_pmc(regmap, name, parent_name); + hw =3D at91_clk_register_audio_pll_pmc(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index ce68c1b1fb70..6d541b4d3f50 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -130,15 +130,15 @@ struct clk_hw *of_clk_hw_pmc_get(struct of_phandle_ar= gs *clkspec, void *data); =20 struct clk_hw * __init at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index bc62b9ed4ea0..d2af421abddc 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -227,19 +227,19 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) sama5d2_pmc->chws[PMC_PLLACK] =3D hw; =20 hw =3D at91_clk_register_audio_pll_frac(regmap, "audiopll_fracck", - "mainck"); + "mainck", NULL); if (IS_ERR(hw)) goto err_free; =20 hw =3D at91_clk_register_audio_pll_pad(regmap, "audiopll_padck", - "audiopll_fracck"); + "audiopll_fracck", NULL); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_AUDIOPINCK] =3D hw; =20 hw =3D at91_clk_register_audio_pll_pmc(regmap, "audiopll_pmcck", - "audiopll_fracck"); + "audiopll_fracck", NULL); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6D87C41513 for ; Thu, 27 Jul 2023 05:33:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231774AbjG0Fdt (ORCPT ); Thu, 27 Jul 2023 01:33:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231770AbjG0Fdj (ORCPT ); Thu, 27 Jul 2023 01:33:39 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D57430C6 for ; Wed, 26 Jul 2023 22:33:20 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1b9c5e07c1bso4614265ad.2 for ; Wed, 26 Jul 2023 22:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690435999; x=1691040799; 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=tDrEaG1FrYIYPpIkYqTQ35Nb2gC0x77uQ2+oCiptl8Y=; b=TNmQRH6XD/IQqkFuUnbUYHKPbUJtpCP9ZTd7hOjPFstkK4GGw2cOrkEXSJrRdk77Ss qool2eiA9B4NNiEyhGjOTFBRKoV+sCN/vODbxNiO65s2r5MD7FDhRuvbVn0hkwT0puLs lZbMQxJkqD2q1EoeXCK6avn+rNgNfXEH2ESjaDJBIgmjyvv5wgG0cT/ARkKS7mGBLa/h RTsQtwAxUuFX//+UIV4yaPX2gi+awiwQoglYmG+eXfzf0bVPFPNZRG24JgQ6hREbbVvo caVyWLd3gtrnrBIBYu4east4Mz0rJM6fKjwUTVYDM4AJwYNeU85+D4G/Sav7a4b7g3DT RblQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690435999; x=1691040799; 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=tDrEaG1FrYIYPpIkYqTQ35Nb2gC0x77uQ2+oCiptl8Y=; b=c3h/72nEX/Hbd05Xwqf8uD929p/SotPuTRnDhxJ5bN2La8PSdBuutTcQahmC0/wjCN ebJKakUm8jUhiynx0HyPluTkm8RxZl5WuMekqvAM00GFm04XKacLt0BHtsauGvEGfDTm 8nkjrvmShABmciZe+BBGB6TrcCdpCujBqHTJND6CF20X9FVbetXpZQHR9T1eV7f5IQcJ qV4vxk2oCiTuZcerplaidIZ8r+40KPkfkOXBDYP6prh7rIHqruL6/AQpmukzlf4PrWpG k09ro0g5UeQfBSUWRUKyOx2GXTmYGQ2k8JCRtebeqEik2uued2wDtxWGgv2+1VhogeaB 0nuw== X-Gm-Message-State: ABy/qLZa/YWRISRPrYc9qWanf+J9r/8IicOcjXuuKrq5OKGyEjJnpR57 GasPvwqe5N7I60IfpTtIQDyaew== X-Google-Smtp-Source: APBJJlEZZy7NFVfWXUN3El4Q2vpfEVNjq1UmwljSqneIebgGoed5M6gxjkSL5k6eFM37B6jaUMi+9Q== X-Received: by 2002:a17:902:728a:b0:1b8:a19e:a3d3 with SMTP id d10-20020a170902728a00b001b8a19ea3d3mr3388752pll.52.1690435999541; Wed, 26 Jul 2023 22:33:19 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:19 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 07/42] clk: at91: clk-plldiv: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:21 +0300 Message-Id: <20230727053156.13587-8-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in plldiv clock driver. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-plldiv were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-plldiv.c | 13 +++++++++---- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 9 files changed, 17 insertions(+), 12 deletions(-) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 3436a09a6e8a..cb98d22c2e30 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -139,7 +139,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 80ccd4a49df3..34dd7645f964 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -165,7 +165,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 6b8c755fefdf..37280852f086 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -187,7 +187,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-plldiv.c b/drivers/clk/at91/clk-plldiv.c index ba3a1839a96d..1d5a0a6d299d 100644 --- a/drivers/clk/at91/clk-plldiv.c +++ b/drivers/clk/at91/clk-plldiv.c @@ -72,11 +72,11 @@ static const struct clk_ops plldiv_ops =3D { =20 struct clk_hw * __init at91_clk_register_plldiv(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct clk_plldiv *plldiv; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 plldiv =3D kzalloc(sizeof(*plldiv), GFP_KERNEL); @@ -85,8 +85,13 @@ at91_clk_register_plldiv(struct regmap *regmap, const ch= ar *name, =20 init.name =3D name; init.ops =3D &plldiv_ops; - init.parent_names =3D parent_name ? &parent_name : NULL; - init.num_parents =3D parent_name ? 1 : 0; + if (parent_hw) { + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + init.num_parents =3D 1; + } else { + init.parent_names =3D parent_name ? &parent_name : NULL; + init.num_parents =3D parent_name ? 1 : 0; + } init.flags =3D CLK_SET_RATE_GATE; =20 plldiv->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 6698a770d45a..6e010b5cb435 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -723,7 +723,7 @@ of_at91sam9x5_clk_plldiv_setup(struct device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91_clk_register_plldiv(regmap, name, parent_name); + hw =3D at91_clk_register_plldiv(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 6d541b4d3f50..3f7ad79db4db 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -216,7 +216,7 @@ at91_clk_register_pll(struct regmap *regmap, const char= *name, const struct clk_pll_characteristics *characteristics); struct clk_hw * __init at91_clk_register_plldiv(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); =20 struct clk_hw * __init sam9x60_clk_register_div_pll(struct regmap *regmap, spinlock_t *lock, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index d2af421abddc..7904f2122ed7 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -220,7 +220,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 9d86c350a1e7..7f2ac8f648dd 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -166,7 +166,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 8491b1e0391d..7cda8032653e 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -181,7 +181,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack"); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00EEAC04E69 for ; Thu, 27 Jul 2023 05:34:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231811AbjG0FeQ (ORCPT ); Thu, 27 Jul 2023 01:34:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231761AbjG0FeM (ORCPT ); Thu, 27 Jul 2023 01:34:12 -0400 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 53B0E30C5 for ; Wed, 26 Jul 2023 22:33:43 -0700 (PDT) Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1b9e9765f2cso3288005ad.3 for ; Wed, 26 Jul 2023 22:33:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436007; x=1691040807; 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=ET3auG+YOLxA4Kz/fjW90vjtO8YNjKzJmKaIU71PEwg=; b=Qky0ouzrEazF7OV6EacrIQAM3rX40oemivrHJMql2tdK1nPdQkUqW3UsotdaVdtp1O utQ/MHsxc2TDqlW3sNgwqjIBhxQu5qqeKeY26RZ53DY6jPwCHs0W3F1/4EDiUpEAJDdk lU2WWR6bDv5AFIvQ4U1eoprq93jq87qlJ0v/PSGYsgOpYWz5W6W3om4khGaePa48odAp KVCwwcG0OXprw/mPnCjw3X0EylLgiRU6usjob8l8R1O+/WAX5Y2eg4Z3tBdN6zz7RV42 iDSIAbqpMLiPWekaaUPDt3ktUQvfxwzAUxuTg1GYsVsZVIQgx4NMk2WGg1vs90+DjJpk OroA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436007; x=1691040807; 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=ET3auG+YOLxA4Kz/fjW90vjtO8YNjKzJmKaIU71PEwg=; b=O+v63U0EQTi7WwJHnnn4TNjj7VLlHVRoYT/I3GG6CqxRcdIredT0D1v77UlH+TuAzf 9MFFzCGHIGSTBkpcZXUAasj7gjepjEBRPqBnJU81H+ue1DzoMCK2eE628g3V+pZwlzVF 7uzuf+GCozhaovZjw4TdQlzrsxqXdV6BTleA2oMyXIwcy+BcMELlaQnoZIN/kxNqopBM 2d2tQDyvqDciB0uYLAB7BhnNUzTMQpt5FUqpMl1eT9wrbCZF5d14n542nVwP/M4KgpE1 GTPKRAbu61mEYyuTpGW11kX+n28p8yIoi7VlzRBWrZw4BtJyfmwhwDP9ZlFAkKH1mQyu r5EQ== X-Gm-Message-State: ABy/qLZeqhoXxM5TkHXA5oc1PkbQAo5yCeSqjvRaNss+ZIQg9wReWhbN JPMHVMAm1XxDVEZfneOsTvBKYw== X-Google-Smtp-Source: APBJJlF5djb+zVDVYWi+jQX6mFMN3qj/+EXFOyxmNMw6sHbNTiuDfY+nvggI6LNZBReVZGkB9Hq9xQ== X-Received: by 2002:a17:903:22c9:b0:1b8:30d8:bc45 with SMTP id y9-20020a17090322c900b001b830d8bc45mr3989756plg.47.1690436006998; Wed, 26 Jul 2023 22:33:26 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:26 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 08/42] clk: at91: clk-h32mx: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:22 +0300 Message-Id: <20230727053156.13587-9-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in h32mx clock driver. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-h32mx were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-h32mx.c | 13 +++++++++---- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c index 1e6c12eeda10..d7cdade56454 100644 --- a/drivers/clk/at91/clk-h32mx.c +++ b/drivers/clk/at91/clk-h32mx.c @@ -83,10 +83,10 @@ static const struct clk_ops h32mx_ops =3D { =20 struct clk_hw * __init at91_clk_register_h32mx(struct regmap *regmap, const char *name, - const char *parent_name) + const char *parent_name, struct clk_hw *parent_hw) { struct clk_sama5d4_h32mx *h32mxclk; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 h32mxclk =3D kzalloc(sizeof(*h32mxclk), GFP_KERNEL); @@ -95,8 +95,13 @@ at91_clk_register_h32mx(struct regmap *regmap, const cha= r *name, =20 init.name =3D name; init.ops =3D &h32mx_ops; - init.parent_names =3D parent_name ? &parent_name : NULL; - init.num_parents =3D parent_name ? 1 : 0; + if (parent_hw) { + init.parent_hws =3D (const struct clk_hw **)&parent_hw; + init.num_parents =3D 1; + } else { + init.parent_names =3D parent_name ? &parent_name : NULL; + init.num_parents =3D parent_name ? 1 : 0; + } init.flags =3D CLK_SET_RATE_GATE; =20 h32mxclk->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 6e010b5cb435..8540234e9d89 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -201,7 +201,7 @@ static void __init of_sama5d4_clk_h32mx_setup(struct de= vice_node *np) =20 parent_name =3D of_clk_get_parent_name(np, 0); =20 - hw =3D at91_clk_register_h32mx(regmap, name, parent_name); + hw =3D at91_clk_register_h32mx(regmap, name, parent_name, NULL); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 3f7ad79db4db..1604b44f2945 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -150,7 +150,7 @@ at91_clk_register_generated(struct regmap *regmap, spin= lock_t *lock, =20 struct clk_hw * __init at91_clk_register_h32mx(struct regmap *regmap, const char *name, - const char *parent_name); + const char *parent_name, struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 7904f2122ed7..8c7ff0108b41 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -276,7 +276,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) =20 sama5d2_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div"); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div", NULL); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 7cda8032653e..04c848cd7001 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -214,7 +214,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 sama5d4_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div"); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div", NULL); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F2B3C001E0 for ; Thu, 27 Jul 2023 05:34:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231698AbjG0Fel (ORCPT ); Thu, 27 Jul 2023 01:34:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231856AbjG0Fec (ORCPT ); Thu, 27 Jul 2023 01:34:32 -0400 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A51B635B0 for ; Wed, 26 Jul 2023 22:33:56 -0700 (PDT) Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-56345ab18b0so294317a12.3 for ; Wed, 26 Jul 2023 22:33:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436014; x=1691040814; 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=u6pPVVuf+iHSKHYY4ZFtCS4Q+L5PHxVLLeO9zsDmxdk=; b=I40E/Tu+tyrDTZMYc1cPYstrlmBQV6lwHdF/Wtzl6QsK+ppLtgCOOz0mQUFVkkA0/K Pma5M1Mr+XEtJn3bjdcSfgKI6wHMkOMB4ftatqfkjaBo1w5uV02nzkOJk2vq4x7G9IA/ aNWz0J5TfQFmLb7nSVOOk1gKSocVUnBWfxx77HC0LVsw9fbj/JJJmt8O6hz4XEcHgtc3 oGwrCDLHPZfd525go0ZfPDjM2AXs97ZkvraDqTOQdKml1FRv7jUY2Z4oMte7u4UPZWOX 2fvSeBRdKtdhO7ap8JuHbz4LqYV/wVEYjkKhrYafuwp9XtNRnajUgcz3iileulOXZutu /2xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436014; x=1691040814; 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=u6pPVVuf+iHSKHYY4ZFtCS4Q+L5PHxVLLeO9zsDmxdk=; b=ZWLVoz+6NKAiho1NHbADmwsU1yWtyZwhlGeU3NUxSqIF0ZPsp9GA7FQRbjge8WtfjL rL+6R27SBJS1ro5oEGZLWomlX/D15pUCXkHHchrlZuG5AqDy+mSPzSGch6q/ynIKqf+T PXAw3DpgSGYAgsgqfqFaKXUQgotY+5kjkQ1KtwFme9EglGH5oYDnwxCbvOyTKK02pIZu WRR4Xno0+s0yHRg/xuJINIOxqqzAoTMVKvfCO3Ff3EB1vkXVVUgGDl8KfPM3d0EaF8e8 eFdJnNWznf5REQFwvwQrRkEDtIl9QScfpsx9B03psXeaqL+L/cDHO13Lk6rVQWp+8sZq hHqg== X-Gm-Message-State: ABy/qLaFEB17PhhwJunpuvaQCCBiqGR2NSe+Nde7QhIoF7TJnxjm+zBU 3qtf4vFYUdjXuRy03EA9mAF2zQ== X-Google-Smtp-Source: APBJJlFm4mKsFff1Zkdn3PV2aA3+Ga6uV0BMrrpjW7y5ICZ5ZDzSKC4ZKS3AGNq3/3HADGo0vTK/7w== X-Received: by 2002:a17:902:c94e:b0:1b6:7f96:42ca with SMTP id i14-20020a170902c94e00b001b67f9642camr3754606pla.66.1690436014261; Wed, 26 Jul 2023 22:33:34 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:33 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 09/42] clk: at91: clk-i2s-mux: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:23 +0300 Message-Id: <20230727053156.13587-10-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in i2s mux clock driver. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-i2s-mux were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-i2s-mux.c | 7 +++++-- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/clk/at91/clk-i2s-mux.c b/drivers/clk/at91/clk-i2s-mux.c index fe6ce172b8b0..f1981b8ee18d 100644 --- a/drivers/clk/at91/clk-i2s-mux.c +++ b/drivers/clk/at91/clk-i2s-mux.c @@ -50,7 +50,7 @@ static const struct clk_ops clk_i2s_mux_ops =3D { =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, - const char * const *parent_names, + const char * const *parent_names, struct clk_hw **parent_hws, unsigned int num_parents, u8 bus_id) { struct clk_init_data init =3D {}; @@ -63,7 +63,10 @@ at91_clk_i2s_mux_register(struct regmap *regmap, const c= har *name, =20 init.name =3D name; init.ops =3D &clk_i2s_mux_ops; - init.parent_names =3D parent_names; + if (parent_hws) + init.parent_hws =3D (const struct clk_hw **)parent_hws; + else + init.parent_names =3D parent_names; init.num_parents =3D num_parents; =20 i2s_ck->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 8540234e9d89..f0498d9c269c 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -239,7 +239,7 @@ static void __init of_sama5d2_clk_i2s_mux_setup(struct = device_node *np) continue; =20 hw =3D at91_clk_i2s_mux_register(regmap_sfr, i2s_mux_np->name, - parent_names, 2, bus_id); + parent_names, NULL, 2, bus_id); if (IS_ERR(hw)) continue; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 1604b44f2945..e1fd87aebd27 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -154,7 +154,7 @@ at91_clk_register_h32mx(struct regmap *regmap, const ch= ar *name, =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, - const char * const *parent_names, + const char * const *parent_names, struct clk_hw **parent_hws, unsigned int num_parents, u8 bus_id); =20 struct clk_hw * __init diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 8c7ff0108b41..f5d6c7a96cf2 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -372,7 +372,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) parent_names[0] =3D "i2s0_clk"; parent_names[1] =3D "i2s0_gclk"; hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s0_muxclk", - parent_names, 2, 0); + parent_names, NULL, 2, 0); if (IS_ERR(hw)) goto err_free; =20 @@ -381,7 +381,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) parent_names[0] =3D "i2s1_clk"; parent_names[1] =3D "i2s1_gclk"; hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s1_muxclk", - parent_names, 2, 1); + parent_names, NULL, 2, 1); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22E76C001E0 for ; Thu, 27 Jul 2023 05:34:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231883AbjG0Feo (ORCPT ); Thu, 27 Jul 2023 01:34:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231838AbjG0Fee (ORCPT ); Thu, 27 Jul 2023 01:34:34 -0400 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C98730F0 for ; Wed, 26 Jul 2023 22:34:00 -0700 (PDT) Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-55c85b4b06bso296059a12.2 for ; Wed, 26 Jul 2023 22:34:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436022; x=1691040822; 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=mx4drRTLsTo8BLvzaJxx0gqAvVOnYebcn8FvaHa6RBo=; b=m7Y6n6a0biU9wU3OEZlV51PTrYisbU3CVl8mv35Tvoiz8R81ht7ELjhBcuRQ0UM2en fmHlihmt4w6JuP8JXtP6UjWeKS5Re+QESFlaZUzUNUUkL+juKq1FVOMcz3ywENevnO9A cfv7M8A89p+f0yrAdJj4QeTrmWZrCDjvcxCBbv+uPJpqe+3IJKut0FaDmDjZnkSR6meW OvOt9qGB4bBYAtXinToNleXB+Skn2vG5SHGGTYjXhtoc56Cyn8JwbLZ3CYB8GoCYwBUF tXu6T5HwLV/oTdU6i4xIZHRQCgyselBzpkGYSAqHO8nYM9YtAqkwbHLLV2H/JOXudt+9 ZK7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436022; x=1691040822; 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=mx4drRTLsTo8BLvzaJxx0gqAvVOnYebcn8FvaHa6RBo=; b=jngPLzbn+DJdYqBmh1tpeyMNOuHWhg9xlUww03DQpLmvaVfbIYYAlt+s5PauamCISe U5IYhID6zYCLtaF/i207V/+nlGZ6i0O0aAHnJadiKE/Td02mKRiFVlNLpvGs5/QPPVaS UbUNj118dGg+v40LXFZB3k1hEE4fNPCz1FSTli5pRJWffnDQ/zHXYvplma2t4ImnXJE7 2baPeh29M3XtHW2AzCzavrCedMv53Wu446Nr/vTDN8JMwaRbr8jkqczAsuwtCMU8qJdO v5AuWFzlr1La/byunwHrCQdKjXLlNx3+qTJtHxgWcg2wv33Zw4TvcWzYK/sXq6UPBmg2 qU5w== X-Gm-Message-State: ABy/qLbg6N009RgnRVy//Foy6/ABNQW0Y2FJu38Dyn6gCTMHr0Yn1uA5 jpCJ2nh0TdLaQHfwsptWc+YBYg== X-Google-Smtp-Source: APBJJlE27IIV1/aO9kFhYFpQUxkfq2D5aR9B9DdKPgTgxMtU8whHLmifslSngsT/6RNiC1a7J+qR8g== X-Received: by 2002:a05:6a20:12c1:b0:135:38b5:7e58 with SMTP id v1-20020a056a2012c100b0013538b57e58mr4347746pzg.37.1690436021948; Wed, 26 Jul 2023 22:33:41 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:41 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 10/42] clk: at91: sama5d2: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:24 +0300 Message-Id: <20230727053156.13587-11-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch SAMA5D2 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Extra time saved on registration is ~410us when running at 492MHz. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sama5d2.c | 165 ++++++++++++++++++++----------------- 1 file changed, 89 insertions(+), 76 deletions(-) diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index f5d6c7a96cf2..cdb578059449 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -37,9 +38,9 @@ static const struct clk_pcr_layout sama5d2_pcr_layout =3D= { .pid_mask =3D GENMASK(6, 0), }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } sama5d2_systemck[] =3D { @@ -47,14 +48,14 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "lcdck", .p =3D "masterck_div", .id =3D 3 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, - { .n =3D "iscck", .p =3D "masterck_div", .id =3D 18 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "lcdck", .id =3D 3 }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, + { .n =3D "iscck", .id =3D 18 }, }; =20 static const struct { @@ -164,25 +165,29 @@ static const struct clk_programmable_layout sama5d2_p= rogrammable_layout =3D { =20 static void __init sama5d2_pmc_setup(struct device_node *np) { + struct clk_hw *slow_clk_hw, *main_xtal_hw, *main_rc_hw, *main_osc_hw; + struct clk_hw *hw, *audio_fracck_hw, *usbck_hw, *parent_hws[6]; + static struct clk_parent_data parent_data; struct clk_range range =3D CLK_RANGE(0, 0); - const char *slck_name, *mainxtal_name; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *sama5d2_pmc; - const char *parent_names[6]; struct regmap *regmap, *regmap_sfr; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -195,51 +200,50 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) if (!sama5d2_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 100000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 100000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_MAIN] =3D hw; - - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, sama5d2_pmc->chws[PM= C_MAIN], 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_audio_pll_frac(regmap, "audiopll_fracck", - "mainck", NULL); - if (IS_ERR(hw)) + audio_fracck_hw =3D at91_clk_register_audio_pll_frac(regmap, "audiopll_fr= acck", + NULL, sama5d2_pmc->chws[PMC_MAIN]); + if (IS_ERR(audio_fracck_hw)) goto err_free; =20 - hw =3D at91_clk_register_audio_pll_pad(regmap, "audiopll_padck", - "audiopll_fracck", NULL); + hw =3D at91_clk_register_audio_pll_pad(regmap, "audiopll_padck", NULL, au= dio_fracck_hw); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_AUDIOPINCK] =3D hw; =20 - hw =3D at91_clk_register_audio_pll_pmc(regmap, "audiopll_pmcck", - "audiopll_fracck", NULL); + hw =3D at91_clk_register_audio_pll_pmc(regmap, "audiopll_pmcck", NULL, au= dio_fracck_hw); if (IS_ERR(hw)) goto err_free; =20 @@ -249,25 +253,25 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) if (IS_ERR(regmap_sfr)) regmap_sfr =3D NULL; =20 - hw =3D at91_clk_register_utmi(regmap, regmap_sfr, "utmick", "mainck", NUL= L); + hw =3D at91_clk_register_utmi(regmap, regmap_sfr, "utmick", NULL, + sama5d2_pmc->chws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D sama5d2_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D sama5d2_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d2_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); @@ -276,31 +280,31 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) =20 sama5d2_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div", NULL); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", NULL, sama5d2_pmc->chws= [PMC_MCK]); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_MCK2] =3D hw; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); - if (IS_ERR(hw)) + parent_hws[0] =3D sama5d2_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D sama5d2_pmc->chws[PMC_UTMI]; + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; - parent_names[5] =3D "audiopll_pmcck"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D sama5d2_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D sama5d2_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d2_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D sama5d2_pmc->chws[PMC_MCK]; + parent_hws[5] =3D sama5d2_pmc->chws[PMC_AUDIOPLLCK]; for (i =3D 0; i < 3; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 6, i, + NULL, parent_hws, 6, i, &sama5d2_programmable_layout, NULL); if (IS_ERR(hw)) @@ -309,9 +313,18 @@ static void __init sama5d2_pmc_setup(struct device_nod= e *np) sama5d2_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + sama5d2_systemck[0].parent_hw =3D sama5d2_pmc->chws[PMC_MCK]; + sama5d2_systemck[1].parent_hw =3D sama5d2_pmc->chws[PMC_MCK]; + sama5d2_systemck[2].parent_hw =3D usbck_hw; + sama5d2_systemck[3].parent_hw =3D usbck_hw; + sama5d2_systemck[4].parent_hw =3D sama5d2_pmc->pchws[0]; + sama5d2_systemck[5].parent_hw =3D sama5d2_pmc->pchws[1]; + sama5d2_systemck[6].parent_hw =3D sama5d2_pmc->pchws[2]; + sama5d2_systemck[7].parent_hw =3D sama5d2_pmc->chws[PMC_MCK]; for (i =3D 0; i < ARRAY_SIZE(sama5d2_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d2_systemck[i].n, - sama5d2_systemck[i].p, NULL, + NULL, sama5d2_systemck[i].parent_hw, sama5d2_systemck[i].id, sama5d2_systemck[i].flags); if (IS_ERR(hw)) @@ -324,7 +337,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_periphck[i].n, - "masterck_div", NULL, + NULL, sama5d2_pmc->chws[PMC_MCK], sama5d2_periphck[i].id, &range, INT_MIN, sama5d2_periphck[i].flags); @@ -338,7 +351,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_periph32ck[i].n, - "h32mxck", NULL, + NULL, sama5d2_pmc->chws[PMC_MCK2], sama5d2_periph32ck[i].id, &sama5d2_periph32ck[i].r, INT_MIN, 0); @@ -348,17 +361,17 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) sama5d2_pmc->phws[sama5d2_periph32ck[i].id] =3D hw; } =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; - parent_names[5] =3D "audiopll_pmcck"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D sama5d2_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D sama5d2_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d2_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D sama5d2_pmc->chws[PMC_MCK]; + parent_hws[5] =3D sama5d2_pmc->chws[PMC_AUDIOPLLCK]; for (i =3D 0; i < ARRAY_SIZE(sama5d2_gck); i++) { hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_gck[i].n, - parent_names, NULL, NULL, 6, + NULL, parent_hws, NULL, 6, sama5d2_gck[i].id, &sama5d2_gck[i].r, sama5d2_gck[i].chg_pid); @@ -369,19 +382,19 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) } =20 if (regmap_sfr) { - parent_names[0] =3D "i2s0_clk"; - parent_names[1] =3D "i2s0_gclk"; + parent_hws[0] =3D sama5d2_pmc->phws[54]; /* i2s0_clk */ + parent_hws[1] =3D sama5d2_pmc->phws[54]; /* i2s0_gclk */ hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s0_muxclk", - parent_names, NULL, 2, 0); + NULL, parent_hws, 2, 0); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_I2S0_MUX] =3D hw; =20 - parent_names[0] =3D "i2s1_clk"; - parent_names[1] =3D "i2s1_gclk"; + parent_hws[0] =3D sama5d2_pmc->phws[55]; /* i2s1_clk */ + parent_hws[1] =3D sama5d2_pmc->ghws[55]; /* i2s1_gclk */ hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s1_muxclk", - parent_names, NULL, 2, 1); + NULL, parent_hws, 2, 1); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9DB5EB64DD for ; Thu, 27 Jul 2023 05:34:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231927AbjG0Fet (ORCPT ); Thu, 27 Jul 2023 01:34:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231890AbjG0Fef (ORCPT ); Thu, 27 Jul 2023 01:34:35 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07A772733 for ; Wed, 26 Jul 2023 22:34:05 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1bbd03cb7c1so3409565ad.3 for ; Wed, 26 Jul 2023 22:34:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436029; x=1691040829; 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=jm/m0e6p3OI9IQEk5rZymWEUT0ucuiLYWwUROUbSNCM=; b=LRKNwtfgw+/7uaq/ShJREdXltre+wvD8ytba7Jl1febDV3zkicZqG0LuPKUMz85FVz jh6TEBNC6CJjxz/svE8Ut6ZE0+eqIDy6oMGtIBrjnEhjtOyqM9TPUKpXxicgKkp+IAnG Bo1NhLeMPX9PeVPcpSrWpFCbCwHSeVMXZfTCNYbVCl7BAcDTRFa8GIbneaTFkBZQWyRy ZwhlFgS9//RYBu021feAcA7161D+4z+COoWXRPDKx9gCjX9rFzfr/RK+zihOhMqDoDK3 P5wdxPxZfXsLb6j0dxB1qgH7SN25iXHTB+/8OMYKfcXvvmy+DYn9xuLVXWjRjjZXe0cg /7pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436029; x=1691040829; 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=jm/m0e6p3OI9IQEk5rZymWEUT0ucuiLYWwUROUbSNCM=; b=EgVdgwAQB8DItiEyojOKbV4i43FI2gM0vMbxoKjrgBH86xQhNo1y8pNCrS9W2Dnajb ff6ArXhx4qD4mv1K2A1qdtAt/gitb2UvRu+FaRr5jQ9k9KLIjFDXi9ZYI1FKSH3vmaJd m2a1t2VTsQMQB7HSCMAyNqDyu9C+b6qjvREORDHoSVv8/C9YIrRNlOw3c7+zkp7fPKsp w7VH01V2GJsu5N/xqwli0jvuuOyxO2xrytd4s3OXBiqXDTk7t00pVs7knQ8uQUW39awc 31ID4YHTjPdBbcSb5ZWS1IYlUEec04HM64fDKCMGjf0DX7EqiWpyNXyTwHRr4WbB2O1Q ejRw== X-Gm-Message-State: ABy/qLZKqdxXg9pINi3cjBhQU3X9XSRkxmGANyKErJrpC73lebibS7nL hr8EY7c2mMRaIzO61hXvhsi3qw== X-Google-Smtp-Source: APBJJlGHPnyfRyR77fjalSkvJheNxztCmO6x2PKs8UOpLJLblBDPwinyWiRD3cBOqRiVi72luo0YRA== X-Received: by 2002:a17:902:c106:b0:1bb:8f37:dd0f with SMTP id 6-20020a170902c10600b001bb8f37dd0fmr3289035pli.45.1690436029073; Wed, 26 Jul 2023 22:33:49 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:48 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 11/42] clk: at91: clk-smd: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:25 +0300 Message-Id: <20230727053156.13587-12-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in smd clock drivers. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-smd were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-smd.c | 10 +++++++--- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 3 ++- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 37280852f086..13331e015dd7 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -226,7 +226,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, 2); + hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-smd.c b/drivers/clk/at91/clk-smd.c index 09c649c8598e..2c8432cc2fe6 100644 --- a/drivers/clk/at91/clk-smd.c +++ b/drivers/clk/at91/clk-smd.c @@ -111,11 +111,12 @@ static const struct clk_ops at91sam9x5_smd_ops =3D { =20 struct clk_hw * __init at91sam9x5_clk_register_smd(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents) + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents) { struct at91sam9x5_clk_smd *smd; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 smd =3D kzalloc(sizeof(*smd), GFP_KERNEL); @@ -124,7 +125,10 @@ at91sam9x5_clk_register_smd(struct regmap *regmap, con= st char *name, =20 init.name =3D name; init.ops =3D &at91sam9x5_smd_ops; - init.parent_names =3D parent_names; + if (parent_hws) + init.parent_hws =3D (const struct clk_hw **)parent_hws; + else + init.parent_names =3D parent_names; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index f0498d9c269c..f464e125c9fd 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -858,7 +858,7 @@ static void __init of_at91sam9x5_clk_smd_setup(struct d= evice_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, name, parent_names, + hw =3D at91sam9x5_clk_register_smd(regmap, name, parent_names, NULL, num_parents); if (IS_ERR(hw)) return; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index e1fd87aebd27..541d2ba2fea5 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -248,7 +248,8 @@ at91_clk_register_sam9260_slow(struct regmap *regmap, =20 struct clk_hw * __init at91sam9x5_clk_register_smd(struct regmap *regmap, const char *name, - const char **parent_names, u8 num_parents); + const char **parent_names, struct clk_hw **parent_hws, + u8 num_parents); =20 struct clk_hw * __init at91_clk_register_system(struct regmap *regmap, const char *name, diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 7f2ac8f648dd..8326bb6a291c 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -205,7 +205,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, 2); + hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 04c848cd7001..1ff9286148da 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -228,7 +228,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 parent_names[0] =3D "plladivck"; parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, 2); + hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12C2EC00528 for ; Thu, 27 Jul 2023 05:35:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232022AbjG0Fe7 (ORCPT ); Thu, 27 Jul 2023 01:34:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231857AbjG0Fei (ORCPT ); Thu, 27 Jul 2023 01:34:38 -0400 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C36392D43 for ; Wed, 26 Jul 2023 22:34:09 -0700 (PDT) Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-55ae2075990so316811a12.0 for ; Wed, 26 Jul 2023 22:34:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436036; x=1691040836; 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=t4C9Oz1kltIRm38suchn59UxyDsm/QbdYXqrBIKy7eU=; b=lv/ar83B0jbhwKY2ab3VcuRlDhYDF+3c5B8hcYTNMY74KXuEXXKB/YBrL8Bo+2nmtu gpXuhKWBLJX+voHBzq1OMevlcmX1cQiYuK5S06/yiVHSeGtXkOPO0pO6fHnnA5+5sBsB Xk+EhkG/G8tRFH58Mu1TLs0/kK9Ich2nsn95w30V54QTfAtN6c2xaMBN+mi2gMwAiuGT gSCXke/FCLKPQk53BNBobq39MYi4Otcfb9FGVD0B/a1ZLfj5HH6dw0fpIl4tPP0yC34B qarlvw3ivcno8hZZbl7MA+dKt8Il3bGreiIYPSwKqhm51ErBIe3wPNpxQ2zy2QlRqGWD 8OMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436036; x=1691040836; 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=t4C9Oz1kltIRm38suchn59UxyDsm/QbdYXqrBIKy7eU=; b=EvsPtiqVBlznrndQlBzcqj8shyTJXOQINCYSwF4EPcRGTJBJGlpOawtLEv0JST8H08 t0dxzwQaY8kKkbsRfJv3z/xviM7Cc7ZPropnXT444N9BbozMWOo5mJ78PXXRc8H8zDkj AP+XJCRmrDnIK0LMpbf/klCQ3gmhycH1H3F++cqx783CTCOihm78u1ks0kZCnzhgG5Lg VtHHTOD2iltWLqliF7IIfVCPjqSa3PQgvsxSI4E6hc+6ciqv2wd1XA6o3SqT9My/Ppj4 XzDHrQ0ZLEBMGp2440YDpJXgPhQnyABw+vjZAUq+ReiNApfjghJfYj7onNnU+UzkNlHN haaA== X-Gm-Message-State: ABy/qLZE/0Zaeu4gUY7vGg1ytuYbgo9QkAdEvN2N1tAy6Zl6h/YoLa8P 1KSdgo06E2eZpwBsH339Je6BpGARpTmGy6P3Xj4vttVk X-Google-Smtp-Source: APBJJlEOU9CIR0GAd1ZAfZ8u4GySVCT6xMYpY4J49vaD8T2wQ5M215lzZQ9jqzJh3xaYewN6Oa9peQ== X-Received: by 2002:a17:903:234c:b0:1a9:40d5:b0ae with SMTP id c12-20020a170903234c00b001a940d5b0aemr3852843plh.12.1690436036369; Wed, 26 Jul 2023 22:33:56 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:33:56 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 12/42] clk: at91: sama5d3: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:26 +0300 Message-Id: <20230727053156.13587-13-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch SAMA5D3 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sama5d3.c | 124 +++++++++++++++++++++---------------- 1 file changed, 70 insertions(+), 54 deletions(-) diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 8326bb6a291c..db0c66e24091 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -37,9 +38,9 @@ static const struct clk_pcr_layout sama5d3_pcr_layout =3D= { .div_mask =3D GENMASK(17, 16), }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } sama5d3_systemck[] =3D { @@ -47,14 +48,14 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "lcdck", .p =3D "masterck_div", .id =3D 3 }, - { .n =3D "smdck", .p =3D "smdclk", .id =3D 4 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "lcdck", .id =3D 3 }, + { .n =3D "smdck", .id =3D 4 }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, }; =20 static const struct { @@ -114,24 +115,28 @@ static const struct { =20 static void __init sama5d3_pmc_setup(struct device_node *np) { - const char *slck_name, *mainxtal_name; + struct clk_hw *slow_clk_hw, *main_xtal_hw, *main_rc_hw, *main_osc_hw, *ma= inck_hw; + struct clk_hw *parent_hws[5], *smdck_hw, *usbck_hw, *hw; + static struct clk_parent_data parent_data; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *sama5d3_pmc; - const char *parent_names[5]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (!IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -143,54 +148,56 @@ static void __init sama5d3_pmc_setup(struct device_no= de *np) if (!sama5d3_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 50000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 50000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); - if (IS_ERR(hw)) + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, paren= t_hws, 2); + if (IS_ERR(mainck_hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, mainck_hw, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 sama5d3_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", "mainck", NULL); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, mainck_hw); if (IS_ERR(hw)) goto err_free; =20 sama5d3_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D mainck_hw; + parent_hws[2] =3D sama5d3_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d3_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + NULL, hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); @@ -199,28 +206,28 @@ static void __init sama5d3_pmc_setup(struct device_no= de *np) =20 sama5d3_pmc->chws[PMC_MCK] =3D hw; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); - if (IS_ERR(hw)) + parent_hws[0] =3D sama5d3_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D sama5d3_pmc->chws[PMC_UTMI]; + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + if (IS_ERR(usbck_hw)) goto err_free; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); - if (IS_ERR(hw)) + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + if (IS_ERR(smdck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D mainck_hw; + parent_hws[2] =3D sama5d3_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d3_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D sama5d3_pmc->chws[PMC_MCK]; for (i =3D 0; i < 3; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) @@ -229,9 +236,18 @@ static void __init sama5d3_pmc_setup(struct device_nod= e *np) sama5d3_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + sama5d3_systemck[0].parent_hw =3D sama5d3_pmc->chws[PMC_MCK]; + sama5d3_systemck[1].parent_hw =3D sama5d3_pmc->chws[PMC_MCK]; + sama5d3_systemck[2].parent_hw =3D smdck_hw; + sama5d3_systemck[3].parent_hw =3D usbck_hw; + sama5d3_systemck[4].parent_hw =3D usbck_hw; + sama5d3_systemck[5].parent_hw =3D sama5d3_pmc->pchws[0]; + sama5d3_systemck[6].parent_hw =3D sama5d3_pmc->pchws[1]; + sama5d3_systemck[7].parent_hw =3D sama5d3_pmc->pchws[2]; for (i =3D 0; i < ARRAY_SIZE(sama5d3_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d3_systemck[i].n, - sama5d3_systemck[i].p, NULL, + NULL, sama5d3_systemck[i].parent_hw, sama5d3_systemck[i].id, sama5d3_systemck[i].flags); if (IS_ERR(hw)) @@ -244,7 +260,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d3_pcr_layout, sama5d3_periphck[i].n, - "masterck_div", NULL, + NULL, sama5d3_pmc->chws[PMC_MCK], sama5d3_periphck[i].id, &sama5d3_periphck[i].r, INT_MIN, --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68756C001DC for ; Thu, 27 Jul 2023 05:35:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232051AbjG0FfD (ORCPT ); Thu, 27 Jul 2023 01:35:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231862AbjG0Fei (ORCPT ); Thu, 27 Jul 2023 01:34:38 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BE7C271B for ; Wed, 26 Jul 2023 22:34:12 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1b8ad8383faso4782515ad.0 for ; Wed, 26 Jul 2023 22:34:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436043; x=1691040843; 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=wj/zrL8WwstmXnH1Iv4DJ7LsdbSE0/SZKmUpfuJWIbY=; b=SkwKPnpOR8Z5XGlFbjS/UMoDRkdlP11vGl2TiPxlx6nUE8ssAcqu22tL8udwSA4B8r V5g9pDV1XNvMVDbrfzyxJM2GEtIVDLYBD05OkibLfrzFGYKf5f00cEcLI78gzljDn5h5 t0ozMF4W91aI52nesrSWZNuYtNBLqkZ2A7oU3nvNqbBzCRsyp5LfQl0O7BlX5SneCa1A TiRyc8d89yPv9/geLCZXvT48uuNX6KnXlu4F4ij9awAkQqWoVSBtqb+DS/nduw8+oQwR k2FhahE3AyOji7/roqQXLCW0wFqHjEGXPHiSC+Vc4XrPJuSJdp1wh+cQ3R6XHn2jobQz 01Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436043; x=1691040843; 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=wj/zrL8WwstmXnH1Iv4DJ7LsdbSE0/SZKmUpfuJWIbY=; b=GHAS7VTNmPgs1D8yZwLfS+j4DPZTSc3ttF5k5MgyIkOcrSbPxqnd0qSnKxMm/xA5rD VOokBRRqCJSuv75AgrAW89tKltkoZZv0JRfUf0WCIFueq08FPMDvVFuy/5DhH2vAAo+V nrcJMZrIUT4WgPVzHM/MGE6JFPjm5WMuIcqA4z1m7boUAY+cM+Aa2luUcjeBfODq77Mi c1CygBXXy7HhbVO+GSW2sHDDn+amPa14NUYDqjx3AjUZ6KNV7awS9VGQ2kxB765dh9E+ YI1LpPiMjlCCDQYFEkuDZfHOKID27u6NphqnHjMiCR+iS7JNdW3Vh8+pLq3TDX0jiz5N oerg== X-Gm-Message-State: ABy/qLYl0Czp7j4Kq0f9MG1E7BOio5alFlErd5gHS88vNbyCz1fzIdHE 8h7+vfQLeJmie5ChQmOfSne3SQ== X-Google-Smtp-Source: APBJJlH6VVHpmUq+5fWHet5chIXLNq550gkLg6fJI38OQMt+EeCcLhBG1OmgTl2N6iN3wLb63nplDQ== X-Received: by 2002:a17:902:c941:b0:1b8:a4e5:1735 with SMTP id i1-20020a170902c94100b001b8a4e51735mr5146515pla.61.1690436043560; Wed, 26 Jul 2023 22:34:03 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.33.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:03 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 13/42] clk: at91: sama5d3: make checkpatch.pl happy Date: Thu, 27 Jul 2023 08:31:27 +0300 Message-Id: <20230727053156.13587-14-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove the following checkpatch.pl CHECK: Please use a blank line after function/struct/union/enum declarations. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sama5d3.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index db0c66e24091..e1c1ba907e3a 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -278,6 +278,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) err_free: kfree(sama5d3_pmc); } + /* * The TCB is used as the clocksource so its clock is needed early. This m= eans * this can't be a platform driver. --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05313EB64DD for ; Thu, 27 Jul 2023 05:35:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232064AbjG0FfF (ORCPT ); Thu, 27 Jul 2023 01:35:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231867AbjG0Fek (ORCPT ); Thu, 27 Jul 2023 01:34:40 -0400 Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B0C52D59 for ; Wed, 26 Jul 2023 22:34:14 -0700 (PDT) Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-686b91c2744so467092b3a.0 for ; Wed, 26 Jul 2023 22:34:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436051; x=1691040851; 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=S/H1fFwwjqngvhNBP4nbjwJK1x037U3/vvPMvetEGEQ=; b=cCou1bY1xsAlB2b6a4i1I7lerXT5fsZkJvyRpw5Mo4MywIyStAQwDk9yq+EDJcACv+ h2SmYuQVZHU9kkmlOCKr1y+dS1nE+6HHS7IBwZ3cOYpwVss3HTw0KFT1F94ryGUj64lm SoPQOUfi/KhpZhMTINH5TLS4kuodTPnVVhfW31eCZHirZ0UAs2z4ul9GwbfySyvvdA3d K6lZcQC2Chzdedy8/ZqZ8Q8ymfVJ/9sen1+twv3SLcbjp4s0DNUEWCQNVCzAFczwJjF7 BeO+Suhc57pDm8guAqAEW3eeDbwZ6vJ91DMZocS59FqJDRlxyzrN8tncrjrxZzQiFKFW aLLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436051; x=1691040851; 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=S/H1fFwwjqngvhNBP4nbjwJK1x037U3/vvPMvetEGEQ=; b=C5aBhxg7RRfum67+nilUIOWdGRjiocAU8b+I4NHMIAUAhFxqm+Db7NF/1pmP1v8fnj frL/lBsW66kqG8nNtzQXzkQsyiZL7ezLStv/h7n9Ehnhjj5qWJweM9eP3UmTJ4dcqxeu RId7C2zD155OF+gxFr4lPk5+uB/vOfJ9fxHxDRR2iEJsX6e09cJ+Al+PhEgVGhO4VWK8 wiGgsBKXnlTuTqsDvNl56NHwnGKku1+ydxeC7PGUnTpe9HfuSjgBFdPu7VWnLViVvtw2 SA++r4YEifXGP8npcJ5Q7FtJHjnOl1IlNxvH3bkW7TARHRd7LtVxAB3/WfZwZwkmVm6T h+BQ== X-Gm-Message-State: ABy/qLby52hWKf/nGC2S7vmdW1QSx+53UpTbymt0QnZ50sNmEDv/8tmX t3N8hzm87uz0VcnXdZmekpl11g== X-Google-Smtp-Source: APBJJlHB/Kj7fixhJPcAfs7KQhIrnMeDg4xvC+Y2wuApi8GCcup3iOgeGozUrsiDj4ZDjwC/WZrsHA== X-Received: by 2002:a05:6a21:a105:b0:135:38b5:7e63 with SMTP id aq5-20020a056a21a10500b0013538b57e63mr3366868pzc.46.1690436050915; Wed, 26 Jul 2023 22:34:10 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:10 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 14/42] clk: at91: sama5d4: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:28 +0300 Message-Id: <20230727053156.13587-15-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch SAMA5D4 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/sama5d4.c | 131 +++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 58 deletions(-) diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 1ff9286148da..ac7565b26dce 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -36,9 +37,9 @@ static const struct clk_pcr_layout sama5d4_pcr_layout =3D= { .pid_mask =3D GENMASK(6, 0), }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } sama5d4_systemck[] =3D { @@ -46,14 +47,14 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "lcdck", .p =3D "masterck_div", .id =3D 3 }, - { .n =3D "smdck", .p =3D "smdclk", .id =3D 4 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "lcdck", .id =3D 3 }, + { .n =3D "smdck", .id =3D 4 }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, }; =20 static const struct { @@ -128,25 +129,29 @@ static const struct { =20 static void __init sama5d4_pmc_setup(struct device_node *np) { + struct clk_hw *slow_clk_hw, *main_xtal_hw, *main_rc_hw, *main_osc_hw, *ma= inck_hw; + struct clk_hw *parent_hws[5], *smdck_hw, *usbck_hw, *hw; + static struct clk_parent_data parent_data; struct clk_range range =3D CLK_RANGE(0, 0); - const char *slck_name, *mainxtal_name; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *sama5d4_pmc; - const char *parent_names[5]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -158,54 +163,55 @@ static void __init sama5d4_pmc_setup(struct device_no= de *np) if (!sama5d4_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 100000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 100000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, paren= t_hws, 2); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, mainck_hw, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 sama5d4_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", "mainck", NULL); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, mainck_hw); if (IS_ERR(hw)) goto err_free; =20 sama5d4_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D mainck_hw; + parent_hws[2] =3D sama5d4_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d4_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); @@ -214,36 +220,36 @@ static void __init sama5d4_pmc_setup(struct device_no= de *np) =20 sama5d4_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", "masterck_div", NULL); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", NULL, sama5d4_pmc->chws= [PMC_MCK]); if (IS_ERR(hw)) goto err_free; =20 sama5d4_pmc->chws[PMC_MCK2] =3D hw; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); - if (IS_ERR(hw)) + parent_hws[0] =3D sama5d4_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D sama5d4_pmc->chws[PMC_UTMI]; + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); - if (IS_ERR(hw)) + parent_hws[0] =3D sama5d4_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D sama5d4_pmc->chws[PMC_UTMI]; + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + if (IS_ERR(smdck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D mainck_hw; + parent_hws[2] =3D sama5d4_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D sama5d4_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D sama5d4_pmc->chws[PMC_MCK]; for (i =3D 0; i < 3; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) @@ -252,9 +258,18 @@ static void __init sama5d4_pmc_setup(struct device_nod= e *np) sama5d4_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + sama5d4_systemck[0].parent_hw =3D sama5d4_pmc->chws[PMC_MCK]; + sama5d4_systemck[1].parent_hw =3D sama5d4_pmc->chws[PMC_MCK]; + sama5d4_systemck[2].parent_hw =3D smdck_hw; + sama5d4_systemck[3].parent_hw =3D usbck_hw; + sama5d4_systemck[4].parent_hw =3D usbck_hw; + sama5d4_systemck[5].parent_hw =3D sama5d4_pmc->pchws[0]; + sama5d4_systemck[6].parent_hw =3D sama5d4_pmc->pchws[1]; + sama5d4_systemck[7].parent_hw =3D sama5d4_pmc->pchws[2]; for (i =3D 0; i < ARRAY_SIZE(sama5d4_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d4_systemck[i].n, - sama5d4_systemck[i].p, NULL, + NULL, sama5d4_systemck[i].parent_hw, sama5d4_systemck[i].id, sama5d4_systemck[i].flags); if (IS_ERR(hw)) @@ -267,7 +282,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d4_pcr_layout, sama5d4_periphck[i].n, - "masterck_div", NULL, + NULL, sama5d4_pmc->chws[PMC_MCK], sama5d4_periphck[i].id, &range, INT_MIN, sama5d4_periphck[i].flags); @@ -281,7 +296,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d4_pcr_layout, sama5d4_periph32ck[i].n, - "h32mxck", NULL, + NULL, sama5d4_pmc->chws[PMC_MCK2], sama5d4_periph32ck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EEF86C001DC for ; Thu, 27 Jul 2023 05:35:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231931AbjG0FfQ (ORCPT ); Thu, 27 Jul 2023 01:35:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231911AbjG0Feq (ORCPT ); Thu, 27 Jul 2023 01:34:46 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 611472D7D for ; Wed, 26 Jul 2023 22:34:21 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-563f752774fso285577a12.1 for ; Wed, 26 Jul 2023 22:34:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436058; x=1691040858; 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=vv/BMVL/ZNeEbINcL/4raUcc3c4bebGIY3s5gcWMzMg=; b=AwhaRTb2XGZ8++zthKDFi0GoOgt4+AVSjoTKSwiALiQQfTPGrPlFN+zCC8OWvcLTbq MfvVbI0dWwjGzIUIpdfqUWOoDD7RfOuW1jr4X0z1bxyzLoZp+QhMiemlaWzsQ92tzTDl HWr1XP4mnBkJMuq8q5Mdow078dYC7uM8hw4ZEqpNUfi17JkcwscH3UuKakFdKk9soN45 uowuT5dCIe0i391ceDEtUOH4lCXXGgwceVzTOCS31daBC+Mfz8N42/z8HsQ8hh9RMKu3 D/EsXHz2kOh9f0k48Wi93ky423/BsO7uWgWKY/S76mc+QuPCTTwelVeweANl3HkRimjS /c6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436058; x=1691040858; 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=vv/BMVL/ZNeEbINcL/4raUcc3c4bebGIY3s5gcWMzMg=; b=br8vjz5XJecjYjFCTZEQZqtJwIH9xxguOBLJ7gFLq/ZJqoun2CPgYcM25ynnbW3SIA 9loblRjtP7ACbU/t321iGunbHiautiCaZzUD0jpfVLbXrYq3F+C9Yqb++0y3TnSOPPjB mv6WEQjE8kgM+DM55+BaCuUnbmEHtXx18lrED1JqMOS88czLmSVUGZCDNSwwnUcvxUA3 RBIbReEbJcnUrayYWT3C4imDTW1yVI7KdyD8YyqGOJQFvx0ir3mYimHpLF6++EktBvaJ 33AbcHucAKdq6MWMExty+YDGP0cGtb54bODxB83EnAqNZos/J/wQVNoD5ya00iStOS4l VCKw== X-Gm-Message-State: ABy/qLboc/OIaJZDzAX/p58ZVjq3zzdGuu9IEaMQQAsHVTvqqx4umtav tJf4cCrooHWuc5TLXaJzuMrWlw== X-Google-Smtp-Source: APBJJlELQG6oURUodMw1YgwQCG0dIqzVNWhe4qROJGNFhczx0pxHNp2MdbJMh+cQ5ErPIWttcG8Dug== X-Received: by 2002:a17:902:8210:b0:1b8:9552:2249 with SMTP id x16-20020a170902821000b001b895522249mr3216329pln.43.1690436058098; Wed, 26 Jul 2023 22:34:18 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:17 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 15/42] clk: at91: at91sam9x5: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:29 +0300 Message-Id: <20230727053156.13587-16-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91SAM9X5 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9x5.c | 123 +++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 55 deletions(-) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 13331e015dd7..8b2747091b03 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -38,9 +39,9 @@ static const struct clk_pll_characteristics plla_characte= ristics =3D { .out =3D plla_out, }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } at91sam9x5_systemck[] =3D { @@ -48,12 +49,12 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "smdck", .p =3D "smdclk", .id =3D 4 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "smdck", .id =3D 4 }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, }; =20 static const struct clk_pcr_layout at91sam9x5_pcr_layout =3D { @@ -133,25 +134,29 @@ static void __init at91sam9x5_pmc_setup(struct device= _node *np, const struct pck *extra_pcks, bool has_lcdck) { + struct clk_hw *slow_clk_hw, *main_xtal_hw, *main_rc_hw, *main_osc_hw; + struct clk_hw *parent_hws[6], *smdck_hw, *usbck_hw, *hw; + static struct clk_parent_data parent_data; struct clk_range range =3D CLK_RANGE(0, 0); - const char *slck_name, *mainxtal_name; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *at91sam9x5_pmc; - const char *parent_names[6]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -162,56 +167,57 @@ static void __init at91sam9x5_pmc_setup(struct device= _node *np, if (!at91sam9x5_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 50000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 50000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); if (IS_ERR(hw)) goto err_free; =20 at91sam9x5_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9x5_pmc->chws= [PMC_MAIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 at91sam9x5_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", "mainck", NULL); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9x5_pm= c->chws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 at91sam9x5_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9x5_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9x5_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9x5_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); @@ -220,28 +226,28 @@ static void __init at91sam9x5_pmc_setup(struct device= _node *np, =20 at91sam9x5_pmc->chws[PMC_MCK] =3D hw; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); - if (IS_ERR(hw)) + parent_hws[0] =3D at91sam9x5_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D at91sam9x5_pmc->chws[PMC_UTMI]; + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + if (IS_ERR(usbck_hw)) goto err_free; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_names, NULL, = 2); - if (IS_ERR(hw)) + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + if (IS_ERR(smdck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9x5_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9x5_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9x5_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D at91sam9x5_pmc->chws[PMC_MCK]; for (i =3D 0; i < 2; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) @@ -250,9 +256,16 @@ static void __init at91sam9x5_pmc_setup(struct device_= node *np, at91sam9x5_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + at91sam9x5_systemck[0].parent_hw =3D at91sam9x5_pmc->chws[PMC_MCK]; + at91sam9x5_systemck[1].parent_hw =3D smdck_hw; + at91sam9x5_systemck[2].parent_hw =3D usbck_hw; + at91sam9x5_systemck[3].parent_hw =3D usbck_hw; + at91sam9x5_systemck[4].parent_hw =3D at91sam9x5_pmc->pchws[0]; + at91sam9x5_systemck[5].parent_hw =3D at91sam9x5_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9x5_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9x5_systemck[i].n, - at91sam9x5_systemck[i].p, NULL, + NULL, at91sam9x5_systemck[i].parent_hw, at91sam9x5_systemck[i].id, at91sam9x5_systemck[i].flags); if (IS_ERR(hw)) @@ -262,8 +275,8 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, } =20 if (has_lcdck) { - hw =3D at91_clk_register_system(regmap, "lcdck", "masterck_div", - NULL, 3, 0); + hw =3D at91_clk_register_system(regmap, "lcdck", NULL, + at91sam9x5_pmc->chws[PMC_MCK], 3, 0); if (IS_ERR(hw)) goto err_free; =20 @@ -274,7 +287,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9x5_pcr_layout, at91sam9x5_periphck[i].n, - "masterck_div", NULL, + NULL, at91sam9x5_pmc->chws[PMC_MCK], at91sam9x5_periphck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) @@ -287,7 +300,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9x5_pcr_layout, extra_pcks[i].n, - "masterck_div", NULL, + NULL, at91sam9x5_pmc->chws[PMC_MCK], extra_pcks[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 617C0C001DC for ; Thu, 27 Jul 2023 05:35:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231802AbjG0FfU (ORCPT ); Thu, 27 Jul 2023 01:35:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231823AbjG0Fex (ORCPT ); Thu, 27 Jul 2023 01:34:53 -0400 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6304358A for ; Wed, 26 Jul 2023 22:34:25 -0700 (PDT) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1b9c5e07c1bso4618535ad.2 for ; Wed, 26 Jul 2023 22:34:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436065; x=1691040865; 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=kid366wiUoXwgFB76gRtzNPUPTmnA2Hry2ysnz0JRIc=; b=iTwFAaZoQR0slAJQ6ZFA/OIw+wZMhPqKMeCFKKIIIz6uKqzdUa+gbJasrMqdi9lWEq hBecxsx7vGEPk7T+2ns7Wrt6FXL6w2JgAUWH0ysS6/qSMRS/yy8g5MYf4w9CzdrC0GCV h4ZoAnSYM/gy1yDYzORz6Q0DeDA9BKWE/fSnhW/xelNXOtNKNqp/la9Fiqc7Mx9VxKig jbbHK5r4tYpfdJ2UE+u6xg0W6mc1+163RQ7vcRaUp7jQvv1Q719naD4ehEfChm64WjXn jhvCxUOncdCEqipYRVj8QdunhyxuaoxLD37GgrEWsFciZ95NbgIq5ccR5H2NcKxt5Exm lY9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436065; x=1691040865; 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=kid366wiUoXwgFB76gRtzNPUPTmnA2Hry2ysnz0JRIc=; b=ZL5V5J1ykbzj8FDWrWT70DCsOia20E0C9u2oQMxXjj9rnTL7kW8+pOBHh8xWqFhHQN CQ9K6wFScDG2wVIpz3064k/D4CRkqaCWu54qOWvbRG98Qi7oCBSKwH9ouyVSkZuEF6qU eS9H4Rumm7rOwu8wSH9qhCNrwSz5FdvX3Hda/EYFWJqAYIce0lK5wb+2xFKrIBlezhDp oGZo8pSi0CXMYWQclgl+YUdwiAGgVPvonjdC8zbd8rlhozyR7JBOgPan7o0eXfXloepU KuX2EL99+aq6FV4XtbXtlR5FyZaoO2JH/XTNDNIWoe1Sbg/vKvpOhptH2tdzXv4euNwb mEvA== X-Gm-Message-State: ABy/qLaNpObR8jUxxWgPvIBVxI1vDT4vE/UJcCRLkmnBHKFZmERDj05F O5v0kVcHxv0y7/1J7CaGughN/Sv0eRpUWQW96v/zVefO X-Google-Smtp-Source: APBJJlH0XNbuHwIiz8HkLlyy1CZ4I1oM876K9F2n/xW/gkzLy9fK4Ym4GPsj3gVktULHuk9bYJI2AQ== X-Received: by 2002:a17:902:ec8c:b0:1ab:11c8:777a with SMTP id x12-20020a170902ec8c00b001ab11c8777amr5186878plg.13.1690436065269; Wed, 26 Jul 2023 22:34:25 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:25 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 16/42] clk: at91: at91rm9200: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:30 +0300 Message-Id: <20230727053156.13587-17-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91RM9200 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 96 ++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 41 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 623e232ec9c6..87fd7b1609bd 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -11,7 +12,7 @@ static DEFINE_SPINLOCK(rm9200_mck_lock); =20 struct sck { char *n; - char *p; + struct clk_hw *parent_hw; u8 id; }; =20 @@ -39,13 +40,13 @@ static const struct clk_pll_characteristics rm9200_pll_= characteristics =3D { .out =3D rm9200_pll_out, }; =20 -static const struct sck at91rm9200_systemck[] =3D { - { .n =3D "udpck", .p =3D "usbck", .id =3D 1 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 4 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, - { .n =3D "pck3", .p =3D "prog3", .id =3D 11 }, +static struct sck at91rm9200_systemck[] =3D { + { .n =3D "udpck", .id =3D 1 }, + { .n =3D "uhpck", .id =3D 4 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, + { .n =3D "pck3", .id =3D 11 }, }; =20 static const struct pck at91rm9200_periphck[] =3D { @@ -76,25 +77,29 @@ static const struct pck at91rm9200_periphck[] =3D { =20 static void __init at91rm9200_pmc_setup(struct device_node *np) { - const char *slowxtal_name, *mainxtal_name; + struct clk_hw *slow_xtal_hw, *main_xtal_hw, *main_osc_hw; + struct clk_hw *parent_hws[6], *usbck_hw, *hw; + static struct clk_parent_data parent_data; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *at91rm9200_pmc; u32 usb_div[] =3D { 1, 2, 0, 0 }; - const char *parent_names[6]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_xtal"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_xtal"); + if (IS_ERR(clk)) return; - - slowxtal_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_xtal_hw =3D __clk_get_hw(clk); + if (!slow_xtal_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -108,18 +113,20 @@ static void __init at91rm9200_pmc_setup(struct device= _node *np) =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", "main_osc", NULL); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, main_osc_hw); if (IS_ERR(hw)) goto err_free; =20 at91rm9200_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91rm9200_pmc->chws= [PMC_MAIN], 0, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) @@ -127,7 +134,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91rm9200_pmc->chws= [PMC_MAIN], 1, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) @@ -135,20 +142,19 @@ static void __init at91rm9200_pmc_setup(struct device= _node *np) =20 at91rm9200_pmc->chws[PMC_PLLBCK] =3D hw; =20 - parent_names[0] =3D slowxtal_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "pllbck"; + parent_hws[0] =3D slow_xtal_hw; + parent_hws[1] =3D at91rm9200_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91rm9200_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91rm9200_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91rm9200_master_layout, &rm9200_mck_characteristics, &rm9200_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, &at91rm9200_master_layout, &rm9200_mck_characteristics, &rm9200_mck_lock, CLK_SET_RATE_GATE, 0); @@ -157,21 +163,22 @@ static void __init at91rm9200_pmc_setup(struct device= _node *np) =20 at91rm9200_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", NULL, usb_d= iv); - if (IS_ERR(hw)) + usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", NULL, + at91rm9200_pmc->chws[PMC_PLLBCK], usb_div); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D slowxtal_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "pllbck"; + parent_hws[0] =3D slow_xtal_hw; + parent_hws[1] =3D at91rm9200_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91rm9200_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91rm9200_pmc->chws[PMC_PLLBCK]; for (i =3D 0; i < 4; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 4, i, + NULL, parent_hws, 4, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) @@ -180,9 +187,16 @@ static void __init at91rm9200_pmc_setup(struct device_= node *np) at91rm9200_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + at91rm9200_systemck[0].parent_hw =3D usbck_hw; + at91rm9200_systemck[1].parent_hw =3D usbck_hw; + at91rm9200_systemck[2].parent_hw =3D at91rm9200_pmc->pchws[0]; + at91rm9200_systemck[3].parent_hw =3D at91rm9200_pmc->pchws[1]; + at91rm9200_systemck[4].parent_hw =3D at91rm9200_pmc->pchws[2]; + at91rm9200_systemck[5].parent_hw =3D at91rm9200_pmc->pchws[3]; for (i =3D 0; i < ARRAY_SIZE(at91rm9200_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91rm9200_systemck[i].n, - at91rm9200_systemck[i].p, NULL, + NULL, at91rm9200_systemck[i].parent_hw, at91rm9200_systemck[i].id, 0); if (IS_ERR(hw)) goto err_free; @@ -193,7 +207,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) for (i =3D 0; i < ARRAY_SIZE(at91rm9200_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91rm9200_periphck[i].n, - "masterck_div", NULL, + NULL, at91rm9200_pmc->chws[PMC_MCK], at91rm9200_periphck[i].id); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83C67EB64DD for ; Thu, 27 Jul 2023 05:35:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231817AbjG0Ffh (ORCPT ); Thu, 27 Jul 2023 01:35:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231997AbjG0Fe5 (ORCPT ); Thu, 27 Jul 2023 01:34:57 -0400 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42A713595 for ; Wed, 26 Jul 2023 22:34:35 -0700 (PDT) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1bba04b9df3so4572805ad.0 for ; Wed, 26 Jul 2023 22:34:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436072; x=1691040872; 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=ebMv2zCUuI7+v0WKO0rdWUfZu6i4M/aH4M1ZWTbcC5E=; b=UESfxiMcGDxlM1+U0+b3DvIMqaPqSBSzUy3qM/gkfnnNlkWAG3ZdIzl53O0z4qltun Wl/n+L6woG9wbC3LMG3mtRaejY5DGnpaqLKSvRN9Rw3k8nLKJg3Y49JO0chE1iXgG1YB nNNBIDDYt2qO0F9ettcIpre/DqAds659sTcWeJm/E+rTrvvX6dThgvGHB/o57lkUJFG9 DHK6Unam/w1yTXcjLk3krIxIdDZvFslyF3c6yillKuUBGh91LxQ7aWQITjc9n4KV2ddT hyp6s5V8DI/vhTaTeaq6h+/mexJOq3Z6zy6CF7VlBcLVSNp/3cURn4TcWHk8mO77eaCN j2hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436072; x=1691040872; 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=ebMv2zCUuI7+v0WKO0rdWUfZu6i4M/aH4M1ZWTbcC5E=; b=HPxKWmxOAyg82hoMidAwmipTP6nQ9AI3q5u4pCUl/VypKLr+V/EdUti6WL2JsntAv5 ttHZS892k1dG0xFzM4Ee5fkoxHpYI5fdI2hM0RzuOg+DFHRR/6cfnitkbSBK1Ja8GSPh q35HFus+OVPownSFaOcbjv/dAQ/ZJ4XwY7mYF0lXPJg52TAcDIfgy/QjZqbdPTVo2X/I 2B6QQaAU4lmk2fgzkVZlQpk75haG9MVCb/JKZwgoNlJno8eHRUDIu5qxmwPxvVewXerl YhOLHKtUEm5P8EG/uMZnV6i7LzSWy75EtmE2Rh4TqQBofUdHvGLApBt1sNyjB4QKjFRH B9Fw== X-Gm-Message-State: ABy/qLbzuZohAPGOuKw/XGR2yhkBz/ixuMjYgL2/ycUVXuXtxXzStaW7 jyoFmzEy+ajvu2bnTtoocz/zTQ== X-Google-Smtp-Source: APBJJlH/rWJB689lBz7rTzs6xmQVeNVmFZwhaM3Q5OCgAtFY95fFTFrJS86LuDHuBedkbLwcj1MiDw== X-Received: by 2002:a17:903:22d1:b0:1b8:b2c6:7e8d with SMTP id y17-20020a17090322d100b001b8b2c67e8dmr4820694plg.66.1690436072684; Wed, 26 Jul 2023 22:34:32 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:32 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 17/42] clk: at91: at91rm9200: fix checkpatch.pl check Date: Thu, 27 Jul 2023 08:31:31 +0300 Message-Id: <20230727053156.13587-18-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Fix the following checkpatch.pl check: drivers/clk/at91/at91rm9200.c:100: CHECK: Alignment should match open paren= thesis Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 87fd7b1609bd..a862a0a18972 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -106,8 +106,8 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) return; =20 at91rm9200_pmc =3D pmc_data_allocate(PMC_PLLBCK + 1, - nck(at91rm9200_systemck), - nck(at91rm9200_periphck), 0, 4); + nck(at91rm9200_systemck), + nck(at91rm9200_periphck), 0, 4); if (!at91rm9200_pmc) return; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87542EB64DD for ; Thu, 27 Jul 2023 05:36:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232143AbjG0FgD (ORCPT ); Thu, 27 Jul 2023 01:36:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232056AbjG0Ffo (ORCPT ); Thu, 27 Jul 2023 01:35:44 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C13112D5D for ; Wed, 26 Jul 2023 22:34:59 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1b8c81e36c0so3583685ad.0 for ; Wed, 26 Jul 2023 22:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436079; x=1691040879; 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=fRCZH4GGM1E14D8FGmRam/hRPth71ctX83uTK0gxaqc=; b=AdlbqsjbBdcn/EdEJb2LCLEioo8YFANuQmf67SxKzZPYqENGC4s6ucFjuztzOJpoCc JM2FxjqtAvMkz9Szl++ADE8A9hw5jIZS3jl1XCByzdIPVfulumg8/lwE/xIHNZU+06Li r/k7QyUkbC0k2nVSbXbZJWJ7KXRPTA76hqcbmgoOM7c7yYMf6wBtRsNH8EO93Z8hiPkB AEQNGuqMxSL+CnWsw9SH5Y3CWij+9RRW5M3WSuT1ULKAVnYjpnLhJfeRQ8Foco/0SxdR VexKYCKFFwTcZj2Y2plyxp+M0SXbDvG4HCGrDNBcncCAAV3rsymp2jAr8Y3cigaAOcU/ XEYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436079; x=1691040879; 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=fRCZH4GGM1E14D8FGmRam/hRPth71ctX83uTK0gxaqc=; b=Y7ODr3Vg2M2ie4LGEgKTDfWKRuKFZDmQT3V1nki/hDzTTzcG5MoxoociJFAGYh+lht TSl4S4hYVybcIfJ3dgwYYPcIO/p0bRK6EoAf7AXsWy4sZ3RvT0t87ePAKEpAycbJixyW QSwIwfWChtoFDn8D+rCCFkb9QHNzrOyKOB5+RaypZjAgpSplIYaucRpZpJwAycDgmpwY KRmZOglOHIF1voP5GLhE4lDakx+GvaPsB/b5KxofsvKg+GVcktRlEE11TIxNEpzhp6uD ucIG5JVT2a19Jo8MekvJBbCFdrgvFabWS/JDITHENVYIJaxFIGy0u+7X66kvt/zpPT08 DSgw== X-Gm-Message-State: ABy/qLZDf9AMiAX8aqTo9u3RObt4lb8MBGe8R7YlVZEFzPWGXbdV9W/s 28SWxtz1gOQ4W/4yBFXmlQhC2DibMsf45+xfAHU3Hqp8 X-Google-Smtp-Source: APBJJlExUH0L/WX/KUv9vnLUnpAxPAgjWkHqBlJL7WFDFDhavzVhK7nkGWSMpRtLiPS6S6yphRc6RQ== X-Received: by 2002:a17:902:7047:b0:1b3:9d13:34b3 with SMTP id h7-20020a170902704700b001b39d1334b3mr3348176plt.37.1690436079762; Wed, 26 Jul 2023 22:34:39 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:39 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 18/42] clk: at91: at91rm9200: fix checkpatch.pl check Date: Thu, 27 Jul 2023 08:31:32 +0300 Message-Id: <20230727053156.13587-19-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Fix the following checkpatch.pl check: drivers/clk/at91/at91rm9200.c:216: CHECK: Please use a blank line after fun= ction/struct/union/enum declarations Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index a862a0a18972..e0418ab5d65c 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -222,6 +222,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) err_free: kfree(at91rm9200_pmc); } + /* * While the TCB can be used as the clocksource, the system timer is most = likely * to be used instead. However, the pinctrl driver doesn't support probe --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27086EB64DD for ; Thu, 27 Jul 2023 05:36:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231916AbjG0FgM (ORCPT ); Thu, 27 Jul 2023 01:36:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232071AbjG0Fft (ORCPT ); Thu, 27 Jul 2023 01:35:49 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB5D13AAE for ; Wed, 26 Jul 2023 22:35:04 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1bb8e45185bso3486635ad.1 for ; Wed, 26 Jul 2023 22:35:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436087; x=1691040887; 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=o/6KrvhXqa5iLUixbjzuBMiv5UYsjXjQw1Ru7hJmwyo=; b=p7tqgkwFoLsNlG4MKl0lVbtVdD+bXOGOQxOh6qFvDVQ71iCs2xwdGom9AGn/uqw8l3 uo/Ts0xEX36uzQgg8NN28OubEeAM+X41hXn52DW/S/pNFHiIKFKDN1VolkzW0MkY8UHf TFVdbFpTVlsPy0vYRQ+qZcQHSONLtM3/qxZ94DiudPxmDxfeUPDw/fbOGW9Z1gavoavn E66e3X8MNL2EhipQO5qxbTepxclX8z1Monf/djmATYpDtnCVuYWiwdKfde7LrVuakRsR 4aNS2WZIqB+hUeYktFBs7F50JstPJzh+HGoH1R9nXSSj8+wd2MqNmN6XdKqG8PWv2tyI KVlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436087; x=1691040887; 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=o/6KrvhXqa5iLUixbjzuBMiv5UYsjXjQw1Ru7hJmwyo=; b=fQItVWlpLL0jx/8zf/TOzUT/9CG85QqUcikZkODJUf6q2zzYQOmfNyG/FKPCM2sZA/ e9Hi/8wZJvzbJGTAwnfLKUpfQYBcsJY8iED4zMHPGkSjh4+BdQc7UMLl/jfsuicIlQnr hZuyEvHD25M4gahFUEqBaRf4UuXYMggpi+exZYE8FITAf4DQi9UCyhW7P1YhGBeM3RZo WWtqpqaQb3V7pP7ByOnVM/W+B6pQM/NGim3/9T8YVD9GNr2uLJN3MurYrCi0MB3wOMqx wpt3uakitQj4grZ0rKY5gn/rcA70WnsQDMeW4AiOBpN9B6HM/pEzByYpkNUorDT8YQmr xXiQ== X-Gm-Message-State: ABy/qLZZtWFQx4YPbxUyF/o+z/WpSUSOuQH25OR+fXWm0+v1hn6ZuQOb FcvNWDd+6fgFGPnCvLuyMPiApA== X-Google-Smtp-Source: APBJJlEVCaNJ7OenwzA/7lBAkzFCqELwzJ48BMLT8HbMb1NI9Bu9mnwabvkhELC4Ad8laFZ98RKiFw== X-Received: by 2002:a17:902:b60a:b0:1b6:80f0:d969 with SMTP id b10-20020a170902b60a00b001b680f0d969mr2928961pls.11.1690436086872; Wed, 26 Jul 2023 22:34:46 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:46 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 19/42] clk: at91: clk-slow: add support for parent_hw Date: Thu, 27 Jul 2023 08:31:33 +0300 Message-Id: <20230727053156.13587-20-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add support for parent_hw in slow clock drivers. With this parent-child relation is described with pointers rather than strings making registration a bit faster. All the SoC based drivers that rely on clk-slow were adapted to the new API change. The switch itself for SoCs will be done in subsequent patches. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/clk-slow.c | 8 ++++++-- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index f39deb3ec00a..55350331b07e 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -385,7 +385,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, parent_names[0] =3D "slow_rc_osc"; parent_names[1] =3D "slow_xtal"; hw =3D at91_clk_register_sam9260_slow(regmap, "slck", - parent_names, 2); + parent_names, NULL, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-slow.c b/drivers/clk/at91/clk-slow.c index ac9f7a48b76e..bea66216ed82 100644 --- a/drivers/clk/at91/clk-slow.c +++ b/drivers/clk/at91/clk-slow.c @@ -39,11 +39,12 @@ struct clk_hw * __init at91_clk_register_sam9260_slow(struct regmap *regmap, const char *name, const char **parent_names, + struct clk_hw **parent_hws, int num_parents) { struct clk_sam9260_slow *slowck; struct clk_hw *hw; - struct clk_init_data init; + struct clk_init_data init =3D {}; int ret; =20 if (!name) @@ -58,7 +59,10 @@ at91_clk_register_sam9260_slow(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &sam9260_slow_ops; - init.parent_names =3D parent_names; + if (parent_hws) + init.parent_hws =3D (const struct clk_hw **)&parent_hws; + else + init.parent_names =3D parent_names; init.num_parents =3D num_parents; init.flags =3D 0; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index f464e125c9fd..dbc59ac44828 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -822,7 +822,7 @@ static void __init of_at91sam9260_clk_slow_setup(struct= device_node *np) =20 of_property_read_string(np, "clock-output-names", &name); =20 - hw =3D at91_clk_register_sam9260_slow(regmap, name, parent_names, + hw =3D at91_clk_register_sam9260_slow(regmap, name, parent_names, NULL, num_parents); if (IS_ERR(hw)) return; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 541d2ba2fea5..6816e350d6d6 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -244,6 +244,7 @@ struct clk_hw * __init at91_clk_register_sam9260_slow(struct regmap *regmap, const char *name, const char **parent_names, + struct clk_hw **parent_hws, int num_parents); =20 struct clk_hw * __init --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A9CFC41513 for ; Thu, 27 Jul 2023 05:36:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232145AbjG0FgZ (ORCPT ); Thu, 27 Jul 2023 01:36:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232103AbjG0Ffx (ORCPT ); Thu, 27 Jul 2023 01:35:53 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E4833C02 for ; Wed, 26 Jul 2023 22:35:10 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1bbc7b2133fso3474395ad.1 for ; Wed, 26 Jul 2023 22:35:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436094; x=1691040894; 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=EBbNugk5HlQlfZHqiOgCV5xi8h3KCTbkMOfTcf6vRhA=; b=Id14NP7yd/JImdN8lyAnXofVzX4iaeIgUf9JDxY6LmHBdN3I3aS4+ju0haYsHe0p4O R25ny66K46hZ6FcqWIzeG5IRTHDFkGhw2r6xnkmWxb9rG4MoMOlmS+IhucZuHlEhNOeA d9g2DSO6oT8sVGbxBNznGD0FkGfWtou4JIcMDRIpZ4J8YTRmjV3NeGnrY3N4tJTf49Ks OG1o36YclVqsj3xGm4CcLcO8ixR0jjlbxxMn+wXycc8vj3ENto2eL7zLIFOIx0ooe5cM fBhHXOcyoAfPRlIOAL0JI0OUDsxgLQS4X0Uo7HGMpBbffrYkBPF8M9oh9sW27JzkrsSm F/jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436094; x=1691040894; 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=EBbNugk5HlQlfZHqiOgCV5xi8h3KCTbkMOfTcf6vRhA=; b=M5IMrUB3wj9C+f1zScWUKTFkJSqNvNSOp7JtjEEkw1f8lV3soBRet573hLnFuTrciO YvUDXyGhvrY+Y3DC9Qt3ygOpYWW0AfX3heMsM05YszgjPSJh3Dd0yzuYpeTR9JE0LcLZ gqEn7RbDbplWeuEyq7DoSiEmPg+MtXMGGNmvio9x/tHpuk0G80tMx49HeZEdcQXlQTWr Kh2Cxb78tt8YU+6czDP1jkhl7nl8PvhLsnwIV0jIoDbjjtMK+8FO/l5fIOUpuaROCTaJ k7Z+uF23YrhuziERskb6H3VUL60XGL5ZdvI8xgvtDcOuO7aFdRuw1+ucGXzO77ezdn2B 5NIg== X-Gm-Message-State: ABy/qLbXdI8gLT1KU4xZ7bXpyZNmEWNiklw0u5bD2rwxCGYs4kMT9QBQ CUIKHQ6Lg1HW+1XCoLDFwC/2Wg== X-Google-Smtp-Source: APBJJlFHB3fbxz9kQNZcbEoiaodWds/3Wlbiqfinvqoq5s0dSd6rVHUql6diHUdm1pZI7v0EJsUFwg== X-Received: by 2002:a17:902:6ac3:b0:1b3:fafd:11c5 with SMTP id i3-20020a1709026ac300b001b3fafd11c5mr3247438plt.44.1690436093938; Wed, 26 Jul 2023 22:34:53 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:34:53 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 20/42] clk: at91: at91sam9260: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:34 +0300 Message-Id: <20230727053156.13587-21-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91SAM92600 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9260.c | 139 ++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 61 deletions(-) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 55350331b07e..1ef7c02bee63 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -9,7 +10,7 @@ =20 struct sck { char *n; - char *p; + struct clk_hw *parent_hw; u8 id; }; =20 @@ -24,7 +25,7 @@ struct at91sam926x_data { const struct clk_pll_layout *pllb_layout; const struct clk_pll_characteristics *pllb_characteristics; const struct clk_master_characteristics *mck_characteristics; - const struct sck *sck; + struct sck *sck; const struct pck *pck; u8 num_sck; u8 num_pck; @@ -72,11 +73,11 @@ static const struct clk_pll_characteristics sam9260_pll= b_characteristics =3D { .out =3D sam9260_pllb_out, }; =20 -static const struct sck at91sam9260_systemck[] =3D { - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, +static struct sck at91sam9260_systemck[] =3D { + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, }; =20 static const struct pck at91sam9260_periphck[] =3D { @@ -213,15 +214,15 @@ static const struct clk_pll_characteristics sam9261_p= llb_characteristics =3D { .out =3D sam9261_pllb_out, }; =20 -static const struct sck at91sam9261_systemck[] =3D { - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, - { .n =3D "pck3", .p =3D "prog3", .id =3D 11 }, - { .n =3D "hclk0", .p =3D "masterck_div", .id =3D 16 }, - { .n =3D "hclk1", .p =3D "masterck_div", .id =3D 17 }, +static struct sck at91sam9261_systemck[] =3D { + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, + { .n =3D "pck3", .id =3D 11 }, + { .n =3D "hclk0", .id =3D 16 }, + { .n =3D "hclk1", .id =3D 17 }, }; =20 static const struct pck at91sam9261_periphck[] =3D { @@ -277,13 +278,13 @@ static const struct clk_pll_characteristics sam9263_p= ll_characteristics =3D { .out =3D sam9260_plla_out, }; =20 -static const struct sck at91sam9263_systemck[] =3D { - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, - { .n =3D "pck2", .p =3D "prog2", .id =3D 10 }, - { .n =3D "pck3", .p =3D "prog3", .id =3D 11 }, +static struct sck at91sam9263_systemck[] =3D { + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, + { .n =3D "pck2", .id =3D 10 }, + { .n =3D "pck3", .id =3D 11 }, }; =20 static const struct pck at91sam9263_periphck[] =3D { @@ -329,26 +330,29 @@ static struct at91sam926x_data at91sam9263_data =3D { static void __init at91sam926x_pmc_setup(struct device_node *np, struct at91sam926x_data *data) { - const char *slowxtal_name, *mainxtal_name; + struct clk_hw *slow_xtal_hw, *main_xtal_hw; + struct clk_hw *parent_hws[4], *usbck_hw, *hw; + static struct clk_parent_data parent_data; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *at91sam9260_pmc; u32 usb_div[] =3D { 1, 2, 4, 0 }; - const char *parent_names[6]; - const char *slck_name; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_xtal"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_xtal"); + if (IS_ERR(clk)) return; - - slowxtal_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_xtal_hw =3D __clk_get_hw(clk); + if (!slow_xtal_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -363,12 +367,14 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &parent_data, bypass); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", "main_osc", NULL); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 @@ -382,20 +388,17 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, if (IS_ERR(hw)) goto err_free; =20 - parent_names[0] =3D "slow_rc_osc"; - parent_names[1] =3D "slow_xtal"; - hw =3D at91_clk_register_sam9260_slow(regmap, "slck", - parent_names, NULL, 2); + parent_hws[0] =3D hw; + parent_hws[1] =3D slow_xtal_hw; + hw =3D at91_clk_register_sam9260_slow(regmap, "slck", NULL, parent_hws, = 2); if (IS_ERR(hw)) goto err_free; =20 at91sam9260_pmc->chws[PMC_SLOW] =3D hw; - slck_name =3D "slck"; - } else { - slck_name =3D slowxtal_name; + slow_xtal_hw =3D hw; } =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9260_pmc->chw= s[PMC_MAIN], 0, data->plla_layout, data->plla_characteristics); if (IS_ERR(hw)) @@ -403,7 +406,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 at91sam9260_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91sam9260_pmc->chw= s[PMC_MAIN], 1, data->pllb_layout, data->pllb_characteristics); if (IS_ERR(hw)) @@ -411,12 +414,12 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, =20 at91sam9260_pmc->chws[PMC_PLLBCK] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "pllbck"; + parent_hws[0] =3D slow_xtal_hw; + parent_hws[1] =3D at91sam9260_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9260_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9260_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91rm9200_master_layout, data->mck_characteristics, &at91sam9260_mck_lock); @@ -424,7 +427,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + NULL, hw, &at91rm9200_master_layout, data->mck_characteristics, &at91sam9260_mck_lock, @@ -434,21 +437,22 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, =20 at91sam9260_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91rm9200_clk_register_usb(regmap, "usbck", "pllbck", NULL, usb_d= iv); - if (IS_ERR(hw)) + usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", NULL, + at91sam9260_pmc->chws[PMC_PLLBCK], usb_div); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "pllbck"; + parent_hws[0] =3D slow_xtal_hw; + parent_hws[1] =3D at91sam9260_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9260_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9260_pmc->chws[PMC_PLLBCK]; for (i =3D 0; i < data->num_progck; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 4, i, + NULL, parent_hws, 4, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) @@ -457,9 +461,22 @@ static void __init at91sam926x_pmc_setup(struct device= _node *np, at91sam9260_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + data->sck[0].parent_hw =3D usbck_hw; + data->sck[1].parent_hw =3D usbck_hw; + data->sck[2].parent_hw =3D at91sam9260_pmc->pchws[0]; + data->sck[3].parent_hw =3D at91sam9260_pmc->pchws[1]; + if (data->num_sck =3D=3D 6) { + data->sck[4].parent_hw =3D at91sam9260_pmc->pchws[2]; + data->sck[5].parent_hw =3D at91sam9260_pmc->pchws[3]; + } + if (data->num_sck =3D=3D 8) { + data->sck[6].parent_hw =3D at91sam9260_pmc->chws[PMC_MCK]; + data->sck[7].parent_hw =3D at91sam9260_pmc->chws[PMC_MCK]; + } for (i =3D 0; i < data->num_sck; i++) { hw =3D at91_clk_register_system(regmap, data->sck[i].n, - data->sck[i].p, NULL, + NULL, data->sck[i].parent_hw, data->sck[i].id, 0); if (IS_ERR(hw)) goto err_free; @@ -470,7 +487,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, for (i =3D 0; i < data->num_pck; i++) { hw =3D at91_clk_register_peripheral(regmap, data->pck[i].n, - "masterck_div", NULL, + NULL, at91sam9260_pmc->chws[PMC_MCK], data->pck[i].id); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08AF3C001E0 for ; Thu, 27 Jul 2023 05:36:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232165AbjG0Fgf (ORCPT ); Thu, 27 Jul 2023 01:36:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232019AbjG0Ff6 (ORCPT ); Thu, 27 Jul 2023 01:35:58 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 325693584 for ; Wed, 26 Jul 2023 22:35:20 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1b8ad9eede0so4502475ad.1 for ; Wed, 26 Jul 2023 22:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436102; x=1691040902; 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=IPc4xkfMOnwN3v1hN3TZE1CkBeQhVeO0+VXhvPhtWPg=; b=GMmp5BcXZd9dB3f7uXMLXzpogGD0Qvb2qTdk7XviCAzh1sJjgA89Cm7hs9GVw/wu29 JA7HMRoKd0Tymzjq9Z6A8mdPmDjBh9EVesGrYmnKFbL20CMdb9u+57njwBKvMYwtCa7a SZb+sW4OYK+YrdDxEL/983P9ZSl/KXoNkl4VqRdUhW108Tj+NVgjKVckbKKeXM0isDn4 dDJa0roLpUO76vhPH+sy4a8XQupAh5CAuRPXUq4TpaYrE6lZjIvejCbBdNnsOzj9yKId i4joV5DpVrJIJ2PxJkXxqTvDT+EiKBtSxkT1baX/p/wzzEkydmJ1eNIu/3EiXSVyW9ol Pw2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436102; x=1691040902; 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=IPc4xkfMOnwN3v1hN3TZE1CkBeQhVeO0+VXhvPhtWPg=; b=gNAAD6SHoEo5TclL5UzJhOM/U8UFCJgS++7cn9KhYswDYTiPNAXfu0i/EHRArX7dug wdmwkH8FvJwmBKD9OxMI+SWvMNZ5PjQIwjSnKqHKmONqg3T44Zymlgxfu3UvD2RaHjGw V2iLOCgX57mP9yBzyiyklXWP55tmwmD8oOZxhrWnwrkNmpIJluQSzT4M0kE+rfmfh1Id dZ+b5a1KmBAR3uW2ePmwIzXKgb7Vua4HrUXoSLS0sckEUh8NyAazwL3EXKitrBhMzuTs ZvUCMivmZE/u/NrwqHQFrZ4O09I/Uk6ZbZeZcKXUs+nBH6wfq9kpfTI43t+9fORg+h7o hW5w== X-Gm-Message-State: ABy/qLZpZk2w9HkKwMDdfvCyGh01y7kUpe01wQADMt8WdQFAuNF9XOqm zh4ILVTK6vhK6r5V0h2Vwf1F7/m5uqzomD/xq3rhI35S X-Google-Smtp-Source: APBJJlGvsyYVwugQYrfhrhzSrbO30GTHiLg6TStd308FuhX3YzF02NHK7qv4MWcydZg/iiIMBpj80Q== X-Received: by 2002:a17:902:830c:b0:1bb:83cd:ad83 with SMTP id bd12-20020a170902830c00b001bb83cdad83mr3513348plb.28.1690436101995; Wed, 26 Jul 2023 22:35:01 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.34.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:01 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 21/42] clk: at91: at91sam9g45: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:35 +0300 Message-Id: <20230727053156.13587-22-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91SAM9G45 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9g45.c | 92 +++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 40 deletions(-) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index cb98d22c2e30..684ce0f79d3b 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -37,9 +38,9 @@ static const struct clk_pll_characteristics plla_characte= ristics =3D { .out =3D plla_out, }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } at91sam9g45_systemck[] =3D { @@ -47,10 +48,10 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, }; =20 struct pck { @@ -92,24 +93,28 @@ static const struct pck at91sam9g45_periphck[] =3D { =20 static void __init at91sam9g45_pmc_setup(struct device_node *np) { - const char *slck_name, *mainxtal_name; + struct clk_hw *parent_hws[5], *usbck_hw, *hw; + struct clk_hw *slow_clk_hw, *main_xtal_hw; + static struct clk_parent_data parent_data; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *at91sam9g45_pmc; - const char *parent_names[6]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -123,40 +128,42 @@ static void __init at91sam9g45_pmc_setup(struct devic= e_node *np) =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &parent_data, bypass); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", "main_osc", NULL); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 at91sam9g45_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9g45_pmc->chw= s[PMC_MAIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 at91sam9g45_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", "mainck", NULL); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9g45_p= mc->chws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 at91sam9g45_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9g45_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9g45_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9g45_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91rm9200_master_layout, &mck_characteristics, &at91sam9g45_mck_lock); @@ -164,7 +171,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + NULL, hw, &at91rm9200_master_layout, &mck_characteristics, &at91sam9g45_mck_lock, @@ -174,24 +181,24 @@ static void __init at91sam9g45_pmc_setup(struct devic= e_node *np) =20 at91sam9g45_pmc->chws[PMC_MCK] =3D hw; =20 - parent_names[0] =3D "plladivck"; - parent_names[1] =3D "utmick"; - hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_names, NULL, 2= ); - if (IS_ERR(hw)) + parent_hws[0] =3D at91sam9g45_pmc->chws[PMC_PLLACK]; + parent_hws[1] =3D at91sam9g45_pmc->chws[PMC_UTMI]; + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9g45_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9g45_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9g45_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D at91sam9g45_pmc->chws[PMC_MCK]; for (i =3D 0; i < 2; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91sam9g45_programmable_layout, NULL); if (IS_ERR(hw)) @@ -200,9 +207,14 @@ static void __init at91sam9g45_pmc_setup(struct device= _node *np) at91sam9g45_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + at91sam9g45_systemck[0].parent_hw =3D at91sam9g45_pmc->chws[PMC_MCK]; + at91sam9g45_systemck[1].parent_hw =3D usbck_hw; + at91sam9g45_systemck[2].parent_hw =3D at91sam9g45_pmc->pchws[0]; + at91sam9g45_systemck[3].parent_hw =3D at91sam9g45_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9g45_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9g45_systemck[i].n, - at91sam9g45_systemck[i].p, NULL, + NULL, at91sam9g45_systemck[i].parent_hw, at91sam9g45_systemck[i].id, at91sam9g45_systemck[i].flags); if (IS_ERR(hw)) @@ -214,7 +226,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) for (i =3D 0; i < ARRAY_SIZE(at91sam9g45_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91sam9g45_periphck[i].n, - "masterck_div", NULL, + NULL, at91sam9g45_pmc->chws[PMC_MCK], at91sam9g45_periphck[i].id); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 885EBC001DC for ; Thu, 27 Jul 2023 05:36:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231953AbjG0Fgx (ORCPT ); Thu, 27 Jul 2023 01:36:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231843AbjG0FgZ (ORCPT ); Thu, 27 Jul 2023 01:36:25 -0400 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 796C935B7 for ; Wed, 26 Jul 2023 22:35:41 -0700 (PDT) Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-54290603887so306315a12.1 for ; Wed, 26 Jul 2023 22:35:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436109; x=1691040909; 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=8W9kuJkMcvh5EIR1rkxuFuZSM/bg9HqW6C8Akxa9PTk=; b=MAZHn9Fs1Wr+ausou3GNnGfYd0iaJfcvXuvDmVV4J2mG8A+3uOhRVMt8nm3s3Nt6vU bVximShHZdGu014nr4d6xPoEe+l+c8gB2SQAj2TfvLXuBqVMZrTUfXO3kVZn4ZOvoy37 x0jk4RQWC5H2z93dSdPA5LD4AOdc153GcNjevwQAB5OGi4fcIF42ojaYCa+qV2x25ZHg eWXelqBUDlGXQovf3yuKS36D8pj3/kou+O/w3+EPKx7lqAmifruQhFuBlwW2jFYLuced y5y1ktmPRP3ehZnky6767tc4N6Zt/kA1YOOMkB/98vjvqtLovB+iXof5mSGqYcIpMBDk 2mLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436109; x=1691040909; 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=8W9kuJkMcvh5EIR1rkxuFuZSM/bg9HqW6C8Akxa9PTk=; b=UgI5SpatABjQAmaQyR736oZqZ7hOfqvBQZSLjAjZvQLEieC+EhN9Q27pbGJqCaCBQs bcmXRvFyE74YaWAMugV/1D1wxN5BvaN+z8nHTag+mpKm3wdGAcaHbUW7GKW4KCb3r24/ pnPOGkTnGFpxoyQ9x7+wg758eZ0Io58YtA0JpYHelgg79CosENIf3cfD8pfzgpFNL6ds 74M/0lQkzxDu61ty421VwXy2AxZMDfR5PQMIvX8wNCRMrv2iaPey4ulsUbeVDTM/Dwln SMA0xmNYRolhXhn8eoSDvE7HAsNsGGDuG5CpYxN4RU/Iv7XOZBZyXZAV8BsQHL0sqoBS /5Vw== X-Gm-Message-State: ABy/qLaqlrja4EdAaTLosGw5BtT+/+yVQIGdQ/lt4rZH+0q7JTlHsTFH lzqMxei+4uEToRRm0nfStJBocw== X-Google-Smtp-Source: APBJJlFr7Ubx6veXreYCq9qaNTfA3hoIMxlxKrM+QpfvNqZ1MgIHvumx6BmFslYRsgIIJIQ7F8001A== X-Received: by 2002:a05:6a20:7347:b0:133:6e6e:2b11 with SMTP id v7-20020a056a20734700b001336e6e2b11mr3207205pzc.2.1690436108919; Wed, 26 Jul 2023 22:35:08 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:08 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 22/42] clk: at91: at91sam9g45: fix checkpatch.pl check Date: Thu, 27 Jul 2023 08:31:36 +0300 Message-Id: <20230727053156.13587-23-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Fix the following checkpatch.pl check: drivers/clk/at91/at91sam9g45.c:235: CHECK: Please use a blank line after fu= nction/struct/union/enum declarations Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9g45.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 684ce0f79d3b..868897fad3f0 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -241,6 +241,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) err_free: kfree(at91sam9g45_pmc); } + /* * The TCB is used as the clocksource so its clock is needed early. This m= eans * this can't be a platform driver. --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46BD3C41513 for ; Thu, 27 Jul 2023 05:37:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232022AbjG0FhJ (ORCPT ); Thu, 27 Jul 2023 01:37:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231720AbjG0Fgm (ORCPT ); Thu, 27 Jul 2023 01:36:42 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B0A635AC for ; Wed, 26 Jul 2023 22:35:54 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1b89d47ffb6so3421805ad.2 for ; Wed, 26 Jul 2023 22:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436116; x=1691040916; 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=SA2TrheluzQnAFbCVQ+vAz4zJ4LsOThO95zEdvuZGfo=; b=EkFF4gPwxDnbKx/J7LkqyC3bIRRwG52czDWaorcgXR6HrgdZ4jyxRV7FP+wbQJr4RB tn1xQmZIaBehGueBCk18NcjvkUGndC3danISrC3TxPSiyfylohNlZi5lXcqm/4CZOPKl Uttv5Y/8HDk1gLq1quYhFC/6OTM2E4c5Nd4/bTpq8UkAZ4SmACiUdY1FSlKwnH4KBGVR UvoMu3M1vFeBGeM4wH8UARSvJIJDzm6suo5Lznue0tUR1oXn5lnYpllFKIbZpvTPrXBE LGRaF2IpkCoLlwJE+vpLABswUF5IgwCqJqhpXdqzETC4X929DRTCsJ+o6oNLFMsEGjyR 7V4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436116; x=1691040916; 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=SA2TrheluzQnAFbCVQ+vAz4zJ4LsOThO95zEdvuZGfo=; b=eAKuqydojm23LQmqSzMPhZVS6gRAKqJqxfTSE++gAZn5eDMmPGoeyzB2DGHqhfd2BW agikXQuOCUb4b4C4dUQn6JcD1jCj37u6qtvbpVdpZLVs5eEzC9Yx7Wc8NJCPlNu0vwdx lKkqfxn/v1YlgTM5oeFHgxxtRDKCpBMIZf1zkMbYbtlQKAkpJjAiGBXljVB1lUbHqC/j s6NBctZZkGDNULHr5kDdH8/gVctiNmbwVRr6ykI7Y+C+XWFyrhfPfzBmbPkJpU1Aj/AX uqe8VCrNWcviqFH1Y6eHVGV6FKYjPvjkp21DrJkYTiLthhNL57aFK2FVWQY/jmW3o8vY XL/w== X-Gm-Message-State: ABy/qLbL4Q9PHwi06O7cO+spRngYJ8qlf5ddfw3MFSAgKqG/CJ3/IKOd kv0iU4HEt1Woh8kpOySL27mFRA== X-Google-Smtp-Source: APBJJlEzht+QR53SZxeYmEj0hRCQ1Y6DMJIqdzDM7dzKYeYqRgd4FqDbqo4bvKSF2FjZ9Ci8CBmyhg== X-Received: by 2002:a17:902:ee55:b0:1b8:3dec:48de with SMTP id 21-20020a170902ee5500b001b83dec48demr3404846plo.47.1690436116638; Wed, 26 Jul 2023 22:35:16 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:16 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 23/42] clk: at91: at91sam9n12: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:37 +0300 Message-Id: <20230727053156.13587-24-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91SAM9N12 clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9n12.c | 109 +++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 47 deletions(-) diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 34dd7645f964..d8dcff9ffaaa 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -51,9 +52,9 @@ static const struct clk_pll_characteristics pllb_characte= ristics =3D { .out =3D pllb_out, }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; unsigned long flags; u8 id; } at91sam9n12_systemck[] =3D { @@ -61,12 +62,12 @@ static const struct { * ddrck feeds DDR controller and is enabled by bootloader thus we need * to keep it enabled in case there is no Linux consumer for it. */ - { .n =3D "ddrck", .p =3D "masterck_div", .id =3D 2, .flags =3D CLK_IS_CRI= TICAL }, - { .n =3D "lcdck", .p =3D "masterck_div", .id =3D 3 }, - { .n =3D "uhpck", .p =3D "usbck", .id =3D 6 }, - { .n =3D "udpck", .p =3D "usbck", .id =3D 7 }, - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, + { .n =3D "ddrck", .id =3D 2, .flags =3D CLK_IS_CRITICAL }, + { .n =3D "lcdck", .id =3D 3 }, + { .n =3D "uhpck", .id =3D 6 }, + { .n =3D "udpck", .id =3D 7 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, }; =20 static const struct clk_pcr_layout at91sam9n12_pcr_layout =3D { @@ -111,25 +112,29 @@ static const struct pck at91sam9n12_periphck[] =3D { =20 static void __init at91sam9n12_pmc_setup(struct device_node *np) { + struct clk_hw *parent_hws[5], *usbck_hw, *main_rc_hw, *main_osc_hw, *hw; + struct clk_hw *slow_clk_hw, *main_xtal_hw; + static struct clk_parent_data parent_data; + const char *main_xtal_name =3D "main_xtal"; struct clk_range range =3D CLK_RANGE(0, 0); - const char *slck_name, *mainxtal_name; struct pmc_data *at91sam9n12_pmc; - const char *parent_names[6]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; bool bypass; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -140,50 +145,52 @@ static void __init at91sam9n12_pmc_setup(struct devic= e_node *np) if (!at91sam9n12_pmc) return; =20 - hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, - 50000000); - if (IS_ERR(hw)) + main_rc_hw =3D at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000= 000, + 50000000); + if (IS_ERR(main_rc_hw)) goto err_free; =20 bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); =20 - hw =3D at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, NULL, - bypass); - if (IS_ERR(hw)) + parent_data.name =3D main_xtal_name; + parent_data.fw_name =3D main_xtal_name; + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + bypass); + if (IS_ERR(main_osc_hw)) goto err_free; =20 - parent_names[0] =3D "main_rc_osc"; - parent_names[1] =3D "main_osc"; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, NULL= , 2); + parent_hws[0] =3D main_rc_hw; + parent_hws[1] =3D main_osc_hw; + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); if (IS_ERR(hw)) goto err_free; =20 at91sam9n12_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9n12_pmc->chw= s[PMC_MAIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", "pllack", NULL); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); if (IS_ERR(hw)) goto err_free; =20 at91sam9n12_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", "mainck", NULL, 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91sam9n12_pmc->chw= s[PMC_MAIN], 1, &at91rm9200_pll_layout, &pllb_characteristics); if (IS_ERR(hw)) goto err_free; =20 at91sam9n12_pmc->chws[PMC_PLLBCK] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "pllbck"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9n12_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9n12_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9n12_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &at91sam9n12_mck_lock); @@ -191,7 +198,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + NULL, hw, &at91sam9x5_master_layout, &mck_characteristics, &at91sam9n12_mck_lock, @@ -201,22 +208,23 @@ static void __init at91sam9n12_pmc_setup(struct devic= e_node *np) =20 at91sam9n12_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", "pllbck", NULL); - if (IS_ERR(hw)) + usbck_hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", NULL, + at91sam9n12_pmc->chws[PMC_PLLBCK]); + if (IS_ERR(usbck_hw)) goto err_free; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "plladivck"; - parent_names[3] =3D "pllbck"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9n12_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9n12_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9n12_pmc->chws[PMC_PLLBCK]; + parent_hws[4] =3D at91sam9n12_pmc->chws[PMC_MCK]; for (i =3D 0; i < 2; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) @@ -225,9 +233,16 @@ static void __init at91sam9n12_pmc_setup(struct device= _node *np) at91sam9n12_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + at91sam9n12_systemck[0].parent_hw =3D at91sam9n12_pmc->chws[PMC_MCK]; + at91sam9n12_systemck[1].parent_hw =3D at91sam9n12_pmc->chws[PMC_MCK]; + at91sam9n12_systemck[2].parent_hw =3D usbck_hw; + at91sam9n12_systemck[3].parent_hw =3D usbck_hw; + at91sam9n12_systemck[4].parent_hw =3D at91sam9n12_pmc->pchws[0]; + at91sam9n12_systemck[5].parent_hw =3D at91sam9n12_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9n12_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9n12_systemck[i].n, - at91sam9n12_systemck[i].p, NULL, + NULL, at91sam9n12_systemck[i].parent_hw, at91sam9n12_systemck[i].id, at91sam9n12_systemck[i].flags); if (IS_ERR(hw)) @@ -240,7 +255,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9n12_pcr_layout, at91sam9n12_periphck[i].n, - "masterck_div", NULL, + NULL, at91sam9n12_pmc->chws[PMC_MCK], at91sam9n12_periphck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32FC3EB64DD for ; Thu, 27 Jul 2023 05:37:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232177AbjG0Fha (ORCPT ); Thu, 27 Jul 2023 01:37:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231722AbjG0FhF (ORCPT ); Thu, 27 Jul 2023 01:37:05 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 706513C3B for ; Wed, 26 Jul 2023 22:36:15 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1bba48b0bd2so3392105ad.3 for ; Wed, 26 Jul 2023 22:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436124; x=1691040924; 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=GiPKeEp/OnJVAeiXOlEa57rkvX7TbeABjU0rqvFwffg=; b=Gv96cxC9tN5YDqs7yjb8N7ef2X97pLKH1U6k0a/M+7tHu8ixpB52+7qb1oORhVB0D9 QkghtXksO+DJ6mH9Ou167j/oqRrieRoLajl4KNITe73qT9k0D8MdIjABMwEyBCEnKcm6 5pKAoy2HnAHJeBxmcMndj6w+lRwA7MQgCfWd+dKLXwByYc3pk/Avu9Mq/RWtIptpTATY MhAfL+v0oAo3OUyfTBIk9DZhrtBBPowoCsTF0Pb35LvC4Ay7OqTgUOgPg6Mvob8Fo6UU 1GwTxynTvs7fGBrhezkxYimDWOz9A+a7XXUqAz7hes8x014htOJF3wjy3WLVQmvEJ61w vycQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436124; x=1691040924; 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=GiPKeEp/OnJVAeiXOlEa57rkvX7TbeABjU0rqvFwffg=; b=RISIE2C5FqFC1zjr2AmkonO3ZvCcCJ15JlX2vKb+stUKhvuU7ESJX0E/TBgONLlb7K 5ZTANvClhvnDREwCLO1qPB6g4f2hAIx2l5hOZzga2ljaNkNRyjfTdc8hRcRP0gNrFKMu xMxF3yScwrRHCUbHbpCIFzZIu9F9zvR3ydZF3+OO0xX/Ej30e6nlne8PaNCBhHvq4PuV b79qikD8Wn0AxaSkzyM2YoUx9VyS8RdnlrWtaXdtnSTvwJX+/6tiZvUIVduoF8GPqyzH UZ4sayp6jx2XqsNxsLzPob98cNXffsLGP3tPAP2hJNTEigBMXcMmO0E+rNJHa3af3bHJ 9xlQ== X-Gm-Message-State: ABy/qLbrQ4sbufVEtJjj0qw//h0lfW5ofqmWjARHffoSSMNRBxb5p+IE y9L/5jRJPPORZsme1S8sbNVv2w== X-Google-Smtp-Source: APBJJlFINJit9i5ARlN+Vsj+y55YmXolkqEqxQH3HTSxW35zdaX+DZVXitsrxj1AE1PQfpnc9plraw== X-Received: by 2002:a17:902:c1d4:b0:1bb:98e8:5db2 with SMTP id c20-20020a170902c1d400b001bb98e85db2mr3420427plc.26.1690436123881; Wed, 26 Jul 2023 22:35:23 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:23 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 24/42] clk: at91: at91sam9n12: remove checkpatch.pl checks Date: Thu, 27 Jul 2023 08:31:38 +0300 Message-Id: <20230727053156.13587-25-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove the following checkpatch.pl checks: drivers/clk/at91/at91sam9n12.c:135: CHECK: Alignment should match open pare= nthesis drivers/clk/at91/at91sam9n12.c:264: CHECK: Please use a blank line after fu= nction/struct/union/enum declarations Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9n12.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index d8dcff9ffaaa..01d943ebb680 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -141,7 +141,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) return; =20 at91sam9n12_pmc =3D pmc_data_allocate(PMC_PLLBCK + 1, - nck(at91sam9n12_systemck), 31, 0, 2); + nck(at91sam9n12_systemck), 31, 0, 2); if (!at91sam9n12_pmc) return; =20 @@ -271,6 +271,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) err_free: kfree(at91sam9n12_pmc); } + /* * The TCB is used as the clocksource so its clock is needed early. This m= eans * this can't be a platform driver. --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 562ADC001E0 for ; Thu, 27 Jul 2023 05:37:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230187AbjG0Fhu (ORCPT ); Thu, 27 Jul 2023 01:37:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232149AbjG0Fh0 (ORCPT ); Thu, 27 Jul 2023 01:37:26 -0400 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5EC5E3582 for ; Wed, 26 Jul 2023 22:36:33 -0700 (PDT) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1b89d47ffb6so3422455ad.2 for ; Wed, 26 Jul 2023 22:36:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436131; x=1691040931; 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=2eV7FwAQnhqmKgtMd0G6R4TLPgqzhAKhV6ZHHlFmK5M=; b=mra48eD2kN04BmlLuyAEvoEKjENVGmX08ZtHeBWV3TrnVT8w9cDYeNjDK+3LTUo9pg BMHCmE8isRPu0hr1Br50C0+6Dv3T1FQvw1R3Q8iGjbu3mc/1+ctEz37Hto6vI34nn3sd VsXpIHD3auMSYQzDlH6e7Adai3jRYKt3dzxNDWJiXRZirk2k2a8qfbAkGGu/j3PTbjaV RQlKgl8oI8g/eOIUdKJN6x+RB9Xw6gDIQIMDr9WnyydaJv2Kbu3CHdWPztkN7nX+ojDg OKx8pcW2FkGy6WlJPOOYqbUG26xl+6B1LY9oqVX0mutOICzTvJ0lyzsyLfOxgT58bqc6 vf1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436131; x=1691040931; 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=2eV7FwAQnhqmKgtMd0G6R4TLPgqzhAKhV6ZHHlFmK5M=; b=VFb0OBwfpE0HE83EWgCcB8FnQYdqTRN+sKN1ZsBoxr8cnEifDYK19kCidpmyI2qYMf SwzM9py6ZovIA+4Qn9Hm7B/Zchd5qBTkPlLJ1YJYVsykQ2mRABIahpmhOEE0NXa8NQl4 IPF0GQ3C0ZMyBlViZECuhVjZVw9CkTs6IKcjIqWjFLPcrRocdk32dv3uz8GnzXa2GS5D nQaSOYWKDpiASP8Kmq+/wX6j1cTCzQqROndQhSbHPTgvD1swtUXhZ702crkJJi74SbKr nTnoTPzPHxDfJTj84WgQhgEK0uw6I76KXwQ3fU8j8966SzplZtio5RVF8mdPH175JQrt XA/Q== X-Gm-Message-State: ABy/qLbMEIEO6h6ne1CQOp+I0zF4bwp/FhMuzwD2RwJRG8ERu129H5fw Vw+4BxMZ0pxTicNbHIUT0tNJxw== X-Google-Smtp-Source: APBJJlHvImL9nMGYwJO3XtrJzHDpD8HPaM0PRBf1WB8LD5lptPCb27jBcnAi8tB4UrHR6TMuogusIA== X-Received: by 2002:a17:903:11d1:b0:1bb:7b0a:374 with SMTP id q17-20020a17090311d100b001bb7b0a0374mr4165915plh.4.1690436131299; Wed, 26 Jul 2023 22:35:31 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:31 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 25/42] clk: at91: at91sam9rl: switch to parent_hw Date: Thu, 27 Jul 2023 08:31:39 +0300 Message-Id: <20230727053156.13587-26-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch AT91SAM9RL clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9rl.c | 70 +++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 0e8657aac491..29f24a5b1fef 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -28,13 +29,13 @@ static const struct clk_pll_characteristics sam9rl_plla= _characteristics =3D { .out =3D sam9rl_plla_out, }; =20 -static const struct { +static struct { char *n; - char *p; + struct clk_hw *parent_hw; u8 id; } at91sam9rl_systemck[] =3D { - { .n =3D "pck0", .p =3D "prog0", .id =3D 8 }, - { .n =3D "pck1", .p =3D "prog1", .id =3D 9 }, + { .n =3D "pck0", .id =3D 8 }, + { .n =3D "pck1", .id =3D 9 }, }; =20 static const struct { @@ -67,23 +68,25 @@ static const struct { =20 static void __init at91sam9rl_pmc_setup(struct device_node *np) { - const char *slck_name, *mainxtal_name; + struct clk_hw *parent_hws[5], *hw, *slow_clk_hw, *main_xtal_hw; + const char *main_xtal_name =3D "main_xtal"; struct pmc_data *at91sam9rl_pmc; - const char *parent_names[6]; struct regmap *regmap; - struct clk_hw *hw; + struct clk *clk; int i; =20 - i =3D of_property_match_string(np, "clock-names", "slow_clk"); - if (i < 0) + clk =3D of_clk_get_by_name(np, "slow_clk"); + if (IS_ERR(clk)) return; - - slck_name =3D of_clk_get_parent_name(np, i); - - i =3D of_property_match_string(np, "clock-names", "main_xtal"); - if (i < 0) + slow_clk_hw =3D __clk_get_hw(clk); + if (!slow_clk_hw) + return; + clk =3D of_clk_get_by_name(np, main_xtal_name); + if (IS_ERR(clk)) + return; + main_xtal_hw =3D __clk_get_hw(clk); + if (!main_xtal_hw) return; - mainxtal_name =3D of_clk_get_parent_name(np, i); =20 regmap =3D device_node_to_regmap(np); if (IS_ERR(regmap)) @@ -95,13 +98,13 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) if (!at91sam9rl_pmc) return; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", mainxtal_name, NUL= L); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, main_xtal_hw= ); if (IS_ERR(hw)) goto err_free; =20 at91sam9rl_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", "mainck", NULL, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9rl_pmc->chws= [PMC_MAIN], 0, &at91rm9200_pll_layout, &sam9rl_plla_characteristics); if (IS_ERR(hw)) @@ -109,18 +112,18 @@ static void __init at91sam9rl_pmc_setup(struct device= _node *np) =20 at91sam9rl_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", "mainck", NULL); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9rl_pm= c->chws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 at91sam9rl_pmc->chws[PMC_UTMI] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "utmick"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9rl_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9rl_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9rl_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - parent_names, NULL, + NULL, parent_hws, &at91rm9200_master_layout, &sam9rl_mck_characteristics, &sam9rl_mck_lock); @@ -128,7 +131,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - "masterck_pres", NULL, + NULL, hw, &at91rm9200_master_layout, &sam9rl_mck_characteristics, &sam9rl_mck_lock, CLK_SET_RATE_GATE, 0); @@ -137,18 +140,18 @@ static void __init at91sam9rl_pmc_setup(struct device= _node *np) =20 at91sam9rl_pmc->chws[PMC_MCK] =3D hw; =20 - parent_names[0] =3D slck_name; - parent_names[1] =3D "mainck"; - parent_names[2] =3D "pllack"; - parent_names[3] =3D "utmick"; - parent_names[4] =3D "masterck_div"; + parent_hws[0] =3D slow_clk_hw; + parent_hws[1] =3D at91sam9rl_pmc->chws[PMC_MAIN]; + parent_hws[2] =3D at91sam9rl_pmc->chws[PMC_PLLACK]; + parent_hws[3] =3D at91sam9rl_pmc->chws[PMC_UTMI]; + parent_hws[4] =3D at91sam9rl_pmc->chws[PMC_MCK]; for (i =3D 0; i < 2; i++) { char name[6]; =20 snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, 5, i, + NULL, parent_hws, 5, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) @@ -157,9 +160,12 @@ static void __init at91sam9rl_pmc_setup(struct device_= node *np) at91sam9rl_pmc->pchws[i] =3D hw; } =20 + /* Set systemck parent hws. */ + at91sam9rl_systemck[0].parent_hw =3D at91sam9rl_pmc->pchws[0]; + at91sam9rl_systemck[1].parent_hw =3D at91sam9rl_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9rl_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9rl_systemck[i].n, - at91sam9rl_systemck[i].p, NULL, + NULL, at91sam9rl_systemck[i].parent_hw, at91sam9rl_systemck[i].id, 0); if (IS_ERR(hw)) goto err_free; @@ -170,7 +176,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) for (i =3D 0; i < ARRAY_SIZE(at91sam9rl_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91sam9rl_periphck[i].n, - "masterck_div", NULL, + NULL, at91sam9rl_pmc->chws[PMC_MCK], at91sam9rl_periphck[i].id); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D540C00528 for ; Thu, 27 Jul 2023 05:38:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232070AbjG0FiW (ORCPT ); Thu, 27 Jul 2023 01:38:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231157AbjG0Fhv (ORCPT ); Thu, 27 Jul 2023 01:37:51 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93B362728 for ; Wed, 26 Jul 2023 22:37:00 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1bb775625e2so3332315ad.1 for ; Wed, 26 Jul 2023 22:37:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436139; x=1691040939; 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=yQlXbwoci/ewwucHyWtCCTQ2+X4L0Fz5xsjb1IQcag4=; b=Bg5yjQAjktp2tJN/SXnI4Hbxj/NHVgUV4xq2Aq1auahzR1Uc+3pqQO1aOt8K2rE2Vh 9S/5SYQbxmkPVwaFQQqurFrabLky1ex30remLU9wCYUbRBhdwNmgsqQCMP9pjh3qJOaF RlLL5pfKUQ6F/HOrNjjebOXkb3+9ZdefSZVrAQiQ7MCW64ortIe3AMxkBysncZBoy/i/ o207ddtT7pYA7NCUIxD/m1AnPWwcjDV31mYa56A9BAD4V1a17UlN23zqU20OAfZ4wcYc IU89p/pQyc9/M6cNV31hcc4J1CoWIi0FSAGWlb73PvUJbjB14GYUhq6oQpRS8852jBn4 YwdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436139; x=1691040939; 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=yQlXbwoci/ewwucHyWtCCTQ2+X4L0Fz5xsjb1IQcag4=; b=lV53i/UP+JVdUZ4S59CN9LwY3QJdfro5MAoVifPCunewrJBfVOgPab1Kq4LOZgYCnu GRoByEwJY2xIdHPei+SHHdJkX+AOFS08kBmD8TtS/LDnLJwYm+8PGZW+yAenyILM4tzx 5B/1ZiwIsLbVxp+Q2uI2XadQyeBpp3wr0JdSetO25TArc2bJhgViyxPPFcIkfUjTejC7 Kh6fAO1n1ea7POuFMgVW/WkuQagVsqetzg6H5oOMG797FtuR+QjMXPA6q2DCku3zqxp7 Ot6LkM13XdL4kShLoBxQfoBLDN/zBj8EQOGp7o1p+eflF78QKGaP5wWdFv5zGPuqs6Fn o2Nw== X-Gm-Message-State: ABy/qLZ8oXf5nydREFncjuGptJMte1hW9mk8JYaYnNfZp9ssYT17mMRZ TYp65HcmJYaiYNEvZ7ZXiHfzLw== X-Google-Smtp-Source: APBJJlHsDVCtvEOmrOaGJqf0BjQfeVpMuyWKgqwEHE5zMzyunm3gXSds0Z9gD5iv2xDyHelkUGaIeg== X-Received: by 2002:a17:902:8c86:b0:1b8:c63:4b79 with SMTP id t6-20020a1709028c8600b001b80c634b79mr1658635plo.19.1690436138684; Wed, 26 Jul 2023 22:35:38 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:38 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 26/42] clk: at91: dt-compat: switch to parent_hw and parent_data Date: Thu, 27 Jul 2023 08:31:40 +0300 Message-Id: <20230727053156.13587-27-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Switch old dt-compat clocks to use parent_hw and parent_data. Having parent_hw instead of parent names improves to clock registration speed and re-parenting. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/dt-compat.c | 328 +++++++++++++++++++++++++---------- 1 file changed, 232 insertions(+), 96 deletions(-) diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index dbc59ac44828..044e1fc821e2 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -29,11 +30,11 @@ static DEFINE_SPINLOCK(mck_lock); #ifdef CONFIG_HAVE_AT91_AUDIO_PLL static void __init of_sama5d2_clk_audio_pll_frac_setup(struct device_node = *np) { - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; - const char *parent_name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); @@ -41,9 +42,15 @@ static void __init of_sama5d2_clk_audio_pll_frac_setup(s= truct device_node *np) if (IS_ERR(regmap)) return; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 - hw =3D at91_clk_register_audio_pll_frac(regmap, name, parent_name, NULL); + hw =3D at91_clk_register_audio_pll_frac(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -55,11 +62,11 @@ CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_frac_setup, =20 static void __init of_sama5d2_clk_audio_pll_pad_setup(struct device_node *= np) { - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; - const char *parent_name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); @@ -67,9 +74,15 @@ static void __init of_sama5d2_clk_audio_pll_pad_setup(st= ruct device_node *np) if (IS_ERR(regmap)) return; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 - hw =3D at91_clk_register_audio_pll_pad(regmap, name, parent_name, NULL); + hw =3D at91_clk_register_audio_pll_pad(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -81,11 +94,11 @@ CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_pad_setup, =20 static void __init of_sama5d2_clk_audio_pll_pmc_setup(struct device_node *= np) { - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; - const char *parent_name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); @@ -93,9 +106,15 @@ static void __init of_sama5d2_clk_audio_pll_pmc_setup(s= truct device_node *np) if (IS_ERR(regmap)) return; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 - hw =3D at91_clk_register_audio_pll_pmc(regmap, name, parent_name, NULL); + hw =3D at91_clk_register_audio_pll_pmc(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -126,18 +145,26 @@ static void __init of_sama5d2_clk_generated_setup(str= uct device_node *np) int num; u32 id; const char *name; - struct clk_hw *hw; - unsigned int num_parents; - const char *parent_names[GENERATED_SOURCE_MAX]; + struct clk_hw *hw, *parent_hws[GENERATED_SOURCE_MAX]; + unsigned int num_parents, i; struct device_node *gcknp, *parent_np; struct clk_range range =3D CLK_RANGE(0, 0); struct regmap *regmap; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > GENERATED_SOURCE_MAX) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } =20 num =3D of_get_child_count(np); if (!num || num > PERIPHERAL_MAX) @@ -171,7 +198,7 @@ static void __init of_sama5d2_clk_generated_setup(struc= t device_node *np) =20 hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &dt_pcr_layout, name, - parent_names, NULL, NULL, + NULL, parent_hws, NULL, num_parents, id, &range, chg_pid); if (IS_ERR(hw)) @@ -187,11 +214,11 @@ CLK_OF_DECLARE(of_sama5d2_clk_generated_setup, "atmel= ,sama5d2-clk-generated", #ifdef CONFIG_HAVE_AT91_H32MX static void __init of_sama5d4_clk_h32mx_setup(struct device_node *np) { - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; - const char *parent_name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); @@ -199,9 +226,15 @@ static void __init of_sama5d4_clk_h32mx_setup(struct d= evice_node *np) if (IS_ERR(regmap)) return; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 - hw =3D at91_clk_register_h32mx(regmap, name, parent_name, NULL); + hw =3D at91_clk_register_h32mx(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -217,11 +250,10 @@ CLK_OF_DECLARE(of_sama5d4_clk_h32mx_setup, "atmel,sam= a5d4-clk-h32mx", static void __init of_sama5d2_clk_i2s_mux_setup(struct device_node *np) { struct regmap *regmap_sfr; - u8 bus_id; - const char *parent_names[2]; + u8 bus_id, i; struct device_node *i2s_mux_np; - struct clk_hw *hw; - int ret; + struct clk_hw *hw, *parent_hws[2] =3D {}; + struct clk *clk; =20 regmap_sfr =3D syscon_regmap_lookup_by_compatible("atmel,sama5d2-sfr"); if (IS_ERR(regmap_sfr)) @@ -234,16 +266,26 @@ static void __init of_sama5d2_clk_i2s_mux_setup(struc= t device_node *np) if (bus_id > I2S_BUS_NR) continue; =20 - ret =3D of_clk_parent_fill(i2s_mux_np, parent_names, 2); - if (ret !=3D 2) + for (i =3D 0; i < 2; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + break; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + break; + } + if (!parent_hws[1]) continue; =20 hw =3D at91_clk_i2s_mux_register(regmap_sfr, i2s_mux_np->name, - parent_names, NULL, 2, bus_id); + NULL, parent_hws, 2, bus_id); if (IS_ERR(hw)) continue; =20 of_clk_add_hw_provider(i2s_mux_np, of_clk_hw_simple_get, hw); + + parent_hws[1] =3D NULL; } } CLK_OF_DECLARE(sama5d2_clk_i2s_mux, "atmel,sama5d2-clk-i2s-mux", @@ -258,6 +300,7 @@ static void __init of_at91rm9200_clk_main_osc_setup(str= uct device_node *np) struct regmap *regmap; bool bypass; struct device_node *parent_np; + static struct clk_parent_data parent_data; =20 of_property_read_string(np, "clock-output-names", &name); bypass =3D of_property_read_bool(np, "atmel,osc-bypass"); @@ -269,7 +312,9 @@ static void __init of_at91rm9200_clk_main_osc_setup(str= uct device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91_clk_register_main_osc(regmap, name, parent_name, NULL, bypass= ); + parent_data.name =3D parent_name; + parent_data.fw_name =3D parent_name; + hw =3D at91_clk_register_main_osc(regmap, name, NULL, &parent_data, bypas= s); if (IS_ERR(hw)) return; =20 @@ -308,13 +353,12 @@ CLK_OF_DECLARE(at91sam9x5_clk_main_rc_osc, "atmel,at9= 1sam9x5-clk-main-rc-osc", =20 static void __init of_at91rm9200_clk_main_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); of_property_read_string(np, "clock-output-names", &name); =20 parent_np =3D of_get_parent(np); @@ -323,7 +367,15 @@ static void __init of_at91rm9200_clk_main_setup(struct= device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91_clk_register_rm9200_main(regmap, name, parent_name, NULL); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; + + hw =3D at91_clk_register_rm9200_main(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -334,18 +386,26 @@ CLK_OF_DECLARE(at91rm9200_clk_main, "atmel,at91rm9200= -clk-main", =20 static void __init of_at91sam9x5_clk_main_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_names[2]; - unsigned int num_parents; + struct clk_hw *hw, *parent_hws[2]; + unsigned int num_parents, i; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > 2) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); of_node_put(parent_np); @@ -354,7 +414,7 @@ static void __init of_at91sam9x5_clk_main_setup(struct = device_node *np) =20 of_property_read_string(np, "clock-output-names", &name); =20 - hw =3D at91_clk_register_sam9x5_main(regmap, name, parent_names, NULL, + hw =3D at91_clk_register_sam9x5_main(regmap, name, NULL, parent_hws, num_parents); if (IS_ERR(hw)) return; @@ -393,19 +453,27 @@ static void __init of_at91_clk_master_setup(struct device_node *np, const struct clk_master_layout *layout) { - struct clk_hw *hw; - unsigned int num_parents; - const char *parent_names[MASTER_SOURCE_MAX]; + struct clk_hw *hw, *parent_hws[MASTER_SOURCE_MAX]; + unsigned int num_parents, i; const char *name =3D np->name; struct clk_master_characteristics *characteristics; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > MASTER_SOURCE_MAX) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < MASTER_SOURCE_MAX; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -420,12 +488,12 @@ of_at91_clk_master_setup(struct device_node *np, return; =20 hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", num_parents, - parent_names, NULL, layout, + NULL, parent_hws, layout, characteristics, &mck_lock); if (IS_ERR(hw)) goto out_free_characteristics; =20 - hw =3D at91_clk_register_master_div(regmap, name, "masterck_pres", NULL, + hw =3D at91_clk_register_master_div(regmap, name, NULL, hw, layout, characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); if (IS_ERR(hw)) @@ -457,15 +525,19 @@ of_at91_clk_periph_setup(struct device_node *np, u8 t= ype) { int num; u32 id; - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name; struct device_node *periphclknp; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); - if (!parent_name) + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) return; =20 num =3D of_get_child_count(np); @@ -490,7 +562,7 @@ of_at91_clk_periph_setup(struct device_node *np, u8 typ= e) =20 if (type =3D=3D PERIPHERAL_AT91RM9200) { hw =3D at91_clk_register_peripheral(regmap, name, - parent_name, NULL, id); + NULL, parent_hw, id); } else { struct clk_range range =3D CLK_RANGE(0, 0); unsigned long flags =3D 0; @@ -511,8 +583,8 @@ of_at91_clk_periph_setup(struct device_node *np, u8 typ= e) &pmc_pcr_lock, &dt_pcr_layout, name, - parent_name, NULL, + parent_hw, id, &range, INT_MIN, flags); @@ -640,17 +712,23 @@ of_at91_clk_pll_setup(struct device_node *np, const struct clk_pll_layout *layout) { u32 id; - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; struct regmap *regmap; - const char *parent_name; const char *name =3D np->name; struct device_node *parent_np; struct clk_pll_characteristics *characteristics; + struct clk *clk; =20 if (of_property_read_u32(np, "reg", &id)) return; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -664,7 +742,7 @@ of_at91_clk_pll_setup(struct device_node *np, if (!characteristics) return; =20 - hw =3D at91_clk_register_pll(regmap, name, parent_name, NULL, id, layout, + hw =3D at91_clk_register_pll(regmap, name, NULL, parent_hw, id, layout, characteristics); if (IS_ERR(hw)) goto out_free_characteristics; @@ -707,13 +785,19 @@ CLK_OF_DECLARE(sama5d3_clk_pll, "atmel,sama5d3-clk-pl= l", static void __init of_at91sam9x5_clk_plldiv_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -723,7 +807,7 @@ of_at91sam9x5_clk_plldiv_setup(struct device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91_clk_register_plldiv(regmap, name, parent_name, NULL); + hw =3D at91_clk_register_plldiv(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -739,18 +823,26 @@ of_at91_clk_prog_setup(struct device_node *np, { int num; u32 id; - struct clk_hw *hw; - unsigned int num_parents; - const char *parent_names[PROG_SOURCE_MAX]; + struct clk_hw *hw, *parent_hws[PROG_SOURCE_MAX]; + unsigned int num_parents, i; const char *name; struct device_node *progclknp, *parent_np; struct regmap *regmap; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > PROG_SOURCE_MAX) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } =20 num =3D of_get_child_count(np); if (!num || num > (PROG_ID_MAX + 1)) @@ -770,7 +862,7 @@ of_at91_clk_prog_setup(struct device_node *np, name =3D progclknp->name; =20 hw =3D at91_clk_register_programmable(regmap, name, - parent_names, NULL, num_parents, + NULL, parent_hws, num_parents, id, layout, mux_table); if (IS_ERR(hw)) continue; @@ -802,18 +894,26 @@ CLK_OF_DECLARE(at91sam9x5_clk_prog, "atmel,at91sam9x5= -clk-programmable", =20 static void __init of_at91sam9260_clk_slow_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_names[2]; - unsigned int num_parents; + struct clk_hw *hw, *parent_hws[2]; + unsigned int num_parents, i; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents !=3D 2) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } parent_np =3D of_get_parent(np); regmap =3D syscon_node_to_regmap(parent_np); of_node_put(parent_np); @@ -822,7 +922,7 @@ static void __init of_at91sam9260_clk_slow_setup(struct= device_node *np) =20 of_property_read_string(np, "clock-output-names", &name); =20 - hw =3D at91_clk_register_sam9260_slow(regmap, name, parent_names, NULL, + hw =3D at91_clk_register_sam9260_slow(regmap, name, NULL, parent_hws, num_parents); if (IS_ERR(hw)) return; @@ -837,18 +937,26 @@ CLK_OF_DECLARE(at91sam9260_clk_slow, "atmel,at91sam92= 60-clk-slow", =20 static void __init of_at91sam9x5_clk_smd_setup(struct device_node *np) { - struct clk_hw *hw; - unsigned int num_parents; - const char *parent_names[SMD_SOURCE_MAX]; + struct clk_hw *hw, *parent_hws[SMD_SOURCE_MAX]; + unsigned int num_parents, i; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > SMD_SOURCE_MAX) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -858,7 +966,7 @@ static void __init of_at91sam9x5_clk_smd_setup(struct d= evice_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, name, parent_names, NULL, + hw =3D at91sam9x5_clk_register_smd(regmap, name, NULL, parent_hws, num_parents); if (IS_ERR(hw)) return; @@ -873,11 +981,11 @@ static void __init of_at91rm9200_clk_sys_setup(struct= device_node *np) { int num; u32 id; - struct clk_hw *hw; + struct clk_hw *hw, *parent_hw; const char *name; struct device_node *sysclknp, *parent_np; - const char *parent_name; struct regmap *regmap; + struct clk *clk; =20 num =3D of_get_child_count(np); if (num > (SYSTEM_MAX_ID + 1)) @@ -898,7 +1006,13 @@ static void __init of_at91rm9200_clk_sys_setup(struct= device_node *np) if (of_property_read_string(np, "clock-output-names", &name)) name =3D sysclknp->name; =20 - parent_name =3D of_clk_get_parent_name(sysclknp, 0); + clk =3D of_clk_get(sysclknp, 0); + if (IS_ERR(clk)) + continue; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + continue; =20 /* * ddrck feeds DDR controller and is enabled by bootloader thus @@ -908,7 +1022,7 @@ static void __init of_at91rm9200_clk_sys_setup(struct = device_node *np) if (!strcmp(sysclknp->name, "ddrck")) flags =3D CLK_IS_CRITICAL; =20 - hw =3D at91_clk_register_system(regmap, name, parent_name, NULL, + hw =3D at91_clk_register_system(regmap, name, NULL, parent_hw, id, flags); if (IS_ERR(hw)) continue; @@ -924,18 +1038,26 @@ CLK_OF_DECLARE(at91rm9200_clk_sys, "atmel,at91rm9200= -clk-system", =20 static void __init of_at91sam9x5_clk_usb_setup(struct device_node *np) { - struct clk_hw *hw; - unsigned int num_parents; - const char *parent_names[USB_SOURCE_MAX]; + struct clk_hw *hw, *parent_hws[USB_SOURCE_MAX]; + unsigned int num_parents, i; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 num_parents =3D of_clk_get_parent_count(np); if (num_parents =3D=3D 0 || num_parents > USB_SOURCE_MAX) return; =20 - of_clk_parent_fill(np, parent_names, num_parents); + for (i =3D 0; i < num_parents; i++) { + clk =3D of_clk_get(np, i); + if (IS_ERR(clk)) + return; + + parent_hws[i] =3D __clk_get_hw(clk); + if (!parent_hws[i]) + return; + } =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -945,7 +1067,7 @@ static void __init of_at91sam9x5_clk_usb_setup(struct = device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_usb(regmap, name, parent_names, NULL, + hw =3D at91sam9x5_clk_register_usb(regmap, name, NULL, parent_hws, num_parents); if (IS_ERR(hw)) return; @@ -957,14 +1079,18 @@ CLK_OF_DECLARE(at91sam9x5_clk_usb, "atmel,at91sam9x5= -clk-usb", =20 static void __init of_at91sam9n12_clk_usb_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); - if (!parent_name) + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) return; =20 of_property_read_string(np, "clock-output-names", &name); @@ -975,7 +1101,7 @@ static void __init of_at91sam9n12_clk_usb_setup(struct= device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9n12_clk_register_usb(regmap, name, parent_name, NULL); + hw =3D at91sam9n12_clk_register_usb(regmap, name, NULL, parent_hw); if (IS_ERR(hw)) return; =20 @@ -986,15 +1112,19 @@ CLK_OF_DECLARE(at91sam9n12_clk_usb, "atmel,at91sam9n= 12-clk-usb", =20 static void __init of_at91rm9200_clk_usb_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; u32 divisors[4] =3D {0, 0, 0, 0}; struct regmap *regmap; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); - if (!parent_name) + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) return; =20 of_property_read_u32_array(np, "atmel,clk-divisors", divisors, 4); @@ -1008,7 +1138,7 @@ static void __init of_at91rm9200_clk_usb_setup(struct= device_node *np) of_node_put(parent_np); if (IS_ERR(regmap)) return; - hw =3D at91rm9200_clk_register_usb(regmap, name, parent_name, NULL, divis= ors); + hw =3D at91rm9200_clk_register_usb(regmap, name, NULL, parent_hw, divisor= s); if (IS_ERR(hw)) return; =20 @@ -1021,13 +1151,19 @@ CLK_OF_DECLARE(at91rm9200_clk_usb, "atmel,at91rm920= 0-clk-usb", #ifdef CONFIG_HAVE_AT91_UTMI static void __init of_at91sam9x5_clk_utmi_setup(struct device_node *np) { - struct clk_hw *hw; - const char *parent_name; + struct clk_hw *hw, *parent_hw; const char *name =3D np->name; struct regmap *regmap_pmc, *regmap_sfr; struct device_node *parent_np; + struct clk *clk; =20 - parent_name =3D of_clk_get_parent_name(np, 0); + clk =3D of_clk_get(np, 0); + if (IS_ERR(clk)) + return; + + parent_hw =3D __clk_get_hw(clk); + if (!parent_hw) + return; =20 of_property_read_string(np, "clock-output-names", &name); =20 @@ -1055,7 +1191,7 @@ static void __init of_at91sam9x5_clk_utmi_setup(struc= t device_node *np) regmap_sfr =3D NULL; } =20 - hw =3D at91_clk_register_utmi(regmap_pmc, regmap_sfr, name, parent_name, = NULL); + hw =3D at91_clk_register_utmi(regmap_pmc, regmap_sfr, name, NULL, parent_= hw); if (IS_ERR(hw)) return; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BC2AC001DC for ; Thu, 27 Jul 2023 05:38:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232019AbjG0FiR (ORCPT ); Thu, 27 Jul 2023 01:38:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231867AbjG0Fhs (ORCPT ); Thu, 27 Jul 2023 01:37:48 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C17413C17 for ; Wed, 26 Jul 2023 22:36:59 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1bbc7b2133fso3478215ad.1 for ; Wed, 26 Jul 2023 22:36:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436146; x=1691040946; 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=t8HhL8+T58fsNy2ml6XhMwevzcQUIPpdggE6E7sZkqw=; b=me5Ao9gm+3uVJoSHfhX5wwMlcbIWGAsrNYGUqwcb9jsJteHJRkJtXFIjvJC1J7c0Ol /FVWm+ZkPd/jxaG0hajJqqdwAeV6b5goie8TnBS0g7F8444cEUpG8tRk1gOjABySbYdT 1CnCn1B1s33naPM4/j8dIO4R6DRy8+o5zMYe8lb9kbcwY/ciLL0sHiPR/ygX0q9Bp9Yc eSmsoYfVXm7nqEdO0sGaBR7Jko07FZ2Gdiq9LbK7iZ2swIrlAHw59Y30f9sAvSb+7hmW pTyHID27hUsSmVQoOAq/FqZsn/4wks8mqwGXy6pmS0nA3sBv+SWNc9v27/o3ILFPn+mS MM9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436146; x=1691040946; 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=t8HhL8+T58fsNy2ml6XhMwevzcQUIPpdggE6E7sZkqw=; b=Gq8o5eG/z9Ukz1xR7QsWFOlXYPTwc9P5ufikPOr8s4EiDR8wqf/PJ7gbchep51kVxm GdPAi93+ta5BaLdQGFCFoEMkccoIQHD2G2rIDfoU4vS0qQpwas94pka6YidYAmqx5l5x fgvjXtyeobylFC2uziAaiorFildCUhul3X/u/otmZ6KNfAnV70DuvJl6F9QgbZ1FKXqd J2lXsQGK0KhI/Z9JQQvWW/FV2axvlRffZkrpL/+bLZLLDYX6RogFvEVSH4bVF/6pF9fe 9wn1Y/5rhX007FTnO9nduHe5FuWhOrZzQWHYRGs+9axhrutye/OaQ3a66/JcI7F28ULa G+1A== X-Gm-Message-State: ABy/qLZaZ9/C2Z9/+VXCA4eyivvssmKyXfPKvCivZ258JW8PlWm5IxKg toczQR7m1Q7Qt2yIM7mZnj1dqw== X-Google-Smtp-Source: APBJJlHqUeH1XUuot+AZNE6uBAlVN8Awfh8eCBLXAKtzbHs/lj9/Md8g/aUqbAQ/0eOK3aM6rVdfnQ== X-Received: by 2002:a17:902:8a88:b0:1bb:a7bc:37a4 with SMTP id p8-20020a1709028a8800b001bba7bc37a4mr3407360plo.24.1690436145769; Wed, 26 Jul 2023 22:35:45 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:45 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 27/42] clk: at91: clk-audio-pll: remove parent_names support Date: Thu, 27 Jul 2023 08:31:41 +0300 Message-Id: <20230727053156.13587-28-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-audio-pll. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-audio-pll.c | 21 ++++++--------------- drivers/clk/at91/dt-compat.c | 6 +++--- drivers/clk/at91/pmc.h | 6 +++--- drivers/clk/at91/sama5d2.c | 6 +++--- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/drivers/clk/at91/clk-audio-pll.c b/drivers/clk/at91/clk-audio-= pll.c index 7a13af95d628..fc08ca53bfad 100644 --- a/drivers/clk/at91/clk-audio-pll.c +++ b/drivers/clk/at91/clk-audio-pll.c @@ -450,7 +450,7 @@ static const struct clk_ops audio_pll_pmc_ops =3D { =20 struct clk_hw * __init at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct clk_audio_frac *frac_ck; struct clk_init_data init =3D {}; @@ -462,10 +462,7 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap= , const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_frac_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE; =20 @@ -483,7 +480,7 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap,= const char *name, =20 struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct clk_audio_pad *apad_ck; struct clk_init_data init =3D {}; @@ -495,10 +492,7 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap,= const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_pad_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; @@ -517,7 +511,7 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap, = const char *name, =20 struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct clk_audio_pmc *apmc_ck; struct clk_init_data init =3D {}; @@ -529,10 +523,7 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap,= const char *name, =20 init.name =3D name; init.ops =3D &audio_pll_pmc_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 044e1fc821e2..91bc2fada6ec 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -50,7 +50,7 @@ static void __init of_sama5d2_clk_audio_pll_frac_setup(st= ruct device_node *np) if (!parent_hw) return; =20 - hw =3D at91_clk_register_audio_pll_frac(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_audio_pll_frac(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 @@ -82,7 +82,7 @@ static void __init of_sama5d2_clk_audio_pll_pad_setup(str= uct device_node *np) if (!parent_hw) return; =20 - hw =3D at91_clk_register_audio_pll_pad(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_audio_pll_pad(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 @@ -114,7 +114,7 @@ static void __init of_sama5d2_clk_audio_pll_pmc_setup(s= truct device_node *np) if (!parent_hw) return; =20 - hw =3D at91_clk_register_audio_pll_pmc(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_audio_pll_pmc(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 6816e350d6d6..711b55a6b0ab 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -130,15 +130,15 @@ struct clk_hw *of_clk_hw_pmc_get(struct of_phandle_ar= gs *clkspec, void *data); =20 struct clk_hw * __init at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index cdb578059449..3920de445eca 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -233,17 +233,17 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) sama5d2_pmc->chws[PMC_PLLACK] =3D hw; =20 audio_fracck_hw =3D at91_clk_register_audio_pll_frac(regmap, "audiopll_fr= acck", - NULL, sama5d2_pmc->chws[PMC_MAIN]); + sama5d2_pmc->chws[PMC_MAIN]); if (IS_ERR(audio_fracck_hw)) goto err_free; =20 - hw =3D at91_clk_register_audio_pll_pad(regmap, "audiopll_padck", NULL, au= dio_fracck_hw); + hw =3D at91_clk_register_audio_pll_pad(regmap, "audiopll_padck", audio_fr= acck_hw); if (IS_ERR(hw)) goto err_free; =20 sama5d2_pmc->chws[PMC_AUDIOPINCK] =3D hw; =20 - hw =3D at91_clk_register_audio_pll_pmc(regmap, "audiopll_pmcck", NULL, au= dio_fracck_hw); + hw =3D at91_clk_register_audio_pll_pmc(regmap, "audiopll_pmcck", audio_fr= acck_hw); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE006C001DC for ; Thu, 27 Jul 2023 05:38:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232236AbjG0Fib (ORCPT ); Thu, 27 Jul 2023 01:38:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232283AbjG0FiB (ORCPT ); Thu, 27 Jul 2023 01:38:01 -0400 Received: from mail-oa1-x2c.google.com (mail-oa1-x2c.google.com [IPv6:2001:4860:4864:20::2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52B962D5F for ; Wed, 26 Jul 2023 22:37:12 -0700 (PDT) Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-1bba7717d3bso469779fac.1 for ; Wed, 26 Jul 2023 22:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436153; x=1691040953; 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=Xp28KzPE+ieFfhPUt9Jo6e3yDprwJgBDl/Tw7iUm9QY=; b=l/wz+kw1GJMRBj7tsp/sNDXv0czPU+bDH78cW2IpD0LbCvy5qy5joTEc9WIdlIY6Gu lFKHVnKW+Q5XNjpyLx6wSaIA6o2HFfv3AXsTThRRubOhxNWOvBy6wCEaXsMZ3cvK69Lq h/Q1XGjpLy6hJ0A2Unz0Hc7e2oPT9Qp+9yd5RBN2KxQk82BIt5BB/FLHUVJKWEWdfJnY N7wTns67f6gHWF83hOnmvr9weAGtquUqGSd6c4dq01r+ZJylJZcPXoouZ3FQxgNW0nmL 3ZocZsftwM8BMXRduAJn5W9c2sby7WUB8k8zHcLkEo9XxBWoNUqUO90p6Y9lSS7LKoZB FNiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436153; x=1691040953; 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=Xp28KzPE+ieFfhPUt9Jo6e3yDprwJgBDl/Tw7iUm9QY=; b=i/wvts9Piy9H93ThLf2IG42sSEliUlk7xdPWM4RFEgjzVI7N/G1HoOHnkfb2zIkfcq RqHuNNYIghUtmoJtSO+9yPx+mepJfkOvUlqrrTDRX8LekH9u+A96ZnBxMlTXgDCguhgX w+tp1I5boqHN5SoA6862XDN5ZC9B6Bp1ATvz7hNFnbIiGg+amn9C5XFyGr3i/at5SwHy o5qK17ClbWEisfyimab7rQES/zdVj43rRhla2J2hgRzDNcnZfKMmAu2az0RjsD9O26RC vGOSRjcQzy0H48PbvCaItY2ZUHC9iWPSNhNJ5tNEEd9sNeZF4QhHmlh4l6jgXrp58IGb 5zww== X-Gm-Message-State: ABy/qLaF7znDD/VFWDnPx+3+SnSoCo3LK6YYeFMemi7Di3SapNiw8ysM KthrqcAnj4a/CVNK16i7yWMvNA== X-Google-Smtp-Source: APBJJlGFr3EU/A5Eka8jw779q9ZR6uM8cgVvTe3C2t7dO4LjZxg11yMbDuHGcm0iPCelU8t20dYJdQ== X-Received: by 2002:a05:6871:68a:b0:1b7:6039:4c97 with SMTP id l10-20020a056871068a00b001b760394c97mr1923408oao.16.1690436152911; Wed, 26 Jul 2023 22:35:52 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:52 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 28/42] clk: at91: clk-generated: remove parent_names support Date: Thu, 27 Jul 2023 08:31:42 +0300 Message-Id: <20230727053156.13587-29-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-generated driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-generated.c | 10 +++------- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 3 +-- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama7g5.c | 2 +- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-genera= ted.c index 4b4edeecc889..042553c7118a 100644 --- a/drivers/clk/at91/clk-generated.c +++ b/drivers/clk/at91/clk-generated.c @@ -318,8 +318,7 @@ static void clk_generated_startup(struct clk_generated = *gck) struct clk_hw * __init at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, const struct clk_pcr_layout *layout, - const char *name, const char **parent_names, - struct clk_hw **parent_hws, + const char *name, struct clk_hw **parent_hws, u32 *mux_table, u8 num_parents, u8 id, const struct clk_range *range, int chg_pid) @@ -329,7 +328,7 @@ at91_clk_register_generated(struct regmap *regmap, spin= lock_t *lock, struct clk_hw *hw; int ret; =20 - if (!(parent_names || parent_hws)) + if (!parent_hws) return ERR_PTR(-ENOMEM); =20 gck =3D kzalloc(sizeof(*gck), GFP_KERNEL); @@ -338,10 +337,7 @@ at91_clk_register_generated(struct regmap *regmap, spi= nlock_t *lock, =20 init.name =3D name; init.ops =3D &generated_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE; if (chg_pid >=3D 0) diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 91bc2fada6ec..816a7ee353d6 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -198,7 +198,7 @@ static void __init of_sama5d2_clk_generated_setup(struc= t device_node *np) =20 hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &dt_pcr_layout, name, - NULL, parent_hws, NULL, + parent_hws, NULL, num_parents, id, &range, chg_pid); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 711b55a6b0ab..87ba2586d5e5 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -143,8 +143,7 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap, = const char *name, struct clk_hw * __init at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, const struct clk_pcr_layout *layout, - const char *name, const char **parent_names, - struct clk_hw **parent_hws, u32 *mux_table, + const char *name, struct clk_hw **parent_hws, u32 *mux_table, u8 num_parents, u8 id, const struct clk_range *range, int chg_pid); =20 diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index 930b4515a1dd..43997f686b87 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -363,7 +363,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &sam9x60_pcr_layout, sam9x60_gck[i].n, - NULL, parent_hws, NULL, 6, + parent_hws, NULL, 6, sam9x60_gck[i].id, &sam9x60_gck[i].r, INT_MIN); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 3920de445eca..2d4bf9e1a79c 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -371,7 +371,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_gck[i].n, - NULL, parent_hws, NULL, 6, + parent_hws, NULL, 6, sama5d2_gck[i].id, &sama5d2_gck[i].r, sama5d2_gck[i].chg_pid); diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index 16e458be8304..b2d27193741b 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1235,7 +1235,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) =20 hw =3D at91_clk_register_generated(regmap, &pmc_pcr_lock, &sama7g5_pcr_layout, - sama7g5_gck[i].n, NULL, + sama7g5_gck[i].n, parent_hws, mux_table, num_parents, sama7g5_gck[i].id, --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FF9EEB64DD for ; Thu, 27 Jul 2023 05:38:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232199AbjG0Fi0 (ORCPT ); Thu, 27 Jul 2023 01:38:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232173AbjG0Fh4 (ORCPT ); Thu, 27 Jul 2023 01:37:56 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0AC5730F0 for ; Wed, 26 Jul 2023 22:37:04 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1b89d47ffb6so3423605ad.2 for ; Wed, 26 Jul 2023 22:37:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436160; x=1691040960; 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=tZjA/S5rkAI45EIQ8pwCaKfyj6nPmHrCItt9RJLE9cc=; b=nTtP8b9CSgkFgg32JpTd5UHEzmEllvNl41ff0GI36YGsZVfI3unXLhJLIfWPqssdfD jdyh/9kZ7JDeSIlZYrP+ViHnPDab+yF29x9F+0BoSRprtm7GLcATD59n2LpAg5+fyX05 RAhZrJe6gy/RJ7pM+LD8SCXqw5xKJq4uiwmEqXvBPJ7zK5uoHuebdv5a0sLJl7oyf6YM MuPXrerqClkfQtsWkKFmtpoJ88AluPHl4mR09XuwWWu+Z+lidskXoYFVxW054tmzrVwc qFdeVFs5yZ55zdlhcnmPbfUN2gdQmRfuerF6raRQ9lQV5JlbgwjBQGzRKhVh43An3lY/ 9jow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436160; x=1691040960; 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=tZjA/S5rkAI45EIQ8pwCaKfyj6nPmHrCItt9RJLE9cc=; b=ISvEq1Gco0JwiLxs2e4W4QokL6PMvqf1iuiLquxHZ8EJecRCZ8WVWiFRdPE7HXiuta oxWu0i3RoJOazAUM97QF8y2pYag0H3+IJ0dCc8dm1LxiJTZVKEOyE7N7pAYrUMVkwaxO B5q9QMKnPF02SJNeK9lVduIrm4inQMtN5kyOGGoG2epsZUne942ybsxPjyHFm+aaXaFZ Qk6M8aGm7Mx9YMs3OGtlkhkU/VbZd0NTEmzlHq+0nwbf429XQFL1ADZCMOeqPqBqzjtS cW9vI9ZWjE0lVWHoTX2XUzezKAcFDy2eVa2MXggBMdrBvuFDivxW0/3/6wvHdbVfuXAG 3ftQ== X-Gm-Message-State: ABy/qLY2DyN/McwSlUb1ra13ZL9asJf3EwJGeuSdIqBE1XrT7ATiHg/9 kC76bBw70SW+5y+7PtPie+Vj/A== X-Google-Smtp-Source: APBJJlEnqTGNOQscpftBLsei9noqgRw7/LuMRVXVScuPebiJkYEppzbJfbM+vcPjAU02zFrFT8/1Pg== X-Received: by 2002:a17:902:db09:b0:1ba:fe63:6616 with SMTP id m9-20020a170902db0900b001bafe636616mr3831454plx.6.1690436160099; Wed, 26 Jul 2023 22:36:00 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:35:59 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 29/42] clk: at91: clk-h32mx: remove parent_names support Date: Thu, 27 Jul 2023 08:31:43 +0300 Message-Id: <20230727053156.13587-30-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-h32mx driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-h32mx.c | 11 +++-------- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c index d7cdade56454..0e139bf731ec 100644 --- a/drivers/clk/at91/clk-h32mx.c +++ b/drivers/clk/at91/clk-h32mx.c @@ -83,7 +83,7 @@ static const struct clk_ops h32mx_ops =3D { =20 struct clk_hw * __init at91_clk_register_h32mx(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct clk_sama5d4_h32mx *h32mxclk; struct clk_init_data init =3D {}; @@ -95,13 +95,8 @@ at91_clk_register_h32mx(struct regmap *regmap, const cha= r *name, =20 init.name =3D name; init.ops =3D &h32mx_ops; - if (parent_hw) { - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - init.num_parents =3D 1; - } else { - init.parent_names =3D parent_name ? &parent_name : NULL; - init.num_parents =3D parent_name ? 1 : 0; - } + init.parent_hws =3D parent_hw ? (const struct clk_hw **)&parent_hw : NULL; + init.num_parents =3D parent_hw ? 1 : 0; init.flags =3D CLK_SET_RATE_GATE; =20 h32mxclk->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 816a7ee353d6..058b65c2d88d 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -234,7 +234,7 @@ static void __init of_sama5d4_clk_h32mx_setup(struct de= vice_node *np) if (!parent_hw) return; =20 - hw =3D at91_clk_register_h32mx(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_h32mx(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 87ba2586d5e5..11f7ab4d1ad8 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -149,7 +149,7 @@ at91_clk_register_generated(struct regmap *regmap, spin= lock_t *lock, =20 struct clk_hw * __init at91_clk_register_h32mx(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 2d4bf9e1a79c..93c646e0b6ef 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -280,7 +280,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) =20 sama5d2_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", NULL, sama5d2_pmc->chws= [PMC_MCK]); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", sama5d2_pmc->chws[PMC_M= CK]); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index ac7565b26dce..b4375cb1c3f3 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -220,7 +220,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 sama5d4_pmc->chws[PMC_MCK] =3D hw; =20 - hw =3D at91_clk_register_h32mx(regmap, "h32mxck", NULL, sama5d4_pmc->chws= [PMC_MCK]); + hw =3D at91_clk_register_h32mx(regmap, "h32mxck", sama5d4_pmc->chws[PMC_M= CK]); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FB5EEB64DD for ; Thu, 27 Jul 2023 05:38:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232282AbjG0Fid (ORCPT ); Thu, 27 Jul 2023 01:38:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232330AbjG0FiE (ORCPT ); Thu, 27 Jul 2023 01:38:04 -0400 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69C8A2D4F for ; Wed, 26 Jul 2023 22:37:15 -0700 (PDT) Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-563dae89bc9so282184a12.2 for ; Wed, 26 Jul 2023 22:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436167; x=1691040967; 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=WeeIlCY0YkV9dl6D14N0gEidgFKUnfmPXMsUhAICJi0=; b=ccDxRKhV5iS27apESIGTH5S5TCn6nV4keOklEAis81F2zhY4N9inDuLRgxBE5iGomf M0bK11YSAQgCFbRKafhDBzlGQX0BvaNJYkD6BOnyHiZ/WMvvw3V4KcDjBrwXCFJaGFWx Xx1NdWp/31agRWMwF/Z+AhDx4fRgq38/9Jx+WJaUvb6gR5hJAe5MmTTOyCCdqKeqozpg 2vh1qSTVe7WumG6hJuoNMchDXuCSmFE8Slb8zUGW6JPmNQKPHtiz76OEnmcdTB0+M/0w ktvv0TRJpNio/k249dPGioypgnnd0RFh1H90yCDBkXt1XRIlnXzIvk98ehbvntY/N9mZ 7flA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436167; x=1691040967; 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=WeeIlCY0YkV9dl6D14N0gEidgFKUnfmPXMsUhAICJi0=; b=UBuwAqvuTsI9ErfvUvMfhgwhmxfJ2ow2R7dNW5L6egAPtJHZpesvqcILlV8e1R3yQm Stf7Ipj2524VBT5g2Hxb51m72oKqg3jOrevI2DcYd0GKnzSMI2b/sEfP9zMbw1rGcHr7 WC4anKMQkA5I9tG9GrPqe7ruGuOBKP1jqEpRu6ZFrv1haU7Ld7jXdffrkA7I6jQD22/J KAtEPGYSGtstBSpOGbEYX73Pz241K4SRfIJZXz+OYz1LmuxKeTPSAL5ZumueM2FDGT0F gu8WDJqWg2YFAYqCr3HqthTI0YOaJkz0vogzLqqNVTNilgp4toG86SrdPErXKXmY1Xn6 FySQ== X-Gm-Message-State: ABy/qLafzfUId0sYMSDzkuZhBovFD7iToRSqrSKgHgKk64awr6vfmpyU sAWjAI5efmTDWmh984OQQf6s47o8Pgzns0OZjNFAYO5o X-Google-Smtp-Source: APBJJlF/XwQZpd1LX1Lt4eTiYkh6jAVDh1H64Ef5bGckyVA4hPgK35Lo58LEqcGOZDq2Sh17vE+m1w== X-Received: by 2002:a17:902:e5c4:b0:1bb:c87d:756d with SMTP id u4-20020a170902e5c400b001bbc87d756dmr4130989plf.42.1690436167186; Wed, 26 Jul 2023 22:36:07 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:06 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 30/42] clk: at91: clk-i2s-mux: remove parent_names support Date: Thu, 27 Jul 2023 08:31:44 +0300 Message-Id: <20230727053156.13587-31-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-i2s-mux driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-i2s-mux.c | 8 ++------ drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 3 +-- drivers/clk/at91/sama5d2.c | 4 ++-- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/clk/at91/clk-i2s-mux.c b/drivers/clk/at91/clk-i2s-mux.c index f1981b8ee18d..ea84e8f5becd 100644 --- a/drivers/clk/at91/clk-i2s-mux.c +++ b/drivers/clk/at91/clk-i2s-mux.c @@ -50,8 +50,7 @@ static const struct clk_ops clk_i2s_mux_ops =3D { =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, - const char * const *parent_names, struct clk_hw **parent_hws, - unsigned int num_parents, u8 bus_id) + struct clk_hw **parent_hws, unsigned int num_parents, u8 bus_id) { struct clk_init_data init =3D {}; struct clk_i2s_mux *i2s_ck; @@ -63,10 +62,7 @@ at91_clk_i2s_mux_register(struct regmap *regmap, const c= har *name, =20 init.name =3D name; init.ops =3D &clk_i2s_mux_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; =20 i2s_ck->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 058b65c2d88d..7ab116a6e701 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -279,7 +279,7 @@ static void __init of_sama5d2_clk_i2s_mux_setup(struct = device_node *np) continue; =20 hw =3D at91_clk_i2s_mux_register(regmap_sfr, i2s_mux_np->name, - NULL, parent_hws, 2, bus_id); + parent_hws, 2, bus_id); if (IS_ERR(hw)) continue; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 11f7ab4d1ad8..07f372abcfd0 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -153,8 +153,7 @@ at91_clk_register_h32mx(struct regmap *regmap, const ch= ar *name, =20 struct clk_hw * __init at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, - const char * const *parent_names, struct clk_hw **parent_hws, - unsigned int num_parents, u8 bus_id); + struct clk_hw **parent_hws, unsigned int num_parents, u8 bus_id); =20 struct clk_hw * __init at91_clk_register_main_rc_osc(struct regmap *regmap, const char *name, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 93c646e0b6ef..17a40cedd7fb 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -385,7 +385,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) parent_hws[0] =3D sama5d2_pmc->phws[54]; /* i2s0_clk */ parent_hws[1] =3D sama5d2_pmc->phws[54]; /* i2s0_gclk */ hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s0_muxclk", - NULL, parent_hws, 2, 0); + parent_hws, 2, 0); if (IS_ERR(hw)) goto err_free; =20 @@ -394,7 +394,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) parent_hws[0] =3D sama5d2_pmc->phws[55]; /* i2s1_clk */ parent_hws[1] =3D sama5d2_pmc->ghws[55]; /* i2s1_gclk */ hw =3D at91_clk_i2s_mux_register(regmap_sfr, "i2s1_muxclk", - NULL, parent_hws, 2, 1); + parent_hws, 2, 1); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39D8DEB64DD for ; Thu, 27 Jul 2023 05:38:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229919AbjG0Fik (ORCPT ); Thu, 27 Jul 2023 01:38:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231698AbjG0FiJ (ORCPT ); Thu, 27 Jul 2023 01:38:09 -0400 Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com [IPv6:2607:f8b0:4864:20::731]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D987C3A8C for ; Wed, 26 Jul 2023 22:37:19 -0700 (PDT) Received: by mail-qk1-x731.google.com with SMTP id af79cd13be357-7658430eb5dso55871585a.2 for ; Wed, 26 Jul 2023 22:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436174; x=1691040974; 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=LPKRD6M8sYpV7bnQLsbqFVgQafgsIsDaV98IpKMiI6g=; b=lYVAGJkyuE0KiNJzacX0O2CCrD7GP0MoLr4j0DgwcYwPphuk/mgM6ViG3oO5Qy+2Z4 b6x00dJNZ80Ge3t0xPnGMR8Fw2x1NnC3Kgk4JC4aHuf57VyeaotqAfGtSZGA3SJoeNyQ VNq9U3bd6PzNtE5x572SeoDYaT6MLqNhkuzSAVSKsVNFjGzs3GR5gFZygOfB4eIn/IPZ c7jWQ8YPYhrTEA/P1H24hhDVvuEHzGAzvkrO0IR3HkytpXDJSTK8chdpOXYrGaeM+Q+i PmbCkiMSgsRAatgD4oxjDj+xYb8KECWI9fpmZNNdVXkMEO6ZsOFDcdEZTcaM35+SCY0S M1CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436174; x=1691040974; 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=LPKRD6M8sYpV7bnQLsbqFVgQafgsIsDaV98IpKMiI6g=; b=bi1YsgTq73gRW1Q2aEkqHhWtFCF1buKhWiargmVvNna7M5kCXIOMqatvyDeNbuqLq9 25Ww5fPu2P0y6HCPftdDgwadohfyAzV7PTJwenkssSoOcsAfZE9PBzIXOH1i8IfEdf7Z BdC/2s7EflkRK7eNXvAYEmResgR2WhmvRpaGCxURm1GVo28tMEd6RyoaPvSPGlFFqnqt gektkK5SRIcH8LoShShDQlmh3TcrQHGtSwuv6jioBcF9zcM+bZCt0F/fDiwJ6Pm3Mqx4 1S1+PSWEuVuuwNwZoduV2ZAgiVD+xd9aTDUocYq4bvPEJe3/oYMMVx+reTxygjLw+qIr V0Gw== X-Gm-Message-State: ABy/qLYiaF8B99LCaEzV/UivxOmeJ/wgJEoOZinhVFCgj71sp3FTPwFp +0u4NsXsvXkvp6n+7Ob/g9Ts4g== X-Google-Smtp-Source: APBJJlEtKCCsCmYuKhGONio+jtko2qgCcabGtqrNTwQxSOALvyhmFcHjdkIhgyVQk6bAG4+Fvnbrfw== X-Received: by 2002:a05:620a:2894:b0:765:a9d7:2ca2 with SMTP id j20-20020a05620a289400b00765a9d72ca2mr4698758qkp.48.1690436174497; Wed, 26 Jul 2023 22:36:14 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:14 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 31/42] clk: at91: clk-main: remove parent_names support Date: Thu, 27 Jul 2023 08:31:45 +0300 Message-Id: <20230727053156.13587-32-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-main driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 4 ++-- drivers/clk/at91/at91sam9260.c | 4 ++-- drivers/clk/at91/at91sam9g45.c | 4 ++-- drivers/clk/at91/at91sam9n12.c | 4 ++-- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 4 ++-- drivers/clk/at91/clk-main.c | 24 ++++++------------------ drivers/clk/at91/dt-compat.c | 7 +++---- drivers/clk/at91/pmc.h | 3 --- drivers/clk/at91/sam9x60.c | 5 ++--- drivers/clk/at91/sama5d2.c | 4 ++-- drivers/clk/at91/sama5d3.c | 4 ++-- drivers/clk/at91/sama5d4.c | 4 ++-- drivers/clk/at91/sama7g5.c | 4 ++-- 14 files changed, 30 insertions(+), 47 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index e0418ab5d65c..441b744eed5e 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -115,12 +115,12 @@ static void __init at91rm9200_pmc_setup(struct device= _node *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, main_osc_hw); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", main_osc_hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 1ef7c02bee63..709f01c4dab9 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -369,12 +369,12 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &parent_data, + hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_data, bypass); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, hw); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 868897fad3f0..535f3af23560 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -130,12 +130,12 @@ static void __init at91sam9g45_pmc_setup(struct devic= e_node *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &parent_data, + hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_data, bypass); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, hw); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 01d943ebb680..9327129d574e 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -154,14 +154,14 @@ static void __init at91sam9n12_pmc_setup(struct devic= e_node *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 29f24a5b1fef..67ff1132ef0d 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -98,7 +98,7 @@ static void __init at91sam9rl_pmc_setup(struct device_nod= e *np) if (!at91sam9rl_pmc) return; =20 - hw =3D at91_clk_register_rm9200_main(regmap, "mainck", NULL, main_xtal_hw= ); + hw =3D at91_clk_register_rm9200_main(regmap, "mainck", main_xtal_hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 8b2747091b03..7c08a5bdb974 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -176,14 +176,14 @@ static void __init at91sam9x5_pmc_setup(struct device= _node *np, =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c index 9b462becc693..e4ebc9f88e46 100644 --- a/drivers/clk/at91/clk-main.c +++ b/drivers/clk/at91/clk-main.c @@ -151,7 +151,6 @@ static const struct clk_ops main_osc_ops =3D { struct clk_hw * __init at91_clk_register_main_osc(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_parent_data *parent_data, bool bypass) { @@ -160,7 +159,7 @@ at91_clk_register_main_osc(struct regmap *regmap, struct clk_hw *hw; int ret; =20 - if (!name || !(parent_name || parent_data)) + if (!name || !parent_data) return ERR_PTR(-EINVAL); =20 osc =3D kzalloc(sizeof(*osc), GFP_KERNEL); @@ -169,10 +168,7 @@ at91_clk_register_main_osc(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &main_osc_ops; - if (parent_data) - init.parent_data =3D (const struct clk_parent_data *)parent_data; - else - init.parent_names =3D &parent_name; + init.parent_data =3D (const struct clk_parent_data *)parent_data; init.num_parents =3D 1; init.flags =3D CLK_IGNORE_UNUSED; =20 @@ -401,7 +397,6 @@ static const struct clk_ops rm9200_main_ops =3D { struct clk_hw * __init at91_clk_register_rm9200_main(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) { struct clk_rm9200_main *clkmain; @@ -412,7 +407,7 @@ at91_clk_register_rm9200_main(struct regmap *regmap, if (!name) return ERR_PTR(-EINVAL); =20 - if (!(parent_name || parent_hw)) + if (!parent_hw) return ERR_PTR(-EINVAL); =20 clkmain =3D kzalloc(sizeof(*clkmain), GFP_KERNEL); @@ -421,10 +416,7 @@ at91_clk_register_rm9200_main(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &rm9200_main_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D 0; =20 @@ -551,7 +543,6 @@ static const struct clk_ops sam9x5_main_ops =3D { struct clk_hw * __init at91_clk_register_sam9x5_main(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, int num_parents) { @@ -564,7 +555,7 @@ at91_clk_register_sam9x5_main(struct regmap *regmap, if (!name) return ERR_PTR(-EINVAL); =20 - if (!(parent_hws || parent_names) || !num_parents) + if (!parent_hws || !num_parents) return ERR_PTR(-EINVAL); =20 clkmain =3D kzalloc(sizeof(*clkmain), GFP_KERNEL); @@ -573,10 +564,7 @@ at91_clk_register_sam9x5_main(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &sam9x5_main_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_PARENT_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 7ab116a6e701..2bd3ad0a11fd 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -314,7 +314,7 @@ static void __init of_at91rm9200_clk_main_osc_setup(str= uct device_node *np) =20 parent_data.name =3D parent_name; parent_data.fw_name =3D parent_name; - hw =3D at91_clk_register_main_osc(regmap, name, NULL, &parent_data, bypas= s); + hw =3D at91_clk_register_main_osc(regmap, name, &parent_data, bypass); if (IS_ERR(hw)) return; =20 @@ -375,7 +375,7 @@ static void __init of_at91rm9200_clk_main_setup(struct = device_node *np) if (!parent_hw) return; =20 - hw =3D at91_clk_register_rm9200_main(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_rm9200_main(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 @@ -414,8 +414,7 @@ static void __init of_at91sam9x5_clk_main_setup(struct = device_node *np) =20 of_property_read_string(np, "clock-output-names", &name); =20 - hw =3D at91_clk_register_sam9x5_main(regmap, name, NULL, parent_hws, - num_parents); + hw =3D at91_clk_register_sam9x5_main(regmap, name, parent_hws, num_parent= s); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 07f372abcfd0..0b4de5648944 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -160,16 +160,13 @@ at91_clk_register_main_rc_osc(struct regmap *regmap, = const char *name, u32 frequency, u32 accuracy); struct clk_hw * __init at91_clk_register_main_osc(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_parent_data *parent_data, bool bypass); struct clk_hw * __init at91_clk_register_rm9200_main(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); struct clk_hw * __init at91_clk_register_sam9x5_main(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, int num_parents); =20 struct clk_hw * __init diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index 43997f686b87..dbf9841d341f 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -225,14 +225,13 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, - &parent_data, 0); + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, 0); if (IS_ERR(hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 17a40cedd7fb..eda45c5b75f9 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -209,14 +209,14 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index e1c1ba907e3a..1a149e428971 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -157,14 +157,14 @@ static void __init sama5d3_pmc_setup(struct device_no= de *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, paren= t_hws, 2); + mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws,= 2); if (IS_ERR(mainck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index b4375cb1c3f3..71fd5714ce31 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -172,14 +172,14 @@ static void __init sama5d4_pmc_setup(struct device_no= de *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, &par= ent_data, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_da= ta, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, paren= t_hws, 2); + mainck_hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws,= 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index b2d27193741b..a6a79d1450ec 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1037,14 +1037,14 @@ static void __init sama7g5_pmc_setup(struct device_= node *np) =20 parent_data.name =3D main_xtal_name; parent_data.fw_name =3D main_xtal_name; - main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", NULL, + main_osc_hw =3D at91_clk_register_main_osc(regmap, "main_osc", &parent_data, bypass); if (IS_ERR(main_osc_hw)) goto err_free; =20 parent_hws[0] =3D main_rc_hw; parent_hws[1] =3D main_osc_hw; - hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9x5_main(regmap, "mainck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 355DFC001E0 for ; Thu, 27 Jul 2023 05:38:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232329AbjG0Fiy (ORCPT ); Thu, 27 Jul 2023 01:38:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231960AbjG0FiP (ORCPT ); Thu, 27 Jul 2023 01:38:15 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4A163C2A for ; Wed, 26 Jul 2023 22:37:29 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1b8c81e36c0so3590955ad.0 for ; Wed, 26 Jul 2023 22:37:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436181; x=1691040981; 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=4OtWdYk/NDUHZT7tkNeY9e4iyBez1HDTbhZxXvmkFCQ=; b=QD2NBMhcRdYlRqIaz5M+38+QVNqIRmBZ0lnr4SBGwDgdbRbf4LKlXyS0BgCs/Nl+n7 jphVTSvTeDMjl40S9Np44r92m7n/69jucWK10YfeJfyoIYJ8xrvlN+tiqUikcehNCzL6 zNpShJvyc9lamns5KnYqOKrI/40ke/aLuq55F7pvxoBsST3F5Ffz7ELx7WJfPx5aaMs/ hUdl5o/tcVWa+BRYhQ19dZcNXUdH+jD6y234V3puOYK4ZR7lWvuCN8NfpYGeRWcX6bdk BZ/ieMr6/29F1C2gKpSD0cE3GYaeH/HZpWYBZ+9v/YcSrjdgkChor5HtLNgNB1HP80J4 UX1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436181; x=1691040981; 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=4OtWdYk/NDUHZT7tkNeY9e4iyBez1HDTbhZxXvmkFCQ=; b=I651JkSwNWBNf7QDHFaCg/2/W5suAmSE/eqYtYgbSvT3ynlsPOmV7x4zXJr0HzLOOY aTdzWp1AN5m96COCQo3RrLV5bxWslTBKAMPFP4xpepc/K73il833LIpPX3HOjB3sJTVH du/xd9cKlCsbopOmtJ8Q3kDoFGdLiuEjADlZsV7QuR4XQL+QVdsupuzp8631ntVG0r7b SlZ2nsFq3QdwgtzeRZOAKRAIZVctCNHI0WV91mqHK6A1VuJZsophdoVSWRtJyu9k/xDx ZaEtQret3FQe4rGKq8crBAj9uLXtS5GaczQw2FYRi+nlcMzwzeLylHkQzPeeEa6aoAsg +pQA== X-Gm-Message-State: ABy/qLZQg9YxhwNpx6c/xzGkTsPc/Yy5yGOXJ2oW0SF3CDOSwDMyPhNh MVTv6UP13qXjrDhf8y/zz4VTzQ== X-Google-Smtp-Source: APBJJlFyN5WzNPTb08+mhYuBXBaQ2MgG4ob8LHeDLIDS+aMaWBB100k5LIj1rMlOoz9pNp5M0ooS4w== X-Received: by 2002:a17:902:da82:b0:1bb:c7bc:ceb4 with SMTP id j2-20020a170902da8200b001bbc7bcceb4mr4198969plx.60.1690436181683; Wed, 26 Jul 2023 22:36:21 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:21 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 32/42] clk: at91: clk-master: remove parent_names support Date: Thu, 27 Jul 2023 08:31:46 +0300 Message-Id: <20230727053156.13587-33-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-master driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 4 ++-- drivers/clk/at91/at91sam9260.c | 5 ++--- drivers/clk/at91/at91sam9g45.c | 5 ++--- drivers/clk/at91/at91sam9n12.c | 5 ++--- drivers/clk/at91/at91sam9rl.c | 5 ++--- drivers/clk/at91/at91sam9x5.c | 4 ++-- drivers/clk/at91/clk-master.c | 23 ++++++----------------- drivers/clk/at91/dt-compat.c | 4 ++-- drivers/clk/at91/pmc.h | 6 ++---- drivers/clk/at91/sam9x60.c | 4 ++-- drivers/clk/at91/sama5d2.c | 4 ++-- drivers/clk/at91/sama5d3.c | 5 ++--- drivers/clk/at91/sama5d4.c | 4 ++-- drivers/clk/at91/sama7g5.c | 5 ++--- 14 files changed, 32 insertions(+), 51 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 441b744eed5e..9e32189ac374 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -147,14 +147,14 @@ static void __init at91rm9200_pmc_setup(struct device= _node *np) parent_hws[2] =3D at91rm9200_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91rm9200_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91rm9200_master_layout, &rm9200_mck_characteristics, &rm9200_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91rm9200_master_layout, &rm9200_mck_characteristics, &rm9200_mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 709f01c4dab9..538bbecdbdeb 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -419,15 +419,14 @@ static void __init at91sam926x_pmc_setup(struct devic= e_node *np, parent_hws[2] =3D at91sam9260_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91sam9260_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91rm9200_master_layout, data->mck_characteristics, &at91sam9260_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91rm9200_master_layout, data->mck_characteristics, &at91sam9260_mck_lock, diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 535f3af23560..fbd4d68dae56 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -163,15 +163,14 @@ static void __init at91sam9g45_pmc_setup(struct devic= e_node *np) parent_hws[2] =3D at91sam9g45_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91sam9g45_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91rm9200_master_layout, &mck_characteristics, &at91sam9g45_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91rm9200_master_layout, &mck_characteristics, &at91sam9g45_mck_lock, diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 9327129d574e..e9b266d1de91 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -190,15 +190,14 @@ static void __init at91sam9n12_pmc_setup(struct devic= e_node *np) parent_hws[2] =3D at91sam9n12_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91sam9n12_pmc->chws[PMC_PLLBCK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &at91sam9n12_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91sam9x5_master_layout, &mck_characteristics, &at91sam9n12_mck_lock, diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 67ff1132ef0d..1e027fa938b6 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -123,15 +123,14 @@ static void __init at91sam9rl_pmc_setup(struct device= _node *np) parent_hws[2] =3D at91sam9rl_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91sam9rl_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91rm9200_master_layout, &sam9rl_mck_characteristics, &sam9rl_mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91rm9200_master_layout, &sam9rl_mck_characteristics, &sam9rl_mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 7c08a5bdb974..27c41fc7b097 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -211,13 +211,13 @@ static void __init at91sam9x5_pmc_setup(struct device= _node *np, parent_hws[2] =3D at91sam9x5_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D at91sam9x5_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c index 15c46489ba85..1ee19c670213 100644 --- a/drivers/clk/at91/clk-master.c +++ b/drivers/clk/at91/clk-master.c @@ -472,7 +472,6 @@ static const struct clk_ops master_pres_ops =3D { static struct clk_hw * __init at91_clk_register_master_internal(struct regmap *regmap, const char *name, int num_parents, - const char **parent_names, struct clk_hw **parent_hws, const struct clk_master_layout *layout, const struct clk_master_characteristics *characteristics, @@ -485,7 +484,7 @@ at91_clk_register_master_internal(struct regmap *regmap, unsigned long irqflags; int ret; =20 - if (!name || !num_parents || !(parent_names || parent_hws) || !lock) + if (!name || !num_parents || !parent_hws || !lock) return ERR_PTR(-EINVAL); =20 master =3D kzalloc(sizeof(*master), GFP_KERNEL); @@ -494,10 +493,7 @@ at91_clk_register_master_internal(struct regmap *regma= p, =20 init.name =3D name; init.ops =3D ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D flags; =20 @@ -530,22 +526,20 @@ at91_clk_register_master_internal(struct regmap *regm= ap, struct clk_hw * __init at91_clk_register_master_pres(struct regmap *regmap, const char *name, int num_parents, - const char **parent_names, struct clk_hw **parent_hws, const struct clk_master_layout *layout, const struct clk_master_characteristics *characteristics, spinlock_t *lock) { return at91_clk_register_master_internal(regmap, name, num_parents, - parent_names, parent_hws, layout, + parent_hws, layout, characteristics, &master_pres_ops, lock, CLK_SET_RATE_GATE); } =20 struct clk_hw * __init -at91_clk_register_master_div(struct regmap *regmap, - const char *name, const char *parent_name, +at91_clk_register_master_div(struct regmap *regmap, const char *name, struct clk_hw *parent_hw, const struct clk_master_layout *layout, const struct clk_master_characteristics *characteristics, spinlock_t *lock, u32 flags, u32 safe_div) @@ -559,7 +553,6 @@ at91_clk_register_master_div(struct regmap *regmap, ops =3D &master_div_ops_chg; =20 hw =3D at91_clk_register_master_internal(regmap, name, 1, - parent_name ? &parent_name : NULL, parent_hw ? &parent_hw : NULL, layout, characteristics, ops, lock, flags); @@ -811,7 +804,6 @@ static const struct clk_ops sama7g5_master_ops =3D { struct clk_hw * __init at91_clk_sama7g5_register_master(struct regmap *regmap, const char *name, int num_parents, - const char **parent_names, struct clk_hw **parent_hws, u32 *mux_table, spinlock_t *lock, u8 id, @@ -824,7 +816,7 @@ at91_clk_sama7g5_register_master(struct regmap *regmap, unsigned int val; int ret; =20 - if (!name || !num_parents || !(parent_names || parent_hws) || !mux_table = || + if (!name || !num_parents || !parent_hws || !mux_table || !lock || id > MASTER_MAX_ID) return ERR_PTR(-EINVAL); =20 @@ -834,10 +826,7 @@ at91_clk_sama7g5_register_master(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &sama7g5_master_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE; if (chg_pid >=3D 0) diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 2bd3ad0a11fd..590d0f115647 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -487,12 +487,12 @@ of_at91_clk_master_setup(struct device_node *np, return; =20 hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", num_parents, - NULL, parent_hws, layout, + parent_hws, layout, characteristics, &mck_lock); if (IS_ERR(hw)) goto out_free_characteristics; =20 - hw =3D at91_clk_register_master_div(regmap, name, NULL, hw, + hw =3D at91_clk_register_master_div(regmap, name, hw, layout, characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 0b4de5648944..c26dcbc8c475 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -171,15 +171,14 @@ at91_clk_register_sam9x5_main(struct regmap *regmap, = const char *name, =20 struct clk_hw * __init at91_clk_register_master_pres(struct regmap *regmap, const char *name, - int num_parents, const char **parent_names, - struct clk_hw **parent_hws, + int num_parents, struct clk_hw **parent_hws, const struct clk_master_layout *layout, const struct clk_master_characteristics *characteristics, spinlock_t *lock); =20 struct clk_hw * __init at91_clk_register_master_div(struct regmap *regmap, const char *name, - const char *parent_names, struct clk_hw *parent_hw, + struct clk_hw *parent_hw, const struct clk_master_layout *layout, const struct clk_master_characteristics *characteristics, spinlock_t *lock, u32 flags, u32 safe_div); @@ -187,7 +186,6 @@ at91_clk_register_master_div(struct regmap *regmap, con= st char *name, struct clk_hw * __init at91_clk_sama7g5_register_master(struct regmap *regmap, const char *name, int num_parents, - const char **parent_names, struct clk_hw **parent_hws, u32 *mux_table, spinlock_t *lock, u8 id, bool critical, int chg_pid); diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index dbf9841d341f..ce54684e4684 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -285,13 +285,13 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) parent_hws[1] =3D sam9x60_pmc->chws[PMC_MAIN]; parent_hws[2] =3D sam9x60_pmc->chws[PMC_PLLACK]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 3, - NULL, parent_hws, &sam9x60_master_layout, + parent_hws, &sam9x60_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, &sam9x60_master_layout, + hw, &sam9x60_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index eda45c5b75f9..a25184ea7aef 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -265,13 +265,13 @@ static void __init sama5d2_pmc_setup(struct device_no= de *np) parent_hws[2] =3D sama5d2_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D sama5d2_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 1a149e428971..5c0ef9416370 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -190,14 +190,13 @@ static void __init sama5d3_pmc_setup(struct device_no= de *np) parent_hws[2] =3D sama5d3_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D sama5d3_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", - NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 71fd5714ce31..88841d7d5477 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -205,13 +205,13 @@ static void __init sama5d4_pmc_setup(struct device_no= de *np) parent_hws[2] =3D sama5d4_pmc->chws[PMC_PLLACK]; parent_hws[3] =3D sama5d4_pmc->chws[PMC_UTMI]; hw =3D at91_clk_register_master_pres(regmap, "masterck_pres", 4, - NULL, parent_hws, + parent_hws, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock); if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_master_div(regmap, "masterck_div", NULL, hw, + hw =3D at91_clk_register_master_div(regmap, "masterck_div", hw, &at91sam9x5_master_layout, &mck_characteristics, &mck_lock, CLK_SET_RATE_GATE, 0); diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index a6a79d1450ec..d18b2b7885e0 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1103,8 +1103,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) } } =20 - hw =3D at91_clk_register_master_div(regmap, "mck0", NULL, - sama7g5_plls[PLL_ID_CPU][1].hw, + hw =3D at91_clk_register_master_div(regmap, "mck0", sama7g5_plls[PLL_ID_C= PU][1].hw, &mck0_layout, &mck0_characteristics, &pmc_mck0_lock, CLK_GET_RATE_NOCACHE, 5); if (IS_ERR(hw)) @@ -1138,7 +1137,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) sama7g5_mckx[i].ep_count); =20 hw =3D at91_clk_sama7g5_register_master(regmap, sama7g5_mckx[i].n, - num_parents, NULL, parent_hws, mux_table, + num_parents, parent_hws, mux_table, &pmc_mckX_lock, sama7g5_mckx[i].id, sama7g5_mckx[i].c, sama7g5_mckx[i].ep_chg_id); --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B9DCEB64DD for ; Thu, 27 Jul 2023 05:39:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232302AbjG0FjQ (ORCPT ); Thu, 27 Jul 2023 01:39:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232285AbjG0Fie (ORCPT ); Thu, 27 Jul 2023 01:38:34 -0400 Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com [IPv6:2607:f8b0:4864:20::230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43EB7A0 for ; Wed, 26 Jul 2023 22:37:41 -0700 (PDT) Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-3a425ef874dso555029b6e.0 for ; Wed, 26 Jul 2023 22:37:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436189; x=1691040989; 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=aHiZnC//dKhKHVPO0qNmCO5eqfKdG5DqSJMZ1aUfAvU=; b=XTzAZjbSrpWj9+zWSZTLphmvyX0gW2ZlfsxwTUDO8CbQmuQytLUbOi6j/FcxQFoZfZ XyA1sEfCbCquleeQFsOB0qBYMTvkeAddSMeczxr3pfyBkXyNEAUNRq42Tm/D38S0pPgQ OWWkqozWo7HPgwTOuOTPadQHEXKmb+0s5Dvs8bq7A71n1nDdUuoMAzVMfC2EQ2HWLAtR ShlLjVEhAoIjaXHCxBo57JaGB2GWIDkDZZcBFe+jPSPi2Y95lgq2p08LlZrIU1BqwUOS sCpLP3fA7ufQCjAWVR30Lzibvq4VClY/3vtTKaVDXQUbdiv6E8u05m/lohnmzLqlFFvr CcZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436189; x=1691040989; 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=aHiZnC//dKhKHVPO0qNmCO5eqfKdG5DqSJMZ1aUfAvU=; b=JoClIazdt/qZllHWB91tXg4Qf2A/FGamC9f53D80V5fbkTGAzjXlpH8ZUgctE81KM3 n8C/2hmKw2ezRnBXs2qThlRMBNDwvoCf/wNbgz0Ec4l8G+kexYoR8zgks5mMVCUWl/+D EAVNUpLeihauhy+J7JD+mEC3GZGMQLQrGUX+P+kKivyXEw5Z5k3/L+NWN/d+HieHHBkZ pvysX28XzPAiCcwrdH9uU2l4lU9b51r5T+FAesL+vjhQInFpnOwv5cNP8GdqgW3aEgkP AD9efv2+G93yC6GwLKsczxIk1GuD38DAJWA59BUvKZ+uhTeYayy5FybA4WoXCCGPa2lL G1bQ== X-Gm-Message-State: ABy/qLYE+n97sDvvLLwykhPiqd9rHMq55BwLrfHg0bAyFoHGVXhHO6k/ ogLHHHoLnUQGqNRyayN8Txf9gg== X-Google-Smtp-Source: APBJJlGuQ00Fuq1b7Mx/AmGyo5y38uf06QC6VXRVfFWX5zi5TqxvXLHpcZKB5MuFsluVWmuXDtvvjQ== X-Received: by 2002:a05:6808:428e:b0:3a4:8ac7:3407 with SMTP id dq14-20020a056808428e00b003a48ac73407mr1803669oib.42.1690436188765; Wed, 26 Jul 2023 22:36:28 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:28 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 33/42] clk: at91: clk-peripheral: remove parent_names support Date: Thu, 27 Jul 2023 08:31:47 +0300 Message-Id: <20230727053156.13587-34-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-peripheral driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 2 +- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 4 ++-- drivers/clk/at91/clk-peripheral.c | 20 ++++++-------------- drivers/clk/at91/dt-compat.c | 3 +-- drivers/clk/at91/pmc.h | 6 ++---- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 4 ++-- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 4 ++-- drivers/clk/at91/sama7g5.c | 1 - 14 files changed, 22 insertions(+), 34 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 9e32189ac374..7cb90d71d0ce 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -207,7 +207,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) for (i =3D 0; i < ARRAY_SIZE(at91rm9200_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91rm9200_periphck[i].n, - NULL, at91rm9200_pmc->chws[PMC_MCK], + at91rm9200_pmc->chws[PMC_MCK], at91rm9200_periphck[i].id); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 538bbecdbdeb..9839bd4586cd 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -486,7 +486,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, for (i =3D 0; i < data->num_pck; i++) { hw =3D at91_clk_register_peripheral(regmap, data->pck[i].n, - NULL, at91sam9260_pmc->chws[PMC_MCK], + at91sam9260_pmc->chws[PMC_MCK], data->pck[i].id); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index fbd4d68dae56..e7f2173ff6c1 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -225,7 +225,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) for (i =3D 0; i < ARRAY_SIZE(at91sam9g45_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91sam9g45_periphck[i].n, - NULL, at91sam9g45_pmc->chws[PMC_MCK], + at91sam9g45_pmc->chws[PMC_MCK], at91sam9g45_periphck[i].id); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index e9b266d1de91..2d26c202b257 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -254,7 +254,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9n12_pcr_layout, at91sam9n12_periphck[i].n, - NULL, at91sam9n12_pmc->chws[PMC_MCK], + at91sam9n12_pmc->chws[PMC_MCK], at91sam9n12_periphck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 1e027fa938b6..c7fc4bcf4e5b 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -175,7 +175,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) for (i =3D 0; i < ARRAY_SIZE(at91sam9rl_periphck); i++) { hw =3D at91_clk_register_peripheral(regmap, at91sam9rl_periphck[i].n, - NULL, at91sam9rl_pmc->chws[PMC_MCK], + at91sam9rl_pmc->chws[PMC_MCK], at91sam9rl_periphck[i].id); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 27c41fc7b097..8da2732a73fa 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -287,7 +287,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9x5_pcr_layout, at91sam9x5_periphck[i].n, - NULL, at91sam9x5_pmc->chws[PMC_MCK], + at91sam9x5_pmc->chws[PMC_MCK], at91sam9x5_periphck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) @@ -300,7 +300,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &at91sam9x5_pcr_layout, extra_pcks[i].n, - NULL, at91sam9x5_pmc->chws[PMC_MCK], + at91sam9x5_pmc->chws[PMC_MCK], extra_pcks[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-perip= heral.c index c173a44c800a..73c90fa535e0 100644 --- a/drivers/clk/at91/clk-peripheral.c +++ b/drivers/clk/at91/clk-peripheral.c @@ -97,15 +97,14 @@ static const struct clk_ops peripheral_ops =3D { =20 struct clk_hw * __init at91_clk_register_peripheral(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, - u32 id) + struct clk_hw *parent_hw, u32 id) { struct clk_peripheral *periph; struct clk_init_data init =3D {}; struct clk_hw *hw; int ret; =20 - if (!name || !(parent_name || parent_hw) || id > PERIPHERAL_ID_MAX) + if (!name || !parent_hw || id > PERIPHERAL_ID_MAX) return ERR_PTR(-EINVAL); =20 periph =3D kzalloc(sizeof(*periph), GFP_KERNEL); @@ -114,10 +113,7 @@ at91_clk_register_peripheral(struct regmap *regmap, co= nst char *name, =20 init.name =3D name; init.ops =3D &peripheral_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D 0; =20 @@ -447,8 +443,7 @@ static const struct clk_ops sam9x5_peripheral_chg_ops = =3D { struct clk_hw * __init at91_clk_register_sam9x5_peripheral(struct regmap *regmap, spinlock_t *loc= k, const struct clk_pcr_layout *layout, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, + const char *name, struct clk_hw *parent_hw, u32 id, const struct clk_range *range, int chg_pid, unsigned long flags) { @@ -457,7 +452,7 @@ at91_clk_register_sam9x5_peripheral(struct regmap *regm= ap, spinlock_t *lock, struct clk_hw *hw; int ret; =20 - if (!name || !(parent_name || parent_hw)) + if (!name || !parent_hw) return ERR_PTR(-EINVAL); =20 periph =3D kzalloc(sizeof(*periph), GFP_KERNEL); @@ -465,10 +460,7 @@ at91_clk_register_sam9x5_peripheral(struct regmap *reg= map, spinlock_t *lock, return ERR_PTR(-ENOMEM); =20 init.name =3D name; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D flags; if (chg_pid < 0) { diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 590d0f115647..8f67a7a94c54 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -561,7 +561,7 @@ of_at91_clk_periph_setup(struct device_node *np, u8 typ= e) =20 if (type =3D=3D PERIPHERAL_AT91RM9200) { hw =3D at91_clk_register_peripheral(regmap, name, - NULL, parent_hw, id); + parent_hw, id); } else { struct clk_range range =3D CLK_RANGE(0, 0); unsigned long flags =3D 0; @@ -582,7 +582,6 @@ of_at91_clk_periph_setup(struct device_node *np, u8 typ= e) &pmc_pcr_lock, &dt_pcr_layout, name, - NULL, parent_hw, id, &range, INT_MIN, diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index c26dcbc8c475..54088c6d4de4 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -192,13 +192,11 @@ at91_clk_sama7g5_register_master(struct regmap *regma= p, =20 struct clk_hw * __init at91_clk_register_peripheral(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, - u32 id); + struct clk_hw *parent_hw, u32 id); struct clk_hw * __init at91_clk_register_sam9x5_peripheral(struct regmap *regmap, spinlock_t *loc= k, const struct clk_pcr_layout *layout, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, + const char *name, struct clk_hw *parent_hw, u32 id, const struct clk_range *range, int chg_pid, unsigned long flags); =20 diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index ce54684e4684..148873fced1b 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -348,7 +348,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sam9x60_pcr_layout, sam9x60_periphck[i].n, - NULL, sam9x60_pmc->chws[PMC_MCK], + sam9x60_pmc->chws[PMC_MCK], sam9x60_periphck[i].id, &range, INT_MIN, sam9x60_periphck[i].flags); diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index a25184ea7aef..809926c63078 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -337,7 +337,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_periphck[i].n, - NULL, sama5d2_pmc->chws[PMC_MCK], + sama5d2_pmc->chws[PMC_MCK], sama5d2_periphck[i].id, &range, INT_MIN, sama5d2_periphck[i].flags); @@ -351,7 +351,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d2_pcr_layout, sama5d2_periph32ck[i].n, - NULL, sama5d2_pmc->chws[PMC_MCK2], + sama5d2_pmc->chws[PMC_MCK2], sama5d2_periph32ck[i].id, &sama5d2_periph32ck[i].r, INT_MIN, 0); diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 5c0ef9416370..4453f47798b7 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -259,7 +259,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d3_pcr_layout, sama5d3_periphck[i].n, - NULL, sama5d3_pmc->chws[PMC_MCK], + sama5d3_pmc->chws[PMC_MCK], sama5d3_periphck[i].id, &sama5d3_periphck[i].r, INT_MIN, diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 88841d7d5477..9f6ad0699702 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -282,7 +282,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d4_pcr_layout, sama5d4_periphck[i].n, - NULL, sama5d4_pmc->chws[PMC_MCK], + sama5d4_pmc->chws[PMC_MCK], sama5d4_periphck[i].id, &range, INT_MIN, sama5d4_periphck[i].flags); @@ -296,7 +296,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama5d4_pcr_layout, sama5d4_periph32ck[i].n, - NULL, sama5d4_pmc->chws[PMC_MCK2], + sama5d4_pmc->chws[PMC_MCK2], sama5d4_periph32ck[i].id, &range, INT_MIN, 0); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index d18b2b7885e0..9cba1ad116a8 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1195,7 +1195,6 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) hw =3D at91_clk_register_sam9x5_peripheral(regmap, &pmc_pcr_lock, &sama7g5_pcr_layout, sama7g5_periphck[i].n, - NULL, sama7g5_mckx[sama7g5_periphck[i].p].hw, sama7g5_periphck[i].id, &sama7g5_periphck[i].r, --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B61A7EB64DD for ; Thu, 27 Jul 2023 05:39:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232370AbjG0Fj5 (ORCPT ); Thu, 27 Jul 2023 01:39:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231857AbjG0FjU (ORCPT ); Thu, 27 Jul 2023 01:39:20 -0400 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E569330E1 for ; Wed, 26 Jul 2023 22:38:01 -0700 (PDT) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1b9c368f4b5so11739605ad.0 for ; Wed, 26 Jul 2023 22:38:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436196; x=1691040996; 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=/ByePe5DbQDlx4lAkxeKpmFm+qeO1gWfKXQQMnKlrww=; b=jOsuR1pJ6p+T0RXaWm+bg+0pSTTcoYNwaUJJ7b6ofHkn/FvRS6BvSv/U8dU5ZyVo4K uw26yqnLwmNcjgB+iEO/l5cGtkrjDbdpFfIcgOP4Dc7zS0+H1ijaX/WWd5Fcui7Yj+RZ LcD2cDWYdTv7Rn9Kmc6t/R7r7VnUumQFa4T9T4EXfRYP6K268dKKpka/spxSncyvONQs vvoyv7pRCotPkGypQFga2Mm0ufvIhwZ/C6nvL/WyMxiDVimTWoKA6/hI3b2P6XjRN8p2 5ZBsUGEcDi7LfqAslqvZjyfA8vg1xXcRCjdClPjlqPh/SxQiYEBF/16yGv9Fs0XQHjh+ G8hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436196; x=1691040996; 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=/ByePe5DbQDlx4lAkxeKpmFm+qeO1gWfKXQQMnKlrww=; b=SnhgOhrdUGdbuPYxbghXe79xcdn8C4b6LYpCLVp/PsjHwBXCqWoS7USZfYXc5rktPh f3BFAMq2Tivbms9THY89iduj1sJHOhkk3NG8mJILZLzQxQcxltHbMIAuykV4O39Exeiy Ydjpz0Gh/i242gOABQdWe4rDRBiHsihnqoY7S7I6ZQFNPODpwG0xf976A1O8IMIRnwx6 uFVxrDoZKlgXpsD2FgxtHZu89fYK781pQnC+GC5Upg1+RGXa+SdxIdSi3Q6ERm2n/iMW 4DF+omLOzylIXas/bGjBG4JeZK+L0rKkIfq55+rRHK9W8HEHdCBCnCYczyCjJXwhQ9qH i1MQ== X-Gm-Message-State: ABy/qLZMfnFxMQCMkpCMSw9OvGZLAhsbjzkx1FkY+ra8uze/+8fvh0xM psIRg1AQFdN8Du3PL7b/3bBd5w== X-Google-Smtp-Source: APBJJlEe+63OnRONr3wZoGDYR7Z2G7TPoO0Mvk3H1ayi9D/amEEYYcLJK00E/hIcMCjtsLvLG9xeUQ== X-Received: by 2002:a17:902:d2cb:b0:1bb:b2f7:e075 with SMTP id n11-20020a170902d2cb00b001bbb2f7e075mr2143020plc.7.1690436195828; Wed, 26 Jul 2023 22:36:35 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:35 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 34/42] clk: at91: clk-pll: remove parent_names support Date: Thu, 27 Jul 2023 08:31:48 +0300 Message-Id: <20230727053156.13587-35-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-pll driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 4 ++-- drivers/clk/at91/at91sam9260.c | 4 ++-- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 4 ++-- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-pll.c | 7 ++----- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 12 files changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 7cb90d71d0ce..be88279c3443 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -126,7 +126,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91rm9200_pmc->chws= [PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91rm9200_pmc->chws[PMC_M= AIN], 0, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) @@ -134,7 +134,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91rm9200_pmc->chws= [PMC_MAIN], 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", at91rm9200_pmc->chws[PMC_M= AIN], 1, &at91rm9200_pll_layout, &rm9200_pll_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 9839bd4586cd..bd5e0ce432d3 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -398,7 +398,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, slow_xtal_hw =3D hw; } =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9260_pmc->chw= s[PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91sam9260_pmc->chws[PMC_= MAIN], 0, data->plla_layout, data->plla_characteristics); if (IS_ERR(hw)) @@ -406,7 +406,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 at91sam9260_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91sam9260_pmc->chw= s[PMC_MAIN], 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", at91sam9260_pmc->chws[PMC_= MAIN], 1, data->pllb_layout, data->pllb_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index e7f2173ff6c1..ca585440c54f 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -141,7 +141,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) =20 at91sam9g45_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9g45_pmc->chw= s[PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91sam9g45_pmc->chws[PMC_= MAIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 2d26c202b257..2109b8cdf4ad 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -167,7 +167,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9n12_pmc->chw= s[PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91sam9n12_pmc->chws[PMC_= MAIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; @@ -178,7 +178,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllbck", NULL, at91sam9n12_pmc->chw= s[PMC_MAIN], 1, + hw =3D at91_clk_register_pll(regmap, "pllbck", at91sam9n12_pmc->chws[PMC_= MAIN], 1, &at91rm9200_pll_layout, &pllb_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index c7fc4bcf4e5b..4ae8028600d5 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -104,7 +104,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) =20 at91sam9rl_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9rl_pmc->chws= [PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91sam9rl_pmc->chws[PMC_M= AIN], 0, &at91rm9200_pll_layout, &sam9rl_plla_characteristics); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 8da2732a73fa..4cbb72a29f14 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -189,7 +189,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, =20 at91sam9x5_pmc->chws[PMC_MAIN] =3D hw; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, at91sam9x5_pmc->chws= [PMC_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", at91sam9x5_pmc->chws[PMC_M= AIN], 0, &at91rm9200_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c index afd48cbaa6db..2ba068718f83 100644 --- a/drivers/clk/at91/clk-pll.c +++ b/drivers/clk/at91/clk-pll.c @@ -310,7 +310,7 @@ static const struct clk_ops pll_ops =3D { =20 struct clk_hw * __init at91_clk_register_pll(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, u8 id, + struct clk_hw *parent_hw, u8 id, const struct clk_pll_layout *layout, const struct clk_pll_characteristics *characteristics) { @@ -330,10 +330,7 @@ at91_clk_register_pll(struct regmap *regmap, const cha= r *name, =20 init.name =3D name; init.ops =3D &pll_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 8f67a7a94c54..13e251e59853 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -740,7 +740,7 @@ of_at91_clk_pll_setup(struct device_node *np, if (!characteristics) return; =20 - hw =3D at91_clk_register_pll(regmap, name, NULL, parent_hw, id, layout, + hw =3D at91_clk_register_pll(regmap, name, parent_hw, id, layout, characteristics); if (IS_ERR(hw)) goto out_free_characteristics; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 54088c6d4de4..5fd1e76b3ec7 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -202,7 +202,7 @@ at91_clk_register_sam9x5_peripheral(struct regmap *regm= ap, spinlock_t *lock, =20 struct clk_hw * __init at91_clk_register_pll(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, u8 id, + struct clk_hw *parent_hw, u8 id, const struct clk_pll_layout *layout, const struct clk_pll_characteristics *characteristics); struct clk_hw * __init diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 809926c63078..b99a8bb9bf9a 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -221,7 +221,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) goto err_free; =20 sama5d2_pmc->chws[PMC_MAIN] =3D hw; - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, sama5d2_pmc->chws[PM= C_MAIN], 0, + hw =3D at91_clk_register_pll(regmap, "pllack", sama5d2_pmc->chws[PMC_MAIN= ], 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 4453f47798b7..35a9dfd0e66d 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -168,7 +168,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(mainck_hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, mainck_hw, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", mainck_hw, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 9f6ad0699702..ae76c59c7d42 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -183,7 +183,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_pll(regmap, "pllack", NULL, mainck_hw, 0, + hw =3D at91_clk_register_pll(regmap, "pllack", mainck_hw, 0, &sama5d3_pll_layout, &plla_characteristics); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B819CC001DC for ; Thu, 27 Jul 2023 05:40:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232270AbjG0Fkm (ORCPT ); Thu, 27 Jul 2023 01:40:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231689AbjG0FkR (ORCPT ); Thu, 27 Jul 2023 01:40:17 -0400 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7B963C0D for ; Wed, 26 Jul 2023 22:38:42 -0700 (PDT) Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1b8b4749013so4392355ad.2 for ; Wed, 26 Jul 2023 22:38:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436203; x=1691041003; 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=wrKKqV0HQO2EhBMgbawQJpGyCpTF7In/U2sRYiMWbK8=; b=D5aKsLXGy2j6jm8tkzlTTceO4RSJRpKu2I3aRV4a0QzXpd5bjWkf+kAqE3F3BaNRfX DxaJ8Pde3fczdc/xBBGN/rAm0qcu8nBsr5/DMRo2EY6KhqcJL6B8It06mbh1wmECKQi+ lXciwovoIn1XmRc1i3qlC0eKwscXTiOGxSvgnOBGDjs5uCo8FJuiENt0wdOflwftWEM6 Z4bsbLB42Al2coRZvmXCMI4Of6jh6UC9ad+64wVD6PdAzwwvKuhWmE64zJU8vA6FZKfe eYFe0JJzcc+6TnQCAASwcDr20VpiO+it/Nl6pKOtUzOyZiIhmtbWNVsEaL65+KXKLIgN 69Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436203; x=1691041003; 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=wrKKqV0HQO2EhBMgbawQJpGyCpTF7In/U2sRYiMWbK8=; b=KTMRpaIVi6eHH+KBSexgLvMUqp7igvxMtHIN/lQyE4SPTIwqny4XkyWr0uk3M/rQnH mQ4wULgq31dTh61FZBDS5JI2/rb7rWi+r+iuqcQfKXFEyZlovJIvB+PSXk1+oIo8G8CA MYrCCOmr9zyc8ZLAEvD/HYrG67lDIZeSJBEV4jUK+QTSYzsdXzix/xj0S/BC+ZZ7q2sb ZL5ljPCyt5xtVzze+n1ujBF7s1DmiihnV+NIpc+/xwvqXLIHfoYPDStSr+VZdxJSBo2b nnHpBjTy+K170C1gdwo2UfmghLICgsVPXef9R4j4wkbzAwwNmgu0m6XH77CJsPgT8pWH H4Tw== X-Gm-Message-State: ABy/qLac6t4LvbK1aApQpLsWlXKo0IW6XWj9R64V0yRR8YpckCeX9WIh 89ugw1LutUqYjK40o+GQtaE7Nw== X-Google-Smtp-Source: APBJJlE+dM7AhEcN3LsCBRnRDe2BI9iVnvhfO+ozfURw/g7mC/rtS5q2NMPSSbrQGFnSw/NceZ2jnQ== X-Received: by 2002:a17:902:b413:b0:1b8:2c6f:3248 with SMTP id x19-20020a170902b41300b001b82c6f3248mr3913704plr.39.1690436202969; Wed, 26 Jul 2023 22:36:42 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:42 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 35/42] clk: at91: clk-plldiv: remove parent_names support Date: Thu, 27 Jul 2023 08:31:49 +0300 Message-Id: <20230727053156.13587-36-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-plldiv driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-plldiv.c | 11 +++-------- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 9 files changed, 11 insertions(+), 16 deletions(-) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index ca585440c54f..2bda11df7f0d 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -146,7 +146,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 2109b8cdf4ad..0c22b82ef368 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -172,7 +172,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 4cbb72a29f14..c2c5e9fe669c 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -194,7 +194,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-plldiv.c b/drivers/clk/at91/clk-plldiv.c index 1d5a0a6d299d..e4efb4ccab33 100644 --- a/drivers/clk/at91/clk-plldiv.c +++ b/drivers/clk/at91/clk-plldiv.c @@ -72,7 +72,7 @@ static const struct clk_ops plldiv_ops =3D { =20 struct clk_hw * __init at91_clk_register_plldiv(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct clk_plldiv *plldiv; struct clk_hw *hw; @@ -85,13 +85,8 @@ at91_clk_register_plldiv(struct regmap *regmap, const ch= ar *name, =20 init.name =3D name; init.ops =3D &plldiv_ops; - if (parent_hw) { - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - init.num_parents =3D 1; - } else { - init.parent_names =3D parent_name ? &parent_name : NULL; - init.num_parents =3D parent_name ? 1 : 0; - } + init.parent_hws =3D parent_hw ? (const struct clk_hw **)&parent_hw : NULL; + init.num_parents =3D parent_hw ? 1 : 0; init.flags =3D CLK_SET_RATE_GATE; =20 plldiv->hw.init =3D &init; diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 13e251e59853..85193e4656b9 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -805,7 +805,7 @@ of_at91sam9x5_clk_plldiv_setup(struct device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91_clk_register_plldiv(regmap, name, NULL, parent_hw); + hw =3D at91_clk_register_plldiv(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 5fd1e76b3ec7..eed88a480b11 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -207,7 +207,7 @@ at91_clk_register_pll(struct regmap *regmap, const char= *name, const struct clk_pll_characteristics *characteristics); struct clk_hw * __init at91_clk_register_plldiv(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 struct clk_hw * __init sam9x60_clk_register_div_pll(struct regmap *regmap, spinlock_t *lock, diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index b99a8bb9bf9a..75d5b1a3733b 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -226,7 +226,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 35a9dfd0e66d..a50e82460e70 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -173,7 +173,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index ae76c59c7d42..b6b41ceae13c 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -188,7 +188,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) if (IS_ERR(hw)) goto err_free; =20 - hw =3D at91_clk_register_plldiv(regmap, "plladivck", NULL, hw); + hw =3D at91_clk_register_plldiv(regmap, "plladivck", hw); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F02ADC001DC for ; Thu, 27 Jul 2023 05:41:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232435AbjG0FlH (ORCPT ); Thu, 27 Jul 2023 01:41:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229661AbjG0Fkh (ORCPT ); Thu, 27 Jul 2023 01:40:37 -0400 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C70DC4683 for ; Wed, 26 Jul 2023 22:39:02 -0700 (PDT) Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1bbc64f9a91so4650335ad.0 for ; Wed, 26 Jul 2023 22:39:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436210; x=1691041010; 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=+Q+Yl7hN1VwiQcIkQgiV66Esb2RGUFiRs91OdVgtBh0=; b=M0glJThlvwbGMQ+zCXsOdBo8zfEv8aUEkaRD1lWoFtxH8KWlcevQsd8CVfI5jCSbV5 GviLj1eQYirIuNhvCwfOZYnKqOeGaDAGmQ81PpzBhpgCl3DFaXkBEbmGf4feY8CwCXbh sPrPP2xuvoBD4ePCM3Fdsz0idTiBaWIkTMf9ffxGN7PhhFC3fIG0ZaNpq37DJACJcPvZ MPDIofZp+XOLQELb9C6kXuwvLBe4xAz0PIaOHCipxoc6tIgR0Hi0laRXYOu1IDGDx8Bu zamHJme4DZQSOzBVNzw88sbqFlCLSPMF60KtvVt6e7of+G+gm7KBRLKOf5yQUjDJlyKR TyTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436210; x=1691041010; 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=+Q+Yl7hN1VwiQcIkQgiV66Esb2RGUFiRs91OdVgtBh0=; b=eyAjxx5JzZtuH96bZfom9VXElAlkCjUrayGY8MVzmsZbYkrAHpee5l4f7UwQjNKXyr v0yewbYjs1O7A28HX1WR6ODXsjLkJWDHifF2bEX3zVYijOSLIKVe5RBhv3oV/G++Ko+X 0ThotPFSY2y2pAZS6yH0SowXoX0Ur6zeIpOljOAdWaJMWuRXY8G52sIuHvcAkstHJb3B UuWmio/VMOzr+TPO1vCdmMuS9ldH2Axivbs/ZtR+4Ulkt92/loDMweYa6CrxXZvkUy53 9OlmoHw9+ETRUfFa6D62BYta1n38mWrQpxtoQ9f36m8r/Ey4xcNJH8ZhxSJpogUimFZV 7thw== X-Gm-Message-State: ABy/qLbNItwKG1Ld6jlm0mW6Jmnsp+BOGqi+kyMELPBlbOI3zW+cAPCE +9pFDrsAtGiPM/jix6NDnJc0vQ== X-Google-Smtp-Source: APBJJlHVSJGhP4xROul0kKK8gz7i1cwuobZUOhpNAjMjCbAOJfpC/qq2G3ht/RzeTU5qSvAZiVg1jw== X-Received: by 2002:a17:902:ea06:b0:1b8:4e00:96b with SMTP id s6-20020a170902ea0600b001b84e00096bmr5499076plg.9.1690436210347; Wed, 26 Jul 2023 22:36:50 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:50 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 36/42] clk: at91: clk-programmable: remove parent_names support Date: Thu, 27 Jul 2023 08:31:50 +0300 Message-Id: <20230727053156.13587-37-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-programmable driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 2 +- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-programmable.c | 10 +++------- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- drivers/clk/at91/sama7g5.c | 2 +- 14 files changed, 16 insertions(+), 20 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index be88279c3443..9305cb6eaef2 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -178,7 +178,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 4, i, + parent_hws, 4, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index bd5e0ce432d3..c118ff23548b 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -451,7 +451,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 4, i, + parent_hws, 4, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 2bda11df7f0d..a5bc6f5c8173 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -197,7 +197,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91sam9g45_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index 0c22b82ef368..b4dfe2d1de8a 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -223,7 +223,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 4ae8028600d5..48d79189fc98 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -150,7 +150,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91rm9200_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index c2c5e9fe669c..f278bee3417c 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -247,7 +247,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/clk-programmable.c b/drivers/clk/at91/clk-pro= grammable.c index 1195fb405503..a400aac5b2e2 100644 --- a/drivers/clk/at91/clk-programmable.c +++ b/drivers/clk/at91/clk-programmable.c @@ -213,8 +213,7 @@ static const struct clk_ops programmable_ops =3D { }; =20 struct clk_hw * __init -at91_clk_register_programmable(struct regmap *regmap, - const char *name, const char **parent_names, +at91_clk_register_programmable(struct regmap *regmap, const char *name, struct clk_hw **parent_hws, u8 num_parents, u8 id, const struct clk_programmable_layout *layout, u32 *mux_table) @@ -224,7 +223,7 @@ at91_clk_register_programmable(struct regmap *regmap, struct clk_init_data init =3D {}; int ret; =20 - if (id > PROG_ID_MAX || !(parent_names || parent_hws)) + if (id > PROG_ID_MAX || !parent_hws) return ERR_PTR(-EINVAL); =20 prog =3D kzalloc(sizeof(*prog), GFP_KERNEL); @@ -233,10 +232,7 @@ at91_clk_register_programmable(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &programmable_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 85193e4656b9..11fdbca8ee83 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -860,7 +860,7 @@ of_at91_clk_prog_setup(struct device_node *np, name =3D progclknp->name; =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, num_parents, + parent_hws, num_parents, id, layout, mux_table); if (IS_ERR(hw)) continue; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index eed88a480b11..7d2524109776 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -226,7 +226,7 @@ sam9x60_clk_register_frac_pll(struct regmap *regmap, sp= inlock_t *lock, =20 struct clk_hw * __init at91_clk_register_programmable(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents, u8 id, const struct clk_programmable_layout *layout, u32 *mux_table); diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index 148873fced1b..897a8f2d6102 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -318,7 +318,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 6, i, + parent_hws, 6, i, &sam9x60_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 75d5b1a3733b..c64b79b44ba6 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -304,7 +304,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 6, i, + parent_hws, 6, i, &sama5d2_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index a50e82460e70..021e012fe202 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -226,7 +226,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index b6b41ceae13c..e196ec80570f 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -249,7 +249,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) snprintf(name, sizeof(name), "prog%d", i); =20 hw =3D at91_clk_register_programmable(regmap, name, - NULL, parent_hws, 5, i, + parent_hws, 5, i, &at91sam9x5_programmable_layout, NULL); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index 9cba1ad116a8..baec84bd5d06 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1171,7 +1171,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) =20 snprintf(name, sizeof(name), "prog%d", i); =20 - hw =3D at91_clk_register_programmable(regmap, name, NULL, parent_hws, + hw =3D at91_clk_register_programmable(regmap, name, parent_hws, 9, i, &programmable_layout, sama7g5_prog_mux_table); --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56678EB64DD for ; Thu, 27 Jul 2023 05:39:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232217AbjG0Fjm (ORCPT ); Thu, 27 Jul 2023 01:39:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54134 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232180AbjG0FjG (ORCPT ); Thu, 27 Jul 2023 01:39:06 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20A4F421A for ; Wed, 26 Jul 2023 22:37:54 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1b8ad8383faso4796625ad.0 for ; Wed, 26 Jul 2023 22:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436218; x=1691041018; 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=rFDKIrER1Q8EDEuXgmXxXy7qiRoYOQyJHV+mlKGKhyM=; b=Q5pItotCSKZWCFdXRGzjghrjkFi3Z+sL99/EwD3Ud+0lavJWRnFGQcG6R/iJ0c0TXT ic/vw6K4bWiQE6uKkhkm3GJFvQyyQK2EfHDZu622BFd72xzRH53btHPRiPzreyUVh/iz lm5zXMA1QdQ0lC4Dx8qpxKISW74rUgtQeRe3s5m8APoc9Kw7Txf4YfsMMN/xrF91WMIj boLQeStCa0Rvxfk9p16kl10ebs4CovIh1JwOtMxDkxCTasP5WYdA7GI3vbvVljYvUyj2 thyshFC6UF1wuFcrV+p5KZwTitrW4H5GTyZ5Ift67NF5kW+oi7mIOhKan6DBuHdfLTjR 63wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436218; x=1691041018; 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=rFDKIrER1Q8EDEuXgmXxXy7qiRoYOQyJHV+mlKGKhyM=; b=Fj6vlOPdlmteX0r2iubSh/YL/ObDEWaRtx/IwFa225Rx9EQbwW4jYcvoGI14m8HkfW 8WXfkfuOPdyDiLCzNv5okhEHIl0snVrkQjDSRBwDRLQCkXIaj0WTxcSOfwzWJ/ck9Fhy wr5F2vSkcZDJJRtDm+YA8kPCW/4jEc22lWh6XGor+gqMOAj8lK9iM/I4zDuyFIFX0FoV SopM76TcVLffxozhK3PeV/UZkxhmgX1Eo2IvVB4M3XlZgelDwXydyRBEQ8JO2rRs7lS4 FCNIPqxXsDGmJUVf+Fa8EZiVeUzVg8dgNotQXVESVEkYfGRe2odOfs0+3vBRBhuvVM+C YkRQ== X-Gm-Message-State: ABy/qLZ0jvzr+2wALqvQKeionFiFBU9mQyH4wOy6aFzlSvRxzr8dmlfu uEXWWmH5PmSKnQyu1IJiTiq2Mw== X-Google-Smtp-Source: APBJJlFsafDnT8kkWkk3yUqoJROLuqetgWn4uUQXGuwpxasw70Gtt8yiGSgxsI8WlcWcysUugjf0SA== X-Received: by 2002:a17:902:f681:b0:1b6:b805:5ae3 with SMTP id l1-20020a170902f68100b001b6b8055ae3mr4943140plg.3.1690436218328; Wed, 26 Jul 2023 22:36:58 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:36:58 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 37/42] clk: at91: clk-sam9x60-pll: remove parent_names support Date: Thu, 27 Jul 2023 08:31:51 +0300 Message-Id: <20230727053156.13587-38-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-sam9x60-pll driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/clk-sam9x60-pll.c | 16 ++++------------ drivers/clk/at91/pmc.h | 6 ++---- drivers/clk/at91/sam9x60.c | 8 ++++---- drivers/clk/at91/sama7g5.c | 4 ++-- 4 files changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/clk/at91/clk-sam9x60-pll.c b/drivers/clk/at91/clk-sam9= x60-pll.c index ff65f7b916f0..787ab36ecdba 100644 --- a/drivers/clk/at91/clk-sam9x60-pll.c +++ b/drivers/clk/at91/clk-sam9x60-pll.c @@ -609,8 +609,7 @@ static const struct clk_ops sam9x60_div_pll_ops_chg =3D= { =20 struct clk_hw * __init sam9x60_clk_register_frac_pll(struct regmap *regmap, spinlock_t *lock, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, u8 id, + const char *name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_characteristics *characteristics, const struct clk_pll_layout *layout, u32 flags) { @@ -629,10 +628,7 @@ sam9x60_clk_register_frac_pll(struct regmap *regmap, s= pinlock_t *lock, return ERR_PTR(-ENOMEM); =20 init.name =3D name; - if (parent_name) - init.parent_names =3D &parent_name; - else - init.parent_hws =3D (const struct clk_hw **)&parent_hw; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; if (flags & CLK_SET_RATE_GATE) init.ops =3D &sam9x60_frac_pll_ops; @@ -695,8 +691,7 @@ sam9x60_clk_register_frac_pll(struct regmap *regmap, sp= inlock_t *lock, =20 struct clk_hw * __init sam9x60_clk_register_div_pll(struct regmap *regmap, spinlock_t *lock, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, u8 id, + const char *name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_characteristics *characteristics, const struct clk_pll_layout *layout, u32 flags, u32 safe_div) @@ -720,10 +715,7 @@ sam9x60_clk_register_div_pll(struct regmap *regmap, sp= inlock_t *lock, return ERR_PTR(-ENOMEM); =20 init.name =3D name; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; if (flags & CLK_SET_RATE_GATE) init.ops =3D &sam9x60_div_pll_ops; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 7d2524109776..fe86cca2776e 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -211,16 +211,14 @@ at91_clk_register_plldiv(struct regmap *regmap, const= char *name, =20 struct clk_hw * __init sam9x60_clk_register_div_pll(struct regmap *regmap, spinlock_t *lock, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, u8 id, + const char *name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_characteristics *characteristics, const struct clk_pll_layout *layout, u32 flags, u32 safe_div); =20 struct clk_hw * __init sam9x60_clk_register_frac_pll(struct regmap *regmap, spinlock_t *lock, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, u8 id, + const char *name, struct clk_hw *parent_hw, u8 id, const struct clk_pll_characteristics *characteristics, const struct clk_pll_layout *layout, u32 flags); =20 diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index 897a8f2d6102..68abd0fd47db 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -238,7 +238,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) sam9x60_pmc->chws[PMC_MAIN] =3D hw; =20 hw =3D sam9x60_clk_register_frac_pll(regmap, &pmc_pll_lock, "pllack_fracc= k", - NULL, sam9x60_pmc->chws[PMC_MAIN], + sam9x60_pmc->chws[PMC_MAIN], 0, &plla_characteristics, &pll_frac_layout, /* @@ -251,7 +251,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) goto err_free; =20 hw =3D sam9x60_clk_register_div_pll(regmap, &pmc_pll_lock, "pllack_divck", - NULL, hw, 0, &plla_characteristics, + hw, 0, &plla_characteristics, &pll_div_layout, /* * This feeds CPU. It should not @@ -264,14 +264,14 @@ static void __init sam9x60_pmc_setup(struct device_no= de *np) sam9x60_pmc->chws[PMC_PLLACK] =3D hw; =20 hw =3D sam9x60_clk_register_frac_pll(regmap, &pmc_pll_lock, "upllck_fracc= k", - NULL, main_osc_hw, 1, + main_osc_hw, 1, &upll_characteristics, &pll_frac_layout, CLK_SET_RATE_GATE); if (IS_ERR(hw)) goto err_free; =20 hw =3D sam9x60_clk_register_div_pll(regmap, &pmc_pll_lock, "upllck_divck", - NULL, hw, 1, &upll_characteristics, + hw, 1, &upll_characteristics, &pll_div_layout, CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index baec84bd5d06..0d81a955e686 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1074,7 +1074,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) =20 hw =3D sam9x60_clk_register_frac_pll(regmap, &pmc_pll_lock, sama7g5_plls[i][j].n, - NULL, parent_hw, i, + parent_hw, i, sama7g5_plls[i][j].c, sama7g5_plls[i][j].l, sama7g5_plls[i][j].f); @@ -1083,7 +1083,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) case PLL_TYPE_DIV: hw =3D sam9x60_clk_register_div_pll(regmap, &pmc_pll_lock, sama7g5_plls[i][j].n, - NULL, sama7g5_plls[i][0].hw, i, + sama7g5_plls[i][0].hw, i, sama7g5_plls[i][j].c, sama7g5_plls[i][j].l, sama7g5_plls[i][j].f, --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55C61C001DC for ; Thu, 27 Jul 2023 05:39:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232343AbjG0Fjx (ORCPT ); Thu, 27 Jul 2023 01:39:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232270AbjG0FjK (ORCPT ); Thu, 27 Jul 2023 01:39:10 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39AE93C0C for ; Wed, 26 Jul 2023 22:37:59 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1bbc06f830aso3469555ad.0 for ; Wed, 26 Jul 2023 22:37:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436225; x=1691041025; 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=HhTcRhK2gQ4jMW+59NMw/SaH7OUANNH6Zo/DOVN6+as=; b=DlLGy8hlTRIK/ljo4LGFmrYRfDnd+QvQ7CtqcZrNfjWPSXrFxRQi4Z/7shGMIDLqvK QMxlty1Q+Ma232hFEwGF3lSfAQZnxtK75Nl+GkFtlZdyjV9SrCAZ3ISwTHQG+d0kY6Je 6K23ojczKRZIwqOXOP6JDy0YnX/XKf5gw4HwYQzvozTh8SdcIHYR50rxel58D5NT0z5M +nIvynHPLNBsZazi/zhoxTG+w1CTN6hhSm4au62rRvn2iCdeEkKFQYg+zHUO19m/9i0w kktYtXExlIRmASejBBzkcI5Rzz+GA+4qm4gj7hKF9obMZeKSDSaWMQQlwCQ+Iyx4BVe+ YVeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436225; x=1691041025; 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=HhTcRhK2gQ4jMW+59NMw/SaH7OUANNH6Zo/DOVN6+as=; b=SXsOD72GxiV74Vaf7EsHl3gkThL0mCefSzKB47KlPa+HkVdwBJRqaTaF3iUIDv7bFH RkALsT7YoFYhVmKq/i14I5AEW3Z/uXQ7gGkbkZHN/WP//cQ+XC7CR3Y4q4VOv4mkzTr1 0DWhuMYKxZ7OzyzEZ5mU2H7ovjxG71MpGqSLWSmPwc77NrDsrOa+N4Ju+Spi/KaUMl/o Yp2AJIVgdicNCOZpfkqK37aD7MRX1BUEvsOAc5qMCZFUSMGt7Ivaa77wKT3zh4f3TN+5 OqqiFMS9rkTXrSb1LkZkWNMFOmDyR9k5cNqhsJkIG7pdmy0xhjhM3h32+9q8RhtMRZOa rGUg== X-Gm-Message-State: ABy/qLak5h+kzgZtvYgr9vJBsZLVQRTcJE+a5jyEktez1jbe8lVmHEFO 20/xBdYPrufUUMPoNyMgG9FcyA== X-Google-Smtp-Source: APBJJlGfluXGrnux48EdeGE9eNFdWvTPEzEfURqjbaC5EvOyWGXSriaNT9nM7vumitgl8/c6QopSTQ== X-Received: by 2002:a17:903:1d1:b0:1b8:5bca:8256 with SMTP id e17-20020a17090301d100b001b85bca8256mr1971040plh.31.1690436225650; Wed, 26 Jul 2023 22:37:05 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.36.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:37:05 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 38/42] clk: at91: clk-slow: remove parent_names support Date: Thu, 27 Jul 2023 08:31:52 +0300 Message-Id: <20230727053156.13587-39-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-slow driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/clk-slow.c | 8 ++------ drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 1 - 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index c118ff23548b..97efc39a7e2b 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -390,7 +390,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 parent_hws[0] =3D hw; parent_hws[1] =3D slow_xtal_hw; - hw =3D at91_clk_register_sam9260_slow(regmap, "slck", NULL, parent_hws, = 2); + hw =3D at91_clk_register_sam9260_slow(regmap, "slck", parent_hws, 2); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-slow.c b/drivers/clk/at91/clk-slow.c index bea66216ed82..ee2dfc44d29e 100644 --- a/drivers/clk/at91/clk-slow.c +++ b/drivers/clk/at91/clk-slow.c @@ -38,7 +38,6 @@ static const struct clk_ops sam9260_slow_ops =3D { struct clk_hw * __init at91_clk_register_sam9260_slow(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, int num_parents) { @@ -50,7 +49,7 @@ at91_clk_register_sam9260_slow(struct regmap *regmap, if (!name) return ERR_PTR(-EINVAL); =20 - if (!parent_names || !num_parents) + if (!parent_hws || !num_parents) return ERR_PTR(-EINVAL); =20 slowck =3D kzalloc(sizeof(*slowck), GFP_KERNEL); @@ -59,10 +58,7 @@ at91_clk_register_sam9260_slow(struct regmap *regmap, =20 init.name =3D name; init.ops =3D &sam9260_slow_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)&parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)&parent_hws; init.num_parents =3D num_parents; init.flags =3D 0; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 11fdbca8ee83..90d92a410097 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -920,7 +920,7 @@ static void __init of_at91sam9260_clk_slow_setup(struct= device_node *np) =20 of_property_read_string(np, "clock-output-names", &name); =20 - hw =3D at91_clk_register_sam9260_slow(regmap, name, NULL, parent_hws, + hw =3D at91_clk_register_sam9260_slow(regmap, name, parent_hws, num_parents); if (IS_ERR(hw)) return; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index fe86cca2776e..a0b49dd3749f 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -232,7 +232,6 @@ at91_clk_register_programmable(struct regmap *regmap, c= onst char *name, struct clk_hw * __init at91_clk_register_sam9260_slow(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, int num_parents); =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97A04C001DC for ; Thu, 27 Jul 2023 05:40:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232396AbjG0FkB (ORCPT ); Thu, 27 Jul 2023 01:40:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231451AbjG0Fj3 (ORCPT ); Thu, 27 Jul 2023 01:39:29 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 998C93A95 for ; Wed, 26 Jul 2023 22:38:07 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1bb8e45185bso3494685ad.1 for ; Wed, 26 Jul 2023 22:38:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436233; x=1691041033; 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=rMrH2veSKJpQGvEe5VG+6yf2IP3UM7TTWUkhUdnFvBE=; b=m9WxlI86VXkvIJaFZfBm9fikWzK2MXmSLJNO1gZJ2uRq6s8IzrMtlcTgZMgvEj+600 sSBdKIlxf26m7GzYTWJMR04vM45e48dNkTtVN4IlXE3+FsqLJO67ubZqHx16RGzcOicG LP0JtY7a/pKBRoXgfDsPEi5Ny2Y4fbyvDNgxv23T4eqeqKGxXsjfPQcbqZwfsqzR+sp+ nMdgyVT8zAITbTAZXsml2cdZPeguyd/OIboLKr55+OGZUL9wJOyj2+29lwzL/WuygTsI yjONzfNg8PiHWPPCx+Y+We/eE+UysNO0nQoux9GQ4o1VBvfwWopHWj0ILfUmlRRSiRVD ZD6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436233; x=1691041033; 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=rMrH2veSKJpQGvEe5VG+6yf2IP3UM7TTWUkhUdnFvBE=; b=WNXioQhz7NmdDzykzlnF3xxwC+Hbj2vwQJkeGtjQ63tOsrFO6VtD9JJwispNdkIndk OJHvU4tcCV2OLcUhfq95d4JdgWJ1ZsjVZ5Rwpl1P40GZ0R836k9flpbvJSeakCb689XM 6xtzA5iahEk2cZipCc+ugNFpln94DrmHs8UuN2bRhI1nSk2T2xXPk1tmW8ssoCvhJtxu QIHxzmwbckFJnuDeCuxWUaJ5Dz50L63to75aKvLvYZnGO7iLRR1Me6TMx8ugIDzOYgZX ie1CExoUWNRLWrDWQyOeRYhNyVwiDj9oedJxe5sOuYN2mnR2zUpyhOpeDJNyFKzwJBI9 7trg== X-Gm-Message-State: ABy/qLbMjI3fNq+A4zsdE4vzqB4b4NIoAY2wXB8Sg8hP3z9Js//x7ZYA StrkWiorWVfdmC0v9pdUjy0goQ== X-Google-Smtp-Source: APBJJlE/b2NsE/TFI2LCOh8FQAgahRyUACaBkgzFTkwLVBYX122bL58KV0FwOFGGcwnKGd+Ib2/Stw== X-Received: by 2002:a17:902:bcc9:b0:1b1:7362:9a18 with SMTP id o9-20020a170902bcc900b001b173629a18mr3093097pls.27.1690436232704; Wed, 26 Jul 2023 22:37:12 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.37.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:37:12 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 39/42] clk: at91: clk-smd: remove parent_names support Date: Thu, 27 Jul 2023 08:31:53 +0300 Message-Id: <20230727053156.13587-40-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-smd driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-smd.c | 7 ++----- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 6 files changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index f278bee3417c..93165263502e 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -232,7 +232,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, if (IS_ERR(usbck_hw)) goto err_free; =20 - smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_hws, 2); if (IS_ERR(smdck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-smd.c b/drivers/clk/at91/clk-smd.c index 2c8432cc2fe6..b182c11386ea 100644 --- a/drivers/clk/at91/clk-smd.c +++ b/drivers/clk/at91/clk-smd.c @@ -111,7 +111,7 @@ static const struct clk_ops at91sam9x5_smd_ops =3D { =20 struct clk_hw * __init at91sam9x5_clk_register_smd(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents) { struct at91sam9x5_clk_smd *smd; @@ -125,10 +125,7 @@ at91sam9x5_clk_register_smd(struct regmap *regmap, con= st char *name, =20 init.name =3D name; init.ops =3D &at91sam9x5_smd_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 90d92a410097..294e3b0e8a9d 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -964,7 +964,7 @@ static void __init of_at91sam9x5_clk_smd_setup(struct d= evice_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_smd(regmap, name, NULL, parent_hws, + hw =3D at91sam9x5_clk_register_smd(regmap, name, parent_hws, num_parents); if (IS_ERR(hw)) return; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index a0b49dd3749f..131ef55d3e47 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -237,7 +237,7 @@ at91_clk_register_sam9260_slow(struct regmap *regmap, =20 struct clk_hw * __init at91sam9x5_clk_register_smd(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents); =20 struct clk_hw * __init diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 021e012fe202..239806dcd03d 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -211,7 +211,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) if (IS_ERR(usbck_hw)) goto err_free; =20 - smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_hws, 2); if (IS_ERR(smdck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index e196ec80570f..f193460495c0 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -234,7 +234,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 parent_hws[0] =3D sama5d4_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D sama5d4_pmc->chws[PMC_UTMI]; - smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", NULL, parent_h= ws, 2); + smdck_hw =3D at91sam9x5_clk_register_smd(regmap, "smdclk", parent_hws, 2); if (IS_ERR(smdck_hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF79CEB64DD for ; Thu, 27 Jul 2023 05:40:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232399AbjG0Fkr (ORCPT ); Thu, 27 Jul 2023 01:40:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231857AbjG0FkV (ORCPT ); Thu, 27 Jul 2023 01:40:21 -0400 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82AEB3A98 for ; Wed, 26 Jul 2023 22:38:48 -0700 (PDT) Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1b9ecf0cb4cso3730255ad.2 for ; Wed, 26 Jul 2023 22:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436240; x=1691041040; 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=/MZ4Kp4lF1KjxsdE0fjXbxu2hcT01qgittw8+AX1ais=; b=i33XmaIPrG9ujwJu4RPYfqz8tKC9aklbCEg/XJ0TTJ22HMJou819xTe2CJOD+h3BaJ A4TvzOl9/d4C6hKAUdtaXx/zc0/ybVl7vZZ+yX/IlkoHLbWnkdV96jSTpq/2OFIAwcYX 03PFq2YbVY5QL/bXMseU1ec/qce+ZTGCeE/sCEBNHoMpixUyw//bfdfFFO0vs5HpCz1o 84B/RrGpCUNU8JdlQ89/x3Bs+Wi5hQkGo6Q601oO8Sp+nS7e8tXSbt1BvCn7Z37t7tg4 RonKcJUBVICucljvRHrdMp0nyUzxeo5S4RPgAqTJNCkX3DMToGxBlC7Byoxm18iRo7+q QRgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436240; x=1691041040; 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=/MZ4Kp4lF1KjxsdE0fjXbxu2hcT01qgittw8+AX1ais=; b=D3bsUoJUNkNzt3uHn8+HxlF5Acs3o61tx6apA2CznxX+DSOI48B2dzzIOyE0jwe1Hj Bxejx1oW+4pwkPM0iCOJY8Se6ThYUw3U1CBjrdHKoIylp07f7M9Bw54hbQxjAx/ZTTdg yeOA3x3yXe0GVSX+1c01uO+na8oqfUVxTlnZdkyr1Z6C+0g0kzbDgNMez+4rfrt8inJZ Et7Uutm36DtweRMjcX/5pdjsJ7eFnBMM3RJTN9mHkyntW/RkpitChDhRHV252J2hMZHh 2xGplPQyJ+YqI9iw5CIBQ+R45AI/75dN7Gmt7gTLxoKojrEHhEcFtZOT0tsl6143U4P2 s5/w== X-Gm-Message-State: ABy/qLYh5f2OO/RZ8TejeeTw/C6yt1dhWhdiMynNGwQ84xb2OhRnSy4j 6vrhjkPR5Aw3XTx1FWb0lbG0Jg== X-Google-Smtp-Source: APBJJlEIhpktItHVR8GLsrBTfxaptzEbAomzADKwH8ieh3QikL6C736GamLQQJ60kN7bcb9GVJvQGQ== X-Received: by 2002:a17:902:ec92:b0:1bb:6875:5a73 with SMTP id x18-20020a170902ec9200b001bb68755a73mr3655798plg.2.1690436240057; Wed, 26 Jul 2023 22:37:20 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:37:19 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 40/42] clk: at91: clk-system: remove parent_names support Date: Thu, 27 Jul 2023 08:31:54 +0300 Message-Id: <20230727053156.13587-41-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-system driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 2 +- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 4 ++-- drivers/clk/at91/clk-system.c | 9 +++------ drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 2 +- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- drivers/clk/at91/sama7g5.c | 2 +- 14 files changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 9305cb6eaef2..4b8a9c27cc9e 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -196,7 +196,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) at91rm9200_systemck[5].parent_hw =3D at91rm9200_pmc->pchws[3]; for (i =3D 0; i < ARRAY_SIZE(at91rm9200_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91rm9200_systemck[i].n, - NULL, at91rm9200_systemck[i].parent_hw, + at91rm9200_systemck[i].parent_hw, at91rm9200_systemck[i].id, 0); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 97efc39a7e2b..71002ada33dd 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -475,7 +475,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, } for (i =3D 0; i < data->num_sck; i++) { hw =3D at91_clk_register_system(regmap, data->sck[i].n, - NULL, data->sck[i].parent_hw, + data->sck[i].parent_hw, data->sck[i].id, 0); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index a5bc6f5c8173..bf5951097fca 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -213,7 +213,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) at91sam9g45_systemck[3].parent_hw =3D at91sam9g45_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9g45_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9g45_systemck[i].n, - NULL, at91sam9g45_systemck[i].parent_hw, + at91sam9g45_systemck[i].parent_hw, at91sam9g45_systemck[i].id, at91sam9g45_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index b4dfe2d1de8a..fa7daab2793b 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -241,7 +241,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) at91sam9n12_systemck[5].parent_hw =3D at91sam9n12_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9n12_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9n12_systemck[i].n, - NULL, at91sam9n12_systemck[i].parent_hw, + at91sam9n12_systemck[i].parent_hw, at91sam9n12_systemck[i].id, at91sam9n12_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index 48d79189fc98..eaa757f6670a 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -164,7 +164,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) at91sam9rl_systemck[1].parent_hw =3D at91sam9rl_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9rl_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9rl_systemck[i].n, - NULL, at91sam9rl_systemck[i].parent_hw, + at91sam9rl_systemck[i].parent_hw, at91sam9rl_systemck[i].id, 0); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 93165263502e..994010f1cf03 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -265,7 +265,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, at91sam9x5_systemck[5].parent_hw =3D at91sam9x5_pmc->pchws[1]; for (i =3D 0; i < ARRAY_SIZE(at91sam9x5_systemck); i++) { hw =3D at91_clk_register_system(regmap, at91sam9x5_systemck[i].n, - NULL, at91sam9x5_systemck[i].parent_hw, + at91sam9x5_systemck[i].parent_hw, at91sam9x5_systemck[i].id, at91sam9x5_systemck[i].flags); if (IS_ERR(hw)) @@ -275,7 +275,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, } =20 if (has_lcdck) { - hw =3D at91_clk_register_system(regmap, "lcdck", NULL, + hw =3D at91_clk_register_system(regmap, "lcdck", at91sam9x5_pmc->chws[PMC_MCK], 3, 0); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c index 90eed39d0785..3f626a65ce9c 100644 --- a/drivers/clk/at91/clk-system.c +++ b/drivers/clk/at91/clk-system.c @@ -105,7 +105,7 @@ static const struct clk_ops system_ops =3D { =20 struct clk_hw * __init at91_clk_register_system(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, u8 id, + struct clk_hw *parent_hw, u8 id, unsigned long flags) { struct clk_system *sys; @@ -113,7 +113,7 @@ at91_clk_register_system(struct regmap *regmap, const c= har *name, struct clk_init_data init =3D {}; int ret; =20 - if (!(parent_name || parent_hw) || id > SYSTEM_MAX_ID) + if (!parent_hw || id > SYSTEM_MAX_ID) return ERR_PTR(-EINVAL); =20 sys =3D kzalloc(sizeof(*sys), GFP_KERNEL); @@ -122,10 +122,7 @@ at91_clk_register_system(struct regmap *regmap, const = char *name, =20 init.name =3D name; init.ops =3D &system_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_PARENT | flags; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 294e3b0e8a9d..dc8eb6036643 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -1020,7 +1020,7 @@ static void __init of_at91rm9200_clk_sys_setup(struct= device_node *np) if (!strcmp(sysclknp->name, "ddrck")) flags =3D CLK_IS_CRITICAL; =20 - hw =3D at91_clk_register_system(regmap, name, NULL, parent_hw, + hw =3D at91_clk_register_system(regmap, name, parent_hw, id, flags); if (IS_ERR(hw)) continue; diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 131ef55d3e47..bdb2dfb8fa86 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -242,7 +242,7 @@ at91sam9x5_clk_register_smd(struct regmap *regmap, cons= t char *name, =20 struct clk_hw * __init at91_clk_register_system(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, + struct clk_hw *parent_hw, u8 id, unsigned long flags); =20 struct clk_hw * __init diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index 68abd0fd47db..f344cbbc9c25 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -335,7 +335,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) sam9x60_systemck[4].parent_hw =3D sam9x60_pmc->chws[PMC_MCK]; for (i =3D 0; i < ARRAY_SIZE(sam9x60_systemck); i++) { hw =3D at91_clk_register_system(regmap, sam9x60_systemck[i].n, - NULL, sam9x60_systemck[i].parent_hw, + sam9x60_systemck[i].parent_hw, sam9x60_systemck[i].id, sam9x60_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index c64b79b44ba6..0fce17af769e 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -324,7 +324,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) sama5d2_systemck[7].parent_hw =3D sama5d2_pmc->chws[PMC_MCK]; for (i =3D 0; i < ARRAY_SIZE(sama5d2_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d2_systemck[i].n, - NULL, sama5d2_systemck[i].parent_hw, + sama5d2_systemck[i].parent_hw, sama5d2_systemck[i].id, sama5d2_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 239806dcd03d..c00380ed0000 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -246,7 +246,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) sama5d3_systemck[7].parent_hw =3D sama5d3_pmc->pchws[2]; for (i =3D 0; i < ARRAY_SIZE(sama5d3_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d3_systemck[i].n, - NULL, sama5d3_systemck[i].parent_hw, + sama5d3_systemck[i].parent_hw, sama5d3_systemck[i].id, sama5d3_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index f193460495c0..0d2a834a5903 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -269,7 +269,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) sama5d4_systemck[7].parent_hw =3D sama5d4_pmc->pchws[2]; for (i =3D 0; i < ARRAY_SIZE(sama5d4_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama5d4_systemck[i].n, - NULL, sama5d4_systemck[i].parent_hw, + sama5d4_systemck[i].parent_hw, sama5d4_systemck[i].id, sama5d4_systemck[i].flags); if (IS_ERR(hw)) diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index 0d81a955e686..61f7027f1033 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1183,7 +1183,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) =20 for (i =3D 0; i < ARRAY_SIZE(sama7g5_systemck); i++) { hw =3D at91_clk_register_system(regmap, sama7g5_systemck[i].n, - NULL, sama7g5_pmc->pchws[i], + sama7g5_pmc->pchws[i], sama7g5_systemck[i].id, 0); if (IS_ERR(hw)) goto err_free; --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8ADC8EB64DD for ; Thu, 27 Jul 2023 05:40:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229837AbjG0FkW (ORCPT ); Thu, 27 Jul 2023 01:40:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231516AbjG0Fj6 (ORCPT ); Thu, 27 Jul 2023 01:39:58 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12A4F35AA for ; Wed, 26 Jul 2023 22:38:28 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1b9c368f4b5so11743355ad.0 for ; Wed, 26 Jul 2023 22:38:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436247; x=1691041047; 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=R0MCABlKnn4W9o3M4XSOlKm6XX3ypG2eLBBMZazV5aU=; b=nSsgtq6GND/KRpXTCP6YcWA+uA/ZLZDk70vsMiY9jZtEYLHnW8HOnsHyzGgp9BWYrN yG1oLeeKD38YXZfm+r/9OtAajFL8T64g1OdK2SMlGqNymUDHHrmS3dzJdawJpxAE6HD9 m87dfNdpWlHAa1Lqkl2XtjyslgOQpOdMMfhJwhLyldvDqaaHeAipDf/UW8mImDFT2MoG QG86Usv2Dlu4HA+jYw9znLlCCRyH3R0k2AQq9r0bYH+laHUbvmEeq5jHuTAIY/XRZkEX Nni5Qo5N9kay+wvtJlQuHVDNH1bSUA3aFm7vK/cVRuXz+BtpjaISH/Q3AVwmlnMG5yo3 cdcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436247; x=1691041047; 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=R0MCABlKnn4W9o3M4XSOlKm6XX3ypG2eLBBMZazV5aU=; b=UtiHzAbZAh4B3kRMn+gK6EN20j+zoTiw2Hhs4TApiqNb2Zeg4AczxULcM/IB/TCQOt o0jSQKLowQ1JD/XuV7WBtqa6Or+aeJvbbykZYg0XE+k+8HyQE1LiJbBH7qQIRnpneA5z DmesXm5Bj7r4hqhbdjxBs3zKj4yoEFOypzp7LavIO0bm3nwFXzqKyu2pjBYtU2YYNLwo wLY5BytqEkb6wDWZVfZhhxnhQmKv+JTpweYbnjpupEUxaiInlM6R2g5FHw/ATfCmRAFk vdM+ndF9zhVgaOQUr+ewVI+pVpWtpY7TzMutSxes8pglkh85EDJJ81PGFw418miHkYGv J4fg== X-Gm-Message-State: ABy/qLYdfJTZgJJ9EerslevyKQMN70fYuED9VRyhvBVpVF/jcuP0o7n3 Aem9DnhqiSS2qEpTAyAzmU2rWw== X-Google-Smtp-Source: APBJJlHlq1g/jxGnxtE5kc0Zu6/vUpuzTqsqYM1q0IAdRpnngQGqQf7SqFxL1bbqjNqkdtAbei9jUg== X-Received: by 2002:a17:902:d50b:b0:1bb:c896:1da3 with SMTP id b11-20020a170902d50b00b001bbc8961da3mr2356971plg.24.1690436247121; Wed, 26 Jul 2023 22:37:27 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.37.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:37:26 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 41/42] clk: at91: clk-usb: remove parent_names support Date: Thu, 27 Jul 2023 08:31:55 +0300 Message-Id: <20230727053156.13587-42-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-usb driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91rm9200.c | 2 +- drivers/clk/at91/at91sam9260.c | 2 +- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9n12.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-usb.c | 35 ++++++++++++---------------------- drivers/clk/at91/dt-compat.c | 6 +++--- drivers/clk/at91/pmc.h | 8 ++++---- drivers/clk/at91/sam9x60.c | 2 +- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- 12 files changed, 28 insertions(+), 39 deletions(-) diff --git a/drivers/clk/at91/at91rm9200.c b/drivers/clk/at91/at91rm9200.c index 4b8a9c27cc9e..05060b72acab 100644 --- a/drivers/clk/at91/at91rm9200.c +++ b/drivers/clk/at91/at91rm9200.c @@ -163,7 +163,7 @@ static void __init at91rm9200_pmc_setup(struct device_n= ode *np) =20 at91rm9200_pmc->chws[PMC_MCK] =3D hw; =20 - usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", NULL, + usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", at91rm9200_pmc->chws[PMC_PLLBCK], usb_div); if (IS_ERR(usbck_hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9260.c b/drivers/clk/at91/at91sam9260.c index 71002ada33dd..2b0ffcee9e40 100644 --- a/drivers/clk/at91/at91sam9260.c +++ b/drivers/clk/at91/at91sam9260.c @@ -436,7 +436,7 @@ static void __init at91sam926x_pmc_setup(struct device_= node *np, =20 at91sam9260_pmc->chws[PMC_MCK] =3D hw; =20 - usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", NULL, + usbck_hw =3D at91rm9200_clk_register_usb(regmap, "usbck", at91sam9260_pmc->chws[PMC_PLLBCK], usb_div); if (IS_ERR(usbck_hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index bf5951097fca..1e5262b678f5 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -182,7 +182,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) =20 parent_hws[0] =3D at91sam9g45_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D at91sam9g45_pmc->chws[PMC_UTMI]; - usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_hws, 2); if (IS_ERR(usbck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9n12.c b/drivers/clk/at91/at91sam9n12.c index fa7daab2793b..9b4e28b9f21b 100644 --- a/drivers/clk/at91/at91sam9n12.c +++ b/drivers/clk/at91/at91sam9n12.c @@ -207,7 +207,7 @@ static void __init at91sam9n12_pmc_setup(struct device_= node *np) =20 at91sam9n12_pmc->chws[PMC_MCK] =3D hw; =20 - usbck_hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", NULL, + usbck_hw =3D at91sam9n12_clk_register_usb(regmap, "usbck", at91sam9n12_pmc->chws[PMC_PLLBCK]); if (IS_ERR(usbck_hw)) goto err_free; diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 994010f1cf03..1968dd69fbf7 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -228,7 +228,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, =20 parent_hws[0] =3D at91sam9x5_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D at91sam9x5_pmc->chws[PMC_UTMI]; - usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_hws, 2); if (IS_ERR(usbck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c index 21f50914c63e..37ea588cb534 100644 --- a/drivers/clk/at91/clk-usb.c +++ b/drivers/clk/at91/clk-usb.c @@ -221,7 +221,7 @@ static const struct clk_ops at91sam9n12_usb_ops =3D { =20 static struct clk_hw * __init _at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents, u32 usbs_mask) { struct at91sam9x5_clk_usb *usb; @@ -235,10 +235,7 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, co= nst char *name, =20 init.name =3D name; init.ops =3D &at91sam9x5_usb_ops; - if (parent_hws) - init.parent_hws =3D (const struct clk_hw **)parent_hws; - else - init.parent_names =3D parent_names; + init.parent_hws =3D (const struct clk_hw **)parent_hws; init.num_parents =3D num_parents; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE | CLK_SET_RATE_PARENT; @@ -260,26 +257,25 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, c= onst char *name, =20 struct clk_hw * __init at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents) { - return _at91sam9x5_clk_register_usb(regmap, name, parent_names, - parent_hws, num_parents, SAM9X5_USBS_MASK); + return _at91sam9x5_clk_register_usb(regmap, name, parent_hws, + num_parents, SAM9X5_USBS_MASK); } =20 struct clk_hw * __init sam9x60_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents) { - return _at91sam9x5_clk_register_usb(regmap, name, parent_names, - parent_hws, num_parents, - SAM9X60_USBS_MASK); + return _at91sam9x5_clk_register_usb(regmap, name, parent_hws, + num_parents, SAM9X60_USBS_MASK); } =20 struct clk_hw * __init at91sam9n12_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { struct at91sam9x5_clk_usb *usb; struct clk_hw *hw; @@ -292,10 +288,7 @@ at91sam9n12_clk_register_usb(struct regmap *regmap, co= nst char *name, =20 init.name =3D name; init.ops =3D &at91sam9n12_usb_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT; =20 @@ -399,8 +392,7 @@ static const struct clk_ops at91rm9200_usb_ops =3D { =20 struct clk_hw * __init at91rm9200_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, - const u32 *divisors) + struct clk_hw *parent_hw, const u32 *divisors) { struct at91rm9200_clk_usb *usb; struct clk_hw *hw; @@ -413,10 +405,7 @@ at91rm9200_clk_register_usb(struct regmap *regmap, con= st char *name, =20 init.name =3D name; init.ops =3D &at91rm9200_usb_ops; - if (parent_hw) - init.parent_hws =3D (const struct clk_hw **)&parent_hw; - else - init.parent_names =3D &parent_name; + init.parent_hws =3D (const struct clk_hw **)&parent_hw; init.num_parents =3D 1; init.flags =3D CLK_SET_RATE_PARENT; =20 diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index dc8eb6036643..285ede5d6702 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -1065,7 +1065,7 @@ static void __init of_at91sam9x5_clk_usb_setup(struct= device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9x5_clk_register_usb(regmap, name, NULL, parent_hws, + hw =3D at91sam9x5_clk_register_usb(regmap, name, parent_hws, num_parents); if (IS_ERR(hw)) return; @@ -1099,7 +1099,7 @@ static void __init of_at91sam9n12_clk_usb_setup(struc= t device_node *np) if (IS_ERR(regmap)) return; =20 - hw =3D at91sam9n12_clk_register_usb(regmap, name, NULL, parent_hw); + hw =3D at91sam9n12_clk_register_usb(regmap, name, parent_hw); if (IS_ERR(hw)) return; =20 @@ -1136,7 +1136,7 @@ static void __init of_at91rm9200_clk_usb_setup(struct= device_node *np) of_node_put(parent_np); if (IS_ERR(regmap)) return; - hw =3D at91rm9200_clk_register_usb(regmap, name, NULL, parent_hw, divisor= s); + hw =3D at91rm9200_clk_register_usb(regmap, name, parent_hw, divisors); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index bdb2dfb8fa86..5e65f5b59536 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -247,18 +247,18 @@ at91_clk_register_system(struct regmap *regmap, const= char *name, =20 struct clk_hw * __init at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents); struct clk_hw * __init at91sam9n12_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); struct clk_hw * __init sam9x60_clk_register_usb(struct regmap *regmap, const char *name, - const char **parent_names, struct clk_hw **parent_hws, + struct clk_hw **parent_hws, u8 num_parents); struct clk_hw * __init at91rm9200_clk_register_usb(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw, + struct clk_hw *parent_hw, const u32 *divisors); =20 struct clk_hw * __init diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c index f344cbbc9c25..b3dfdcbc950f 100644 --- a/drivers/clk/at91/sam9x60.c +++ b/drivers/clk/at91/sam9x60.c @@ -302,7 +302,7 @@ static void __init sam9x60_pmc_setup(struct device_node= *np) parent_hws[0] =3D sam9x60_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D sam9x60_pmc->chws[PMC_UTMI]; parent_hws[2] =3D main_osc_hw; - usbck_hw =3D sam9x60_clk_register_usb(regmap, "usbck", NULL, parent_hws, = 3); + usbck_hw =3D sam9x60_clk_register_usb(regmap, "usbck", parent_hws, 3); if (IS_ERR(usbck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index 0fce17af769e..fa14c6f7d37a 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -288,7 +288,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) =20 parent_hws[0] =3D sama5d2_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D sama5d2_pmc->chws[PMC_UTMI]; - usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_hws, 2); if (IS_ERR(usbck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index c00380ed0000..0713a6b21c8a 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -207,7 +207,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) =20 parent_hws[0] =3D sama5d3_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D sama5d3_pmc->chws[PMC_UTMI]; - usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_hws, 2); if (IS_ERR(usbck_hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index 0d2a834a5903..d0bd025876ac 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -228,7 +228,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 parent_hws[0] =3D sama5d4_pmc->chws[PMC_PLLACK]; parent_hws[1] =3D sama5d4_pmc->chws[PMC_UTMI]; - usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", NULL, parent_hw= s, 2); + usbck_hw =3D at91sam9x5_clk_register_usb(regmap, "usbck", parent_hws, 2); if (IS_ERR(usbck_hw)) goto err_free; =20 --=20 2.39.2 From nobody Sun Feb 8 17:03:32 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03BC3EB64DD for ; Thu, 27 Jul 2023 05:41:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232292AbjG0FlK (ORCPT ); Thu, 27 Jul 2023 01:41:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232250AbjG0Fkj (ORCPT ); Thu, 27 Jul 2023 01:40:39 -0400 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B4758468A for ; Wed, 26 Jul 2023 22:39:04 -0700 (PDT) Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-55bac17b442so375914a12.3 for ; Wed, 26 Jul 2023 22:39:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1690436256; x=1691041056; 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=MGj8fnk95YF2UgdI2+UIkZtkwoXa64ISRzxRMHwyox0=; b=Ywm0o4powSfA2UBaRTJ5e3QOp6qBwwzYfKaQmkfZK/cBIgZdByQLZqDG7g9hldVmrK LKfjfKHmR2IiQ/fRAOkdCtHvT7hGVEOHfPjw4z9qJcpoQaDxBaO/lVEoftBYH1QZoagv 3M+aB/7QeDbpipvYgJez7zdvLG8usjeXwsWeIKaeRK6hdfC3KFeCrk/iU4R1VLMw+22r cKNyIA0EtTZrh6B9awVPGuC7Gn+GnvldlKxwprAE6+FGOuZIOVr0TikSguzyb0A9/F3f qdnIOg2GLQRDiVojDSeSbSUN1kOm8vQ9QO6+wrqu0NBtZhomZyHr/pKAKCvp22T3a00q 1smQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690436256; x=1691041056; 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=MGj8fnk95YF2UgdI2+UIkZtkwoXa64ISRzxRMHwyox0=; b=gvnEzo7EQvuD8a2P1rj8Jb5j2Y8+6guBfOREk0G8WRJbIV+oeqkE/3J5IllZ8QoIto jxieTVqNHPBOK2Y9wQWBOJkNBYCkzSSJ7vcH/UaTjkD1DCpH8GgC+88V6Nxmm8Vkk1fN tjqplINMjD4Ev3yf8RVFuq8htApQCiidY9LTb2Kabh6EgklRnyKnA5SV1j0mJgAgb0Tl QAhyg6sFIUA6m/efMT96Dx7OXRnV5yJmhnt1vyuE4/1k/FYuOpML1bv8jfws1yrj8CnB ugkZFWRqu6MkmIAXnOMR18CEXZuiFWT2sfrzJrTJQqziw0k19+T86IHuSqNjv0lhikRz 0lRg== X-Gm-Message-State: ABy/qLZ2+irvwqw16sz+uBt+O9jVS/NsEbcahBR+siqJs/FKCoGO2esA TchdSkG8NdSfkU7zYBQbwXQttA== X-Google-Smtp-Source: APBJJlFvFb4k1Z2ecpW1EVwDrhqZYgAuvp4+vjV9Qd1lMw5gzgmBXW6LFcQ6J7aI7tCDRnM60zb36Q== X-Received: by 2002:a17:90a:df86:b0:267:f99f:492f with SMTP id p6-20020a17090adf8600b00267f99f492fmr3348479pjv.48.1690436256696; Wed, 26 Jul 2023 22:37:36 -0700 (PDT) Received: from localhost.localdomain ([82.78.167.79]) by smtp.gmail.com with ESMTPSA id 21-20020a170902c11500b001bb889530adsm319059pli.217.2023.07.26.22.37.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 22:37:36 -0700 (PDT) From: Claudiu Beznea To: mturquette@baylibre.com, sboyd@kernel.org, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, mripard@kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, varshini.rajendran@microchip.com, Claudiu Beznea Subject: [PATCH 42/42] clk: at91: clk-utmi: remove parent_names support Date: Thu, 27 Jul 2023 08:31:56 +0300 Message-Id: <20230727053156.13587-43-claudiu.beznea@tuxon.dev> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> References: <20230727053156.13587-1-claudiu.beznea@tuxon.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Remove parent_names support as parent_hw support is now available on all platforms using clk-utmi driver. Signed-off-by: Claudiu Beznea --- drivers/clk/at91/at91sam9g45.c | 2 +- drivers/clk/at91/at91sam9rl.c | 2 +- drivers/clk/at91/at91sam9x5.c | 2 +- drivers/clk/at91/clk-utmi.c | 23 ++++++++--------------- drivers/clk/at91/dt-compat.c | 2 +- drivers/clk/at91/pmc.h | 5 ++--- drivers/clk/at91/sama5d2.c | 2 +- drivers/clk/at91/sama5d3.c | 2 +- drivers/clk/at91/sama5d4.c | 2 +- drivers/clk/at91/sama7g5.c | 2 +- 10 files changed, 18 insertions(+), 26 deletions(-) diff --git a/drivers/clk/at91/at91sam9g45.c b/drivers/clk/at91/at91sam9g45.c index 1e5262b678f5..1a20ce75201b 100644 --- a/drivers/clk/at91/at91sam9g45.c +++ b/drivers/clk/at91/at91sam9g45.c @@ -152,7 +152,7 @@ static void __init at91sam9g45_pmc_setup(struct device_= node *np) =20 at91sam9g45_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9g45_p= mc->chws[PMC_MAIN]); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", at91sam9g45_pmc->ch= ws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9rl.c b/drivers/clk/at91/at91sam9rl.c index eaa757f6670a..05ea2bf3c73b 100644 --- a/drivers/clk/at91/at91sam9rl.c +++ b/drivers/clk/at91/at91sam9rl.c @@ -112,7 +112,7 @@ static void __init at91sam9rl_pmc_setup(struct device_n= ode *np) =20 at91sam9rl_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9rl_pm= c->chws[PMC_MAIN]); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", at91sam9rl_pmc->chw= s[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 1968dd69fbf7..b3a7d5803168 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -200,7 +200,7 @@ static void __init at91sam9x5_pmc_setup(struct device_n= ode *np, =20 at91sam9x5_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, at91sam9x5_pm= c->chws[PMC_MAIN]); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", at91sam9x5_pmc->chw= s[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/clk-utmi.c b/drivers/clk/at91/clk-utmi.c index 40c84f5af5e8..8e2cf4893609 100644 --- a/drivers/clk/at91/clk-utmi.c +++ b/drivers/clk/at91/clk-utmi.c @@ -143,8 +143,7 @@ static const struct clk_ops utmi_ops =3D { static struct clk_hw * __init at91_clk_register_utmi_internal(struct regmap *regmap_pmc, struct regmap *regmap_sfr, - const char *name, const char *parent_name, - struct clk_hw *parent_hw, + const char *name, struct clk_hw *parent_hw, const struct clk_ops *ops, unsigned long flags) { struct clk_utmi *utmi; @@ -152,7 +151,7 @@ at91_clk_register_utmi_internal(struct regmap *regmap_p= mc, struct clk_init_data init =3D {}; int ret; =20 - if (!(parent_name || parent_hw)) + if (!parent_hw) return ERR_PTR(-EINVAL); =20 utmi =3D kzalloc(sizeof(*utmi), GFP_KERNEL); @@ -161,13 +160,8 @@ at91_clk_register_utmi_internal(struct regmap *regmap_= pmc, =20 init.name =3D name; init.ops =3D ops; - if (parent_hw) { - init.parent_hws =3D parent_hw ? (const struct clk_hw **)&parent_hw : NUL= L; - init.num_parents =3D parent_hw ? 1 : 0; - } else { - init.parent_names =3D parent_name ? &parent_name : NULL; - init.num_parents =3D parent_name ? 1 : 0; - } + init.parent_hws =3D parent_hw ? (const struct clk_hw **)&parent_hw : NULL; + init.num_parents =3D parent_hw ? 1 : 0; init.flags =3D flags; =20 utmi->hw.init =3D &init; @@ -186,11 +180,10 @@ at91_clk_register_utmi_internal(struct regmap *regmap= _pmc, =20 struct clk_hw * __init at91_clk_register_utmi(struct regmap *regmap_pmc, struct regmap *regmap_sf= r, - const char *name, const char *parent_name, - struct clk_hw *parent_hw) + const char *name, struct clk_hw *parent_hw) { return at91_clk_register_utmi_internal(regmap_pmc, regmap_sfr, name, - parent_name, parent_hw, &utmi_ops, CLK_SET_RATE_GATE); + parent_hw, &utmi_ops, CLK_SET_RATE_GATE); } =20 static int clk_utmi_sama7g5_prepare(struct clk_hw *hw) @@ -289,8 +282,8 @@ static const struct clk_ops sama7g5_utmi_ops =3D { =20 struct clk_hw * __init at91_clk_sama7g5_register_utmi(struct regmap *regmap_pmc, const char *name, - const char *parent_name, struct clk_hw *parent_hw) + struct clk_hw *parent_hw) { return at91_clk_register_utmi_internal(regmap_pmc, NULL, name, - parent_name, parent_hw, &sama7g5_utmi_ops, 0); + parent_hw, &sama7g5_utmi_ops, 0); } diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c index 285ede5d6702..68211b36c8f6 100644 --- a/drivers/clk/at91/dt-compat.c +++ b/drivers/clk/at91/dt-compat.c @@ -1189,7 +1189,7 @@ static void __init of_at91sam9x5_clk_utmi_setup(struc= t device_node *np) regmap_sfr =3D NULL; } =20 - hw =3D at91_clk_register_utmi(regmap_pmc, regmap_sfr, name, NULL, parent_= hw); + hw =3D at91_clk_register_utmi(regmap_pmc, regmap_sfr, name, parent_hw); if (IS_ERR(hw)) return; =20 diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h index 5e65f5b59536..889230d29bf2 100644 --- a/drivers/clk/at91/pmc.h +++ b/drivers/clk/at91/pmc.h @@ -263,11 +263,10 @@ at91rm9200_clk_register_usb(struct regmap *regmap, co= nst char *name, =20 struct clk_hw * __init at91_clk_register_utmi(struct regmap *regmap_pmc, struct regmap *regmap_sf= r, - const char *name, const char *parent_name, - struct clk_hw *parent_hw); + const char *name, struct clk_hw *parent_hw); =20 struct clk_hw * __init at91_clk_sama7g5_register_utmi(struct regmap *regmap, const char *name, - const char *parent_name, struct clk_hw *parent_hw); + struct clk_hw *parent_hw); =20 #endif /* __PMC_H_ */ diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index fa14c6f7d37a..cf1f34a69862 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -253,7 +253,7 @@ static void __init sama5d2_pmc_setup(struct device_node= *np) if (IS_ERR(regmap_sfr)) regmap_sfr =3D NULL; =20 - hw =3D at91_clk_register_utmi(regmap, regmap_sfr, "utmick", NULL, + hw =3D at91_clk_register_utmi(regmap, regmap_sfr, "utmick", sama5d2_pmc->chws[PMC_MAIN]); if (IS_ERR(hw)) goto err_free; diff --git a/drivers/clk/at91/sama5d3.c b/drivers/clk/at91/sama5d3.c index 0713a6b21c8a..707e501b1a73 100644 --- a/drivers/clk/at91/sama5d3.c +++ b/drivers/clk/at91/sama5d3.c @@ -179,7 +179,7 @@ static void __init sama5d3_pmc_setup(struct device_node= *np) =20 sama5d3_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, mainck_hw); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", mainck_hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama5d4.c b/drivers/clk/at91/sama5d4.c index d0bd025876ac..542c7cccda46 100644 --- a/drivers/clk/at91/sama5d4.c +++ b/drivers/clk/at91/sama5d4.c @@ -194,7 +194,7 @@ static void __init sama5d4_pmc_setup(struct device_node= *np) =20 sama5d4_pmc->chws[PMC_PLLACK] =3D hw; =20 - hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", NULL, mainck_hw); + hw =3D at91_clk_register_utmi(regmap, NULL, "utmick", mainck_hw); if (IS_ERR(hw)) goto err_free; =20 diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c index 61f7027f1033..012e992ce14b 100644 --- a/drivers/clk/at91/sama7g5.c +++ b/drivers/clk/at91/sama7g5.c @@ -1151,7 +1151,7 @@ static void __init sama7g5_pmc_setup(struct device_no= de *np) sama7g5_pmc->chws[sama7g5_mckx[i].eid] =3D hw; } =20 - hw =3D at91_clk_sama7g5_register_utmi(regmap, "utmick", NULL, main_xtal_h= w); + hw =3D at91_clk_sama7g5_register_utmi(regmap, "utmick", main_xtal_hw); if (IS_ERR(hw)) goto err_free; =20 --=20 2.39.2