Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2834440pxk; Sun, 6 Sep 2020 15:50:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWOSAa7HGB7C38xDSnF7rK42y0VsQGdmMI+gRh9hTMI1ruN/Sj8RSy7OMklmcSDWBtRVmc X-Received: by 2002:aa7:d4d2:: with SMTP id t18mr18877418edr.55.1599432634190; Sun, 06 Sep 2020 15:50:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599432634; cv=none; d=google.com; s=arc-20160816; b=0uan3AbPl42eWoAS/0DUl6oMxBsZjMG7DyP0LGG6gM51XjS8CIqTFwB5Da4qoAVhNf ZICTc3JgMpaIfEq4fWMpplnp0Nqro/GinHXrWcceAiZ5FmImJkeNDoePLrUva1m9nCP8 96YS6NgwTiqohIPsUVYvimC0HqQfrUliM5330KD4SzH3CrIFV/XEFkfTIaxpajer2rCb O83fSsARsrpJzImlTtZM+5NBdOHgapepET5rCmh5MQCgT6ZLzFrrY6LgMJ8ax9Gol4pX VkkUKDEzDIJSt9ujdGm0srl0ZhzljtN4ZhuhDV+C7Ttfa9x9Drwt8+Jz8ACeFWA1aCTQ E3Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=6qw7fl5AmKCHZkzq5tGwFqoXY0pKCFvGzgZzJ7tQKXA=; b=BFq93JoyonQUG7uGa8ijYrlGRUSyAPyQYcZcrP2Vkniw3dZ++exGt5hQUd7/H/oCy3 KexPKyTLqaJagAIpgc/3L0PN75MXH8oh7LH/TSEVyWsTZKaOQMFl5zg6+OcDFLBMMp3A xwxsjnoFUgvkbfGo3T+ZI68m5qYeOSGn9NTe3JgQwHKdqEs/X5r1t3N9WSvESWcUCMv3 2vwgqPWpbXsF0Yhlhche2BsVeT59jR6WOVBwSyUANLqkBp5f2ZL3JP6yQUR+6Nt1RLVv vJZkHxKWq0ll1jxEvBKTyGBVYkMRvyS2eKGmd3yHcGTkhp3OfzE4tPFyUBmxH8xVC3Gz U4Ig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qp7si371472ejb.550.2020.09.06.15.50.11; Sun, 06 Sep 2020 15:50:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726653AbgIFWtf (ORCPT + 99 others); Sun, 6 Sep 2020 18:49:35 -0400 Received: from gloria.sntech.de ([185.11.138.130]:38472 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726165AbgIFWtc (ORCPT ); Sun, 6 Sep 2020 18:49:32 -0400 Received: from ip5f5aa64a.dynamic.kabel-deutschland.de ([95.90.166.74] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kF3TU-0002fd-Ag; Mon, 07 Sep 2020 00:49:28 +0200 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: Elaine Zhang Cc: mturquette@baylibre.com, sboyd@kernel.org, linux-clk@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, xxx@rock-chips.com, xf@rock-chips.com, huangtao@rock-chips.com, kever.yang@rock-chips.com, Elaine Zhang Subject: Re: [PATCH v3 6/6] clk: rockchip: rk3399: Support module build Date: Mon, 07 Sep 2020 00:49:27 +0200 Message-ID: <3524790.GmC4BGDxql@diego> In-Reply-To: <20200904074505.24917-1-zhangqing@rock-chips.com> References: <20200904074405.24439-1-zhangqing@rock-chips.com> <20200904074505.24917-1-zhangqing@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Freitag, 4. September 2020, 09:45:05 CEST schrieb Elaine Zhang: > support CLK_OF_DECLARE and builtin_platform_driver_probe > double clk init method. > add module author, description and license to support building > Soc Rk3399 clock driver as module. > > Signed-off-by: Elaine Zhang > Reviewed-by: Kever Yang > --- > drivers/clk/rockchip/clk-rk3399.c | 55 +++++++++++++++++++++++++++++++ > 1 file changed, 55 insertions(+) > > diff --git a/drivers/clk/rockchip/clk-rk3399.c b/drivers/clk/rockchip/clk-rk3399.c > index ce1d2446f142..40ff17aee5b6 100644 > --- a/drivers/clk/rockchip/clk-rk3399.c > +++ b/drivers/clk/rockchip/clk-rk3399.c > @@ -5,9 +5,11 @@ > */ > > #include > +#include > #include > #include > #include > +#include > #include > #include > #include > @@ -1600,3 +1602,56 @@ static void __init rk3399_pmu_clk_init(struct device_node *np) > rockchip_clk_of_add_provider(np, ctx); > } > CLK_OF_DECLARE(rk3399_cru_pmu, "rockchip,rk3399-pmucru", rk3399_pmu_clk_init); > + > +struct clk_rk3399_inits { > + void (*inits)(struct device_node *np); > +}; > + > +static const struct clk_rk3399_inits clk_rk3399_pmucru_init = { > + .inits = rk3399_pmu_clk_init, > +}; > + > +static const struct clk_rk3399_inits clk_rk3399_cru_init = { > + .inits = rk3399_clk_init, > +}; > + > +static const struct of_device_id clk_rk3399_match_table[] = { > + { > + .compatible = "rockchip,rk3399-cru", > + .data = &clk_rk3399_cru_init, > + }, { > + .compatible = "rockchip,rk3399-pmucru", > + .data = &clk_rk3399_pmucru_init, > + }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, clk_rk3399_match_table); > + > +static int __init clk_rk3399_probe(struct platform_device *pdev) > +{ > + struct device_node *np = pdev->dev.of_node; > + const struct of_device_id *match; > + const struct clk_rk3399_inits *init_data; > + > + match = of_match_device(clk_rk3399_match_table, &pdev->dev); > + if (!match || !match->data) > + return -EINVAL; > + > + init_data = match->data; > + if (init_data->inits) > + init_data->inits(np); > + > + return 0; > +} > + > +static struct platform_driver clk_rk3399_driver = { > + .driver = { > + .name = "clk-rk3399", > + .of_match_table = clk_rk3399_match_table, I guess we probably want .suppress_bind_attrs = true, here, because there is no unloading. Also what happens when you try to rmmod the module? Heiko