From patchwork Sun Jan 1 17:57:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 2602 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id EF28440F49 for ; Sun, 1 Jan 2023 18:58:00 +0100 (CET) Received: by mail-ed1-f72.google.com with SMTP id c12-20020a05640227cc00b004853521ef55sf10681008ede.8 for ; Sun, 01 Jan 2023 09:58:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672595880; cv=pass; d=google.com; s=arc-20160816; b=ft8hi6TpQIObeia7BU0NHTHAhctepVUCkJs4d6w4RwxpogCYmPLRRVRSidQLHzBFKG OABqoT3nlTkB7TtJsimGN31cDeQ1t2Rt1T1xp7jYlLDUm7WkY+m4osEazCFHnpYmRkTP fqmxrV0JhhBTvlPs4WGKMiq+vamLu7LjCEvUrFBHCDsMVcaBpmtRzzDcxFyNocT8SGcO rym25kwa2HTufijBUYkoapUlR52UeRPCvtyVuSKd2anhMrFhPSAMXyJmcPfmjA+67DnR H8BvPIJInSjmipD8jNVbvQOAv8MMgZxvDKZkTz2D115YoIjZYDD5yRbM2mOq0pHKeJUS SSXQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=XGypjn8keIKXeSgeJD3DaTgCL/iO9NmL0jw9hNR2DuM=; b=neZCcGhNtuu07JZ77TJnN1V+epHLpd2WugRXzzx3BSonBcPDqV+l50KR5XojDISV24 UyeYSphUs531TZT/FfC8iUKD05dDd3Qv3o8GGW9icKF+JGSfV7HrhcSpesPTCquYGH9V ygPcsQNb+UfRnhFw93qWblCp3EI0ER2Cn0M08Cb1cP/yJD6S12uktsNjXAUjf2i6lO6l gMCU3gaMuAG6g/W2QOOhYUQOjfZK5T6oBdtME8oISLbUesZYCuTDSh87fvPAS8lsGQTn 0LDK9b17jk13hJiCeyHoaUfiHoTrti2cM1vejkyZ06/wLzh/6tBz5IpiJOqT4KMHm1sV WCIg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=mJe4b2Ri; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=XGypjn8keIKXeSgeJD3DaTgCL/iO9NmL0jw9hNR2DuM=; b=YOMVoi6MN7Wmi/VYK4YwGV13tux3a+M0LKnpB4xnkw9qM2vr186MA5e+H2QZF8rx97 jSlDfKMCq8Ebq40kWgbqMrDS2GmZEx5H1h+rlBvoPls+fMvTuuOL+cdqt/Gbypp9Rka1 U3tbbuoQaQyVAnNO9EECPncXa5/Mt0g56KssM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender: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=XGypjn8keIKXeSgeJD3DaTgCL/iO9NmL0jw9hNR2DuM=; b=JZ9PZbmA9l065eL6v/TTgaz9ZlXI/Ccp/ZbLT3hpZQz0ABdifaF4OrmZ6Pmhk0XaIU z+w9CedKk/g8Xl5mrf2SdwUZ7iLBsiNiwGulH/q9jl85vJg42HPKWYQfSKTLJ+B2kwHk 3j8tWrt0AejMMb4HSfd2OifOmWGDoNCFbldvOYi9LwbNzxZWUEA+0ni/gwXZui1w3KdH iMDeZdAb37NtUOR23L3y2u+VCFZwAvr5u2TvNv2tzdIwEFLL7E6aYfD0VK+EDhyMJEee 0lryuRu8gR/Sv8h0x/2ywnhaaYvZSD31sbva79TspvcZZ3gWQ3R0n/PkZdZg22NNq868 TO7Q== X-Gm-Message-State: AFqh2kr6ThTfbWf1inljEFcYzknsyurJAdD0mgKkvbK1zQrb5HcMRt0b SulmMQ7aihVl9Vr20uWKQCrcb3Fg X-Google-Smtp-Source: AMrXdXsEF6MFpOpUWvbKZYNSr5gXBdFBCqGazEUH066uLXokio1mLrZJPFT5kFtNkyH1rXnDVoKoKA== X-Received: by 2002:a17:906:f0d3:b0:7fc:4355:d390 with SMTP id dk19-20020a170906f0d300b007fc4355d390mr2675250ejb.696.1672595880834; Sun, 01 Jan 2023 09:58:00 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:906:3db1:b0:7a7:f2a:d325 with SMTP id y17-20020a1709063db100b007a70f2ad325ls2014116ejh.10.-pod-prod-gmail; Sun, 01 Jan 2023 09:57:59 -0800 (PST) X-Received: by 2002:a17:906:99d1:b0:7c1:12ef:bf52 with SMTP id s17-20020a17090699d100b007c112efbf52mr30509854ejn.3.1672595879748; Sun, 01 Jan 2023 09:57:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672595879; cv=none; d=google.com; s=arc-20160816; b=V60RFSQCfo2v4/SAQ+UDxfYUHnBd7XKLGUSQR64JKeZUmQzvheOLwsdpYk0gIQmn+Q F7MfiPxY8Mw/go6ZEf5okd8XJAaJwPJj7xBUY4yDSdDGMGXmaX31SJfm1LDs49e9PVln Wp6a20wDAQEBgKTZlnPoS5MrBXf+3yqycHfO+YjtLkFBwjY+y0y51JH8M4eNqbLOgrqC Rby+IBucyROJp52ppIF9VqJfPL1X7Qer0jrgTau8vq5xMIUAWMz2C7WtheBS75/F1MMK FWmCtqlKBjKd1iDtVv1kj/XoC70dtWf/dalCsXcBkoqcBLQGN3dQwSpG7uhAn1ZgfH/d QNrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=5ANQd6bXt3IGDoNEOc8NxJt3wMiyzrQXu+RqmVmBeDs=; b=EFwL84nVP+5Q5iweXrsJQnzf5cN+x/bHOZOvEwA5k4z9/WAryz+0UQQskI+G+yg6Ns DOlMdR5nPNEXOtu8U/Bpz/LwVo+o/8DkhWTrByBajyD1UeJ/WZeYj4EGtmYY6dDXfWdK w03zk6S2mJaVzZbLUdizfQ1SXRXOZYaImBIZwPNgPD9U0+Octcm/BzYISbnYA1SKlQwT 4uTQ2uqIxQUkHRN1eXw4HkEQBImHGwWYhvP6AjYegR2lRlqTkQ8ZCkOpqyuBF1ciJDyA b0Kw7iIaNKqE3qOq62oHy6gmh/OXnnSPntX6P65JhbrpAFSJ01FQ4syS9oyDQTp6sVYW vWrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=mJe4b2Ri; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id st14-20020a170907c08e00b007c1031b0224sor11476274ejc.31.2023.01.01.09.57.59 for (Google Transport Security); Sun, 01 Jan 2023 09:57:59 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a17:907:72d3:b0:7c0:fd1e:972e with SMTP id du19-20020a17090772d300b007c0fd1e972emr42553684ejc.46.1672595879577; Sun, 01 Jan 2023 09:57:59 -0800 (PST) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-80-180-23-57.retail.telecomitalia.it. [80.180.23.57]) by smtp.gmail.com with ESMTPSA id q2-20020a1709063d4200b0082ddfb47d06sm12273018ejf.148.2023.01.01.09.57.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Jan 2023 09:57:59 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: angelo@amarulasolutions.com, michael@amarulasolutions.com, tommaso.merciai@amarulasolutions.com, Chen-Yu Tsai , linux-amarula@amarulasolutions.com, anthony@amarulasolutions.com, jagan@amarulasolutions.com, Dario Binacchi , Abel Vesa , Fabio Estevam , Michael Turquette , NXP Linux Team , Pengutronix Kernel Team , Sascha Hauer , Shawn Guo , Stephen Boyd , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org Subject: [RFC PATCH v2 09/11] clk: imx: cpu: add device tree support Date: Sun, 1 Jan 2023 18:57:38 +0100 Message-Id: <20230101175740.1010258-10-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20230101175740.1010258-1-dario.binacchi@amarulasolutions.com> References: <20230101175740.1010258-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=mJe4b2Ri; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The patch, backwards compatible, extends the driver to initialize the clock directly from the device tree. Signed-off-by: Dario Binacchi --- (no changes since v1) drivers/clk/imx/clk-cpu.c | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/drivers/clk/imx/clk-cpu.c b/drivers/clk/imx/clk-cpu.c index cb6ca4cf0535..28fb75c6ecea 100644 --- a/drivers/clk/imx/clk-cpu.c +++ b/drivers/clk/imx/clk-cpu.c @@ -106,3 +106,57 @@ struct clk_hw *imx_clk_hw_cpu(const char *name, const char *parent_name, return hw; } EXPORT_SYMBOL_GPL(imx_clk_hw_cpu); + +/** + * of_imx_cpu_clk_setup - Setup function for imx low power gate + * clock + * @node: device node for the clock + */ +static void __init of_imx_cpu_clk_setup(struct device_node *node) +{ + struct clk_hw *hw; + struct clk *parent_clk, *div, *mux, *pll, *step; + const char *name = node->name, *parent_name; + + parent_clk = of_clk_get_by_name(node, "fck"); + if (IS_ERR(parent_clk)) { + pr_err("failed to get parent clock for %pOFn\n", node); + return; + } + + div = of_clk_get_by_name(node, "div-clk"); + if (IS_ERR(div)) { + pr_err("failed to get div clock for %pOFn\n", node); + return; + } + + mux = of_clk_get_by_name(node, "mux-clk"); + if (IS_ERR(div)) { + pr_err("failed to get mux clock for %pOFn\n", node); + return; + } + + pll = of_clk_get_by_name(node, "pll-clk"); + if (IS_ERR(div)) { + pr_err("failed to get pll clock for %pOFn\n", node); + return; + } + + step = of_clk_get_by_name(node, "step-clk"); + if (IS_ERR(div)) { + pr_err("failed to get step clock for %pOFn\n", node); + return; + } + + parent_name = __clk_get_name(parent_clk); + of_property_read_string(node, "clock-output-names", &name); + + hw = imx_clk_hw_cpu(name, parent_name, div, mux, pll, step); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw); + + pr_debug("name: %s, parent: %s, div: %s, mux: %s, pll: %s, step: %s\n", + name, parent_name, __clk_get_name(div), __clk_get_name(mux), + __clk_get_name(pll), __clk_get_name(step)); +} +CLK_OF_DECLARE(fsl_cpu_clk, "fsl,cpu-clock", of_imx_cpu_clk_setup);