From patchwork Thu May 19 13:47:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855220 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4E423C433FE for ; Thu, 19 May 2022 14:54:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=SSktGLy43CNZ9iLmhcWIJ7Uq5iCf8ISUISKQ4ytE1og=; b=lFdrxcSYvmOSsz cwrdm8pqD2QrQBOnzghNwp9uoJ0CFG10WdWtoSKxnowwzMXTSP0DNUPDuIM0D4DKsuis8guDG8t+a s1VwsMnnD/4ZtyTjuVUo/sDAfbYl3wviw62v/QMlwWb5Dxx9aoPncGcldq4tFip7yF7rIUu0QqT3m uUuwidnL0fA98dfBXZJi6LthMFG16GFF3wScWqjvmsE7pV6sCQXeojiEgbNhykjl+xbaL9JZzlgRM PI/CDREBFB0Ms50zC7lgMnkQd6bpGR6BYfvYXN7BrYV4BGeCFiVnYLQ0hmRW9z4vNteSOo5SgLxLX MNTyHRfrbAXF5fUWW0pg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhWB-007c2S-6y; Thu, 19 May 2022 14:52:48 +0000 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgWr-0078Oo-Gm; Thu, 19 May 2022 13:49:27 +0000 Received: by mail-qv1-xf31.google.com with SMTP id ej7so4590934qvb.13; Thu, 19 May 2022 06:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0XR4ztzwAfmurkh92tXKLFkllUmpZEqqatJbPeBbcOM=; b=m+kywaRl9XQL9PMsizCVDjVI4pa4msSwSGHHkLzTxeizpWwebWTLOtp0fGGy7zcdA3 JNUQc3vk1MYM56qDik0bw+s1rFMdPA5/2s5l7IdzpbBj1Nno28ggt0dM2M84iU4cW+ba 7mtzTUMAGu0K/k8LTaw9Cz27HE6mHrCe32yDTj5h3kXfwxm0rPqC+v7p4u8PacpXGYLQ vgR6fF+OG3mt4jYAZGiESEB3mqlZLGN6vFHJ5yJZLJpB+bAXjxGF5cvaZ68tNTt5pRfo 8mMnPQIy0Dqtei/2DeV72q+PmDLnmTUtuUYlYtdB25xJ7LryAD8n08vvKC00fnOz31H5 rwIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0XR4ztzwAfmurkh92tXKLFkllUmpZEqqatJbPeBbcOM=; b=xE5kC3H8cyvrD12XevMBOh44bN1ag6WHoTOCCzzkiPCcAvIqKRCl3kVfIGxNUi179g s6+P4ClqTZfIseHP04KH3ek69RAA8ZOV/MOYJ5ssRdNEaS8MIQZs6y4E6OscW85FbLDs f/MVthvxp2KEuLHKuu72UwykpIo3EmJ1kn6ZWroEqGYwUeYTjKcCRlihEgUelGJTxLmH LrcEtJmq5yHU9zK5JxiZfuR07eayE55Z3FjSQfqKLrm8QwLT9NhRFRlsTXCM42UKpcsf z74wQAeCMlyr8EWGs2cUPTW95xtLqscrzsSd41RWSbhal1/YswJ+ayuEBypj6lbOqt8g 1J/Q== X-Gm-Message-State: AOAM532WTw71fPdkSSnmU9eqoZ4r/dySxZbCf6BdCQ5QuWGBDq2rLiG2 xcRWnO2A42Ue+TW8psQ7V0icmMwjYLonYtJe4GY= X-Google-Smtp-Source: ABdhPJz3B+e46dXhNUkl2WT1y31axELp3CqGKGpHA3AN7h3CTzl9SjS7mKx+1xlBV234PR20g/oMdw== X-Received: by 2002:a05:6214:e4a:b0:45a:dfa5:404a with SMTP id o10-20020a0562140e4a00b0045adfa5404amr3973844qvc.126.1652968163004; Thu, 19 May 2022 06:49:23 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:49:22 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 1/6] clk: mediatek: gate: Export mtk_clk_register_gates_with_dev Date: Thu, 19 May 2022 17:47:23 +0400 Message-Id: <20220519134728.456643-2-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_064925_590560_5C3AF940 X-CRM114-Status: GOOD ( 10.05 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana This allows it to be used in drivers built as modules. Signed-off-by: Yassine Oudjana Reviewed-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/clk-gate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-gate.c b/drivers/clk/mediatek/clk-gate.c index 421806236228..0c867136e49d 100644 --- a/drivers/clk/mediatek/clk-gate.c +++ b/drivers/clk/mediatek/clk-gate.c @@ -261,6 +261,7 @@ int mtk_clk_register_gates_with_dev(struct device_node *node, return PTR_ERR(hw); } +EXPORT_SYMBOL_GPL(mtk_clk_register_gates_with_dev); int mtk_clk_register_gates(struct device_node *node, const struct mtk_gate *clks, int num, From patchwork Thu May 19 13:47:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855221 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 312C5C433EF for ; Thu, 19 May 2022 14:54:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QF75U2u53d/le3JVxaL9iIzCqkFi2ggHYFCMOJuVHbs=; b=vPNvzZ6ImdWyNu bAMc4tC/IQZ83pQcTqxptGTLAX0i0zcxw8Kvgy4HTG3u55yJsXIIChm8HXL0LVNqQ9KixjCiqohNu shEt8BKSw/3aInbwBK3C0UxmkwOWSpkOjTaBRWL5JKnjgFJPUIqoVEmxrukRQyAxjNqzfFkjp4mY3 x41jquuWAzpUHz0bggwVlvga0jB+6Ndn2N1sEW+xM0QLUpjk74luTcUznAwsjo5EGYesNPyM3NhrG yYXppCJlWWcFeadm3SqpVkQNthFxxV5mHFGD/7ScLcNfvAbMx+IqZnzW4qFZUAXnPQUs7VqFJ23ih c6bk5VjaeQlLg3tVKfoA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhWy-007cQZ-5E; Thu, 19 May 2022 14:53:36 +0000 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgWz-0078TJ-Bz; Thu, 19 May 2022 13:49:36 +0000 Received: by mail-qk1-x734.google.com with SMTP id 135so2213154qkm.4; Thu, 19 May 2022 06:49:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wwBfJw5/BJNtRay4oCR2RSqvzBCGfp1734JkjgoOzz4=; b=fs/uXmWU4zDYd3zoUKnpovlsFnqcRqmWaXzoviY7wwM2pBe5X5WKqiF/JoNVYlXgqo rd1qd9Pca064uvXp6jBK8L6PO0tKPNYhFtemVkpvOinxgzdQf0reeVTqxBroIjdI8lmf ZzbDvr1GK9OPkNPRntI+WIQdO1NsTUvp0M820JOhdvjqfpLhrBarf+F33e5PcPb7lYDY aeIsjzgla1dh87peoGViai6UGzX3IduUt7quVBqvOuii60owMzU8tZxKvEiAoV9zIiC0 LdnZ1xo8sWe6VpuZbVWl7fRERJF+yx+H4Qo43BuOxWLGcsKb9O58JZGN9087LAfxSO/S asyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wwBfJw5/BJNtRay4oCR2RSqvzBCGfp1734JkjgoOzz4=; b=NSp0suTKBlkn7UHdCT9MmCsCqQWrq6GrAm+MbO5PXh9Gy4BqqQK/jlBXG1blY7z45E qPjAQJUkxaE+q2gLmcMJIqbjkUIiiYam6Ak0KMiikBdjgxPgwBC1NTy/xehJzPIqC/TN LZV8FcuMp/nnOWM+fk3MCOoV/+sZt8OlyS25V5emzg3ahx7K2/k0QEUD62Wp+EKaOyUI VbS8vQIvGPVMhWsp49HCrRFLDrVWfmggh/6Gnfq5WChJF36kek63yBeATTig8ens3pMM yA6SkEPNIMFoNOYse3Y7+Sgtb2dWGEQ2xEQLdsQu9TVLKr8C/O/FuHYzqFPXgXJYMLF/ CaQg== X-Gm-Message-State: AOAM5329gQ51An8qAQTZLaeEowmqraqXwDIbBVHh+NbqKt2THycCqX82 YbPD3vL7NIggCfpZSEJD+n4= X-Google-Smtp-Source: ABdhPJxXOzQEfbshSAFTXW/WKDfXcuWSh8vP79n1R4ztS9+cKHzly2gJ9NajNbLKHmij01cQOZXqDA== X-Received: by 2002:a05:620a:258b:b0:680:f66e:3381 with SMTP id x11-20020a05620a258b00b00680f66e3381mr2961492qko.291.1652968170786; Thu, 19 May 2022 06:49:30 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:49:30 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 2/6] clk: mediatek: Use mtk_clk_register_gates_with_dev in simple probe Date: Thu, 19 May 2022 17:47:24 +0400 Message-Id: <20220519134728.456643-3-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_064933_466586_7D5CCB4D X-CRM114-Status: GOOD ( 11.67 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana Register gates with dev in mtk_clk_simple_probe. Signed-off-by: Yassine Oudjana Reviewed-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/clk-mtk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index 41e60a7e8ff9..3a8875b6c37f 100644 --- a/drivers/clk/mediatek/clk-mtk.c +++ b/drivers/clk/mediatek/clk-mtk.c @@ -434,7 +434,8 @@ int mtk_clk_simple_probe(struct platform_device *pdev) if (!clk_data) return -ENOMEM; - r = mtk_clk_register_gates(node, mcd->clks, mcd->num_clks, clk_data); + r = mtk_clk_register_gates_with_dev(node, mcd->clks, mcd->num_clks, + clk_data, &pdev->dev); if (r) goto free_data; From patchwork Thu May 19 13:47:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855222 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BED43C433F5 for ; Thu, 19 May 2022 14:56:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=13/RtW0yzpNTKD7QL4C3v1rQl8TEqWTSLMtGZEhrG5g=; b=aEUObT6NqxZCQr yGi6FPGKF1bl7yJFhAZdYw/i24XCxYtuSVtMRioO13/crhtT2AGrMCwkYFuaeoOrNnYExgcZwIxSE 5sznIocVulFTCkg8m7dLOQeIeUH0y4o/MtR2XP9E7T3WgohS/wYFOsm+wVwUI8gCp0HLFhbhPOkNe o4iNHZmZd0XFOXv+vsJWVhi3cN7FU+ylMTbgaFFKMxD0JiKcY/3oL89VlS45aVExKBNOISn+KHH8r r4qjCRWN+i8L3AyOIWOr+gbu2xq3jBKgw0Djzm3w5v2vg5ggK07t2egZOFFzNWdl3eQ74ocd0n+FH lSZeHAKS1Nu6MHYcrqOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhXv-007cqA-5e; Thu, 19 May 2022 14:54:36 +0000 Received: from mail-qv1-xf32.google.com ([2607:f8b0:4864:20::f32]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgX8-0078X2-9u; Thu, 19 May 2022 13:49:44 +0000 Received: by mail-qv1-xf32.google.com with SMTP id l1so4632969qvh.1; Thu, 19 May 2022 06:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nnrO70dUCs/Oc7OMcEIdWH7iLvsjXCWCC72jYa5eYxw=; b=SMcf/ud4YzavnLXbEf3CLeilcehXyS/OikAfy4rBZBLa5uelJq/tEgXZHnI7OwxeVS I+VWoCGqXEF15nq6quDNPYqHR+Eqhu9/tKhMtrKtnMRi4/9H1/ReeETZPq1e+1hbCV6x hWB1OlPoBt5R/Dc6u6HEU7Wtq3cl0H/CLqxaNiwUG35t4z28zREp1Ld0rU4WxpirR3be /HVvawrmuxwImQomxCZ9a/gqzseTT/0h74/weXPJU3RlrAkVI6w22kNZ7PfIhn6MwznG WjIdIz3IQOuvnlp+r+n05kMXn7b2R/0OrCEK1CuZFJOqUSfJ33JmcdLU/dpYZVL5p+JK y6iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nnrO70dUCs/Oc7OMcEIdWH7iLvsjXCWCC72jYa5eYxw=; b=B+FaF5LkMAntvOt8Me7TYci0qZk9m9c7vlj484S8V9KdLo671h513VjwtsG/iRrfbN BlRPnZogRvWGc5A+Hdbsf7tbnr8T5sKK5iPvEgvpGvE0RXETnQkK9EC4To1vWfzY7qxv volk6MH7dbZftsDkhfy9EuGdpdjAY/Mr+Y7yOS32A1W+6vaQrqa18XZ0K/B4X+05AnKT JPPLfuM422ocO+BT0GUPGoOxBoOguDehnc8arBeCjzP5ydU6jeObKCE8sjpI1txJKR7a iTNI9ji7ptWGG3C/6in6bpmgUQHesUdCEWWXC3qLdKE3/xT4S53X1INLjkqXYAMScn37 ca9A== X-Gm-Message-State: AOAM532msG2bZrE3euIEhL4J73R1oE4UH/Hqhl7mfbcFOwh8CNzpQav+ 4GNOOfYOL1IKBcxkPlJUYFRrx2juCU4jlLmOCMs= X-Google-Smtp-Source: ABdhPJx0lMc/1idQ+eV6SdLAcY2CtRWRLioxh54EEVtEWCHH+rVBJcqEEESx886eNWkxmjkSKy4v0g== X-Received: by 2002:a05:6214:529e:b0:461:d40a:37d9 with SMTP id kj30-20020a056214529e00b00461d40a37d9mr4022050qvb.50.1652968178744; Thu, 19 May 2022 06:49:38 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:49:38 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 3/6] clk: mediatek: reset: Return reset data pointer on register Date: Thu, 19 May 2022 17:47:25 +0400 Message-Id: <20220519134728.456643-4-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_064942_475287_714DD91A X-CRM114-Status: GOOD ( 20.13 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana Return a struct mtk_clk_rst_data * when registering a reset controller in preparation for adding an unregister helper that will take it as an argument. Make the necessary changes in drivers that do not currently discard the return value of register functions. Signed-off-by: Yassine Oudjana --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/clk-mt8192.c | 7 +++++-- drivers/clk/mediatek/clk-mtk.c | 9 +++++--- drivers/clk/mediatek/reset.c | 34 ++++++++++++++++--------------- drivers/clk/mediatek/reset.h | 14 +++++++------ 4 files changed, 37 insertions(+), 27 deletions(-) diff --git a/drivers/clk/mediatek/clk-mt8192.c b/drivers/clk/mediatek/clk-mt8192.c index ebbd2798d9a3..a658a74644de 100644 --- a/drivers/clk/mediatek/clk-mt8192.c +++ b/drivers/clk/mediatek/clk-mt8192.c @@ -1255,6 +1255,7 @@ static int clk_mt8192_infra_probe(struct platform_device *pdev) { struct clk_hw_onecell_data *clk_data; struct device_node *node = pdev->dev.of_node; + struct mtk_clk_rst_data *rst_data; int r; clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK); @@ -1265,9 +1266,11 @@ static int clk_mt8192_infra_probe(struct platform_device *pdev) if (r) goto free_clk_data; - r = mtk_register_reset_controller_with_dev(&pdev->dev, &clk_rst_desc); - if (r) + rst_data = mtk_register_reset_controller_with_dev(&pdev->dev, &clk_rst_desc); + if (IS_ERR(rst_data)) { + r = PTR_ERR(rst_data); goto free_clk_data; + } r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data); if (r) diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index 3a8875b6c37f..1b5591733e2b 100644 --- a/drivers/clk/mediatek/clk-mtk.c +++ b/drivers/clk/mediatek/clk-mtk.c @@ -424,6 +424,7 @@ int mtk_clk_simple_probe(struct platform_device *pdev) const struct mtk_clk_desc *mcd; struct clk_hw_onecell_data *clk_data; struct device_node *node = pdev->dev.of_node; + struct mtk_clk_rst_data *rst_data; int r; mcd = of_device_get_match_data(&pdev->dev); @@ -446,10 +447,12 @@ int mtk_clk_simple_probe(struct platform_device *pdev) platform_set_drvdata(pdev, clk_data); if (mcd->rst_desc) { - r = mtk_register_reset_controller_with_dev(&pdev->dev, - mcd->rst_desc); - if (r) + rst_data = mtk_register_reset_controller_with_dev(&pdev->dev, + mcd->rst_desc); + if (IS_ERR(rst_data)) { + r = PTR_ERR(rst_data); goto unregister_clks; + } } return r; diff --git a/drivers/clk/mediatek/reset.c b/drivers/clk/mediatek/reset.c index 290ceda84ce4..09862baf1d57 100644 --- a/drivers/clk/mediatek/reset.c +++ b/drivers/clk/mediatek/reset.c @@ -110,8 +110,9 @@ static int reset_xlate(struct reset_controller_dev *rcdev, return data->desc->rst_idx_map[reset_spec->args[0]]; } -int mtk_register_reset_controller(struct device_node *np, - const struct mtk_clk_rst_desc *desc) +struct mtk_clk_rst_data +*mtk_register_reset_controller(struct device_node *np, + const struct mtk_clk_rst_desc *desc) { struct regmap *regmap; const struct reset_control_ops *rcops = NULL; @@ -120,7 +121,7 @@ int mtk_register_reset_controller(struct device_node *np, if (!desc) { pr_err("mtk clock reset desc is NULL\n"); - return -EINVAL; + return ERR_PTR(-EINVAL); } switch (desc->version) { @@ -132,18 +133,18 @@ int mtk_register_reset_controller(struct device_node *np, break; default: pr_err("Unknown reset version %d\n", desc->version); - return -EINVAL; + return ERR_PTR(-EINVAL); } regmap = device_node_to_regmap(np); if (IS_ERR(regmap)) { pr_err("Cannot find regmap for %pOF: %pe\n", np, regmap); - return -EINVAL; + return ERR_PTR(-EINVAL); } data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) - return -ENOMEM; + return ERR_PTR(-ENOMEM); data->desc = desc; data->regmap = regmap; @@ -163,14 +164,15 @@ int mtk_register_reset_controller(struct device_node *np, if (ret) { pr_err("could not register reset controller: %d\n", ret); kfree(data); - return ret; + return ERR_PTR(ret); } - return 0; + return data; } -int mtk_register_reset_controller_with_dev(struct device *dev, - const struct mtk_clk_rst_desc *desc) +struct mtk_clk_rst_data +*mtk_register_reset_controller_with_dev(struct device *dev, + const struct mtk_clk_rst_desc *desc) { struct device_node *np = dev->of_node; struct regmap *regmap; @@ -180,7 +182,7 @@ int mtk_register_reset_controller_with_dev(struct device *dev, if (!desc) { dev_err(dev, "mtk clock reset desc is NULL\n"); - return -EINVAL; + return ERR_PTR(-EINVAL); } switch (desc->version) { @@ -192,18 +194,18 @@ int mtk_register_reset_controller_with_dev(struct device *dev, break; default: dev_err(dev, "Unknown reset version %d\n", desc->version); - return -EINVAL; + return ERR_PTR(-EINVAL); } regmap = device_node_to_regmap(np); if (IS_ERR(regmap)) { dev_err(dev, "Cannot find regmap %pe\n", regmap); - return -EINVAL; + return ERR_PTR(-EINVAL); } data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) - return -ENOMEM; + return ERR_PTR(-ENOMEM); data->desc = desc; data->regmap = regmap; @@ -223,10 +225,10 @@ int mtk_register_reset_controller_with_dev(struct device *dev, ret = devm_reset_controller_register(dev, &data->rcdev); if (ret) { dev_err(dev, "could not register reset controller: %d\n", ret); - return ret; + return ERR_PTR(ret); } - return 0; + return data; } EXPORT_SYMBOL_GPL(mtk_register_reset_controller_with_dev); diff --git a/drivers/clk/mediatek/reset.h b/drivers/clk/mediatek/reset.h index 913fe676cba7..7418dd0d046f 100644 --- a/drivers/clk/mediatek/reset.h +++ b/drivers/clk/mediatek/reset.h @@ -64,19 +64,21 @@ struct mtk_clk_rst_data { * @np: Pointer to device node. * @desc: Constant pointer to description of clock reset. * - * Return: 0 on success and errorno otherwise. + * Return: Pointer to struct mtk_clk_rst_data on success and error pointer otherwise. */ -int mtk_register_reset_controller(struct device_node *np, - const struct mtk_clk_rst_desc *desc); +struct mtk_clk_rst_data +*mtk_register_reset_controller(struct device_node *np, + const struct mtk_clk_rst_desc *desc); /** * mtk_register_reset_controller - Register mediatek clock reset controller with device * @np: Pointer to device. * @desc: Constant pointer to description of clock reset. * - * Return: 0 on success and errorno otherwise. + * Return: Pointer to struct mtk_clk_rst_data on success and error pointer otherwise. */ -int mtk_register_reset_controller_with_dev(struct device *dev, - const struct mtk_clk_rst_desc *desc); +struct mtk_clk_rst_data +*mtk_register_reset_controller_with_dev(struct device *dev, + const struct mtk_clk_rst_desc *desc); #endif /* __DRV_CLK_MTK_RESET_H */ From patchwork Thu May 19 13:47:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855223 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 931EFC433F5 for ; Thu, 19 May 2022 14:56:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VvisxKR9GiRGNkukwOVLYW5cIY79ytaZNmne381Iqto=; b=QYqfdQ1k/SiCDC 6l8yuyS5ls3hb9Uv2mi2J3cz65N/cGJG5xZ4i2bYjpzABNu9uLOgcavwdTFujF5Y6zyj/CTKdbIsm qSWGnHtbuu5HOy0r6kxke7MbteNspbWx0NQnuOxq4N65paaUHq9SalJGTFgGNNC6yqS5zH/C9Q/jA zlPsMA831FYchOF4EQQas+UyWUKMbz/of3EwV859fjzFtsLngYUKwLEsiGKyiT3IGQYRHbt8jEH0J nAWDzKK46MtNTWxT0EkeUTwH3BDjrZLv/vy7DRS2u3EiqwJDBAglzPfazgDSBhvfHGI7afPguU+QO nyywLLK97IXE55GywoSg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhYj-007dBb-CY; Thu, 19 May 2022 14:55:25 +0000 Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgXE-0078b4-Ml; Thu, 19 May 2022 13:49:50 +0000 Received: by mail-qt1-x82e.google.com with SMTP id x7so1599646qta.6; Thu, 19 May 2022 06:49:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GPQSto0N+lNtNNPY9TQEtm6CehsZLQib25ZHkbMOJIA=; b=adkuYIA2mXgko5wthuK/XjjYRyngB+DETgkoIBQDD3HMWAj9jfOOH/RCTedqah5QZ7 bW8+W5vvpka6zCqHPWKMoAQz/YznRj0OaI2TS8ny4pIX+qNeHxSN+XX83GWkOaM2NGrB Gs66YMt0zhFgyL5O4wKbfjvEHY3qa9YUrhEgiGvrbUX7oieTqFuBOXXpdy6DToMR/rDz NsV17sJmk2u6ZU+FHtdO+hs69UKVVLIUS1eNemCHvpMPtUAV718m4dQBopAJ0HsXsQy4 taKSoA9cQlV8VdG8NAKdXkF+pJTgNU3zRBf8Xxm/1X7CfJk99n3ic3vuFl334U6RYV0v 5JOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GPQSto0N+lNtNNPY9TQEtm6CehsZLQib25ZHkbMOJIA=; b=Q+7VLSANiX/D63mhRQK4PNkigMPNhPiGh0g/rJOC9KDECm13C73C9GGjF1HjLFupCM b+48nBikkZ0piCZYmOCPGh2L4BF80An4pn6kApdo5BSSi+UYAD+A56bMtOPZYcBO822g V+0EcRPo6icdTZ3BypCX6kA0DStH6AqwUem8hV+BQNkSlVtSXH8pWJmi20KWIhAcuidR aVO5sKYoOGOqNai0PTMqS9O4xC+byWtaxKTopoXwvei3SHOjKi63QUQ33PINY70vFW25 IAT+H633CKcuD1Xkkx1TBCM7w4ZlcDuzNkDOsQH6rh6SlQQWsWNjuv/lduUFIfkkqqwX Skig== X-Gm-Message-State: AOAM531Qj5jufM924h27vy8yZbbOR+yZOq9+iUziDdVNJ/8J/loed4RC U7ibSBNaq235b6DW6vzh1DQ= X-Google-Smtp-Source: ABdhPJy2Mn4bJ/OGia0z2jO+j7RXe7CmgUJKP8L5VG0CbG61g4fYIWUGIMHMBGJozxeEppfkByZ6hQ== X-Received: by 2002:ac8:7d8e:0:b0:2f9:1176:c24b with SMTP id c14-20020ac87d8e000000b002f91176c24bmr2139993qtd.500.1652968186128; Thu, 19 May 2022 06:49:46 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:49:45 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 4/6] clk: mediatek: reset: Implement mtk_unregister_reset_controller() API Date: Thu, 19 May 2022 17:47:26 +0400 Message-Id: <20220519134728.456643-5-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_064948_815203_D3704295 X-CRM114-Status: GOOD ( 11.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana Add a function to unregister a reset controller previously registered with mtk_register_reset_controller() or mtk_register_reset_controller_with_dev(), and do the necessary cleanup. Signed-off-by: Yassine Oudjana --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/reset.c | 7 +++++++ drivers/clk/mediatek/reset.h | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/drivers/clk/mediatek/reset.c b/drivers/clk/mediatek/reset.c index 09862baf1d57..c1ab8c87ec27 100644 --- a/drivers/clk/mediatek/reset.c +++ b/drivers/clk/mediatek/reset.c @@ -232,4 +232,11 @@ struct mtk_clk_rst_data } EXPORT_SYMBOL_GPL(mtk_register_reset_controller_with_dev); +void mtk_unregister_reset_controller(struct mtk_clk_rst_data *data) +{ + reset_controller_unregister(&data->rcdev); + kfree(data); +} +EXPORT_SYMBOL_GPL(mtk_unregister_reset_controller); + MODULE_LICENSE("GPL"); diff --git a/drivers/clk/mediatek/reset.h b/drivers/clk/mediatek/reset.h index 7418dd0d046f..0feaea4115a8 100644 --- a/drivers/clk/mediatek/reset.h +++ b/drivers/clk/mediatek/reset.h @@ -81,4 +81,10 @@ struct mtk_clk_rst_data *mtk_register_reset_controller_with_dev(struct device *dev, const struct mtk_clk_rst_desc *desc); +/** + * mtk_unregister_reset_controller - Unregister mediatek clock reset controller + * @data: Pointer to previously registered struct mtk_clk_rst_data. + */ +void mtk_unregister_reset_controller(struct mtk_clk_rst_data *data); + #endif /* __DRV_CLK_MTK_RESET_H */ From patchwork Thu May 19 13:47:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855233 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 53EBCC433FE for ; Thu, 19 May 2022 14:58:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=077p0GlsCEAcIiKDtR/wFN5xI3J4layQWHkyEEKRfn4=; b=R5YFZ4+Unep45u gNtYUcDzQmivjXoA82Et7ZbzMRMUrGtNItJ5e6LVqZaVYnRTtxkVJdNxDjk7Redncwr5ayaoQDwM3 tbzHjooZaepNPscGzpJ7+pDZ1CVV2gr8bvneK3qPztAmIc2CIY/SmQTqN8chAMwc090RZaQZwI9z3 devlgvxA7Q0gDrPBaSm1p8EzFgSheSp7QdoprVJAqFcRE32iBd9EaNPr0ODhjJdeLldap30fvuxU9 KrPQsPm5Kwhm8JDQvIE9rTUFVAWkySTK2l1BwChkOXEqUxHngSxdDElUMGhhAuJSJ07jMYwInSbPy vsd89IrGfmwEjyU7qdrw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhZa-007day-5Q; Thu, 19 May 2022 14:56:18 +0000 Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgXO-0078fb-0x; Thu, 19 May 2022 13:50:00 +0000 Received: by mail-qk1-x730.google.com with SMTP id t2so519847qkb.12; Thu, 19 May 2022 06:49:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8V7106cncXJIAE2fTOvUkVnCzPXvRlGPeVGDdYP0Urg=; b=lVLRYfEIntAhPN8pTkRP3yHVS1Wvy4CnFf5JBKdwx3l8qzeMcj+d5GMEZoq/mfPY2K iT6NYq7AqdLfqqyRvsv/RhbAy82WjPR4hEOq1KRfE/tLA4dt9BttZDxHNScHAlLK5w85 NLKTVgcYe5y927C9PvzdIgHB8Wb/Z7iKBmOM9QJrL5tkxmmxu2Sb/5NZPeI3c8QwyI2Q JODxgHnr0MXK0CfPzsYpdimsRynXRA+Cb8W973e0NEiBKKKa1mxaXubbfhFLjEHNlIO1 UEC8MSiAAW0HPY4mgQyh/DASn4onAb28nSx0/igmIwqoY883rP7+y0m5VeBuIKMc1S14 JR4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8V7106cncXJIAE2fTOvUkVnCzPXvRlGPeVGDdYP0Urg=; b=RJ1/zzzV2H2vKw/GhXFJmc6m9qWEvOTchBealqX1VGuwJIsTYvoE5XJELE7H+8YdwP hdNMTagWztLSwXbiWNfQt8bFzcRHXRV08aXQSsKTfQ/uhO3jS2z1766saFjfnc3tiGEG kmOks8iRD/+znQomVfKbrHViFw0ZPtr7dH30LNTO3epMypct3tfn4XT+H6WNT09JAb7n jk4NvhV1lUhQO5gvEDMcEuMtVFAYE7QJOTGPfm6p5hBe3rX0F9TJVSNPeskMgAUmBtVy bTg7L9OYuRlmwx8spYsIjmTv3NwfKe2cYbjaxPtCT8m7T6+a0TClBUH+L3zKLlj0yj3g wROw== X-Gm-Message-State: AOAM530BLuIjj+N7zhWSlH9hy+vaAy5VjD40dRpd0do8vv4yBXEYJ99h HdPqHbmKbPlQBd5UPpfz0DA= X-Google-Smtp-Source: ABdhPJyER/K8IeEG7nTHno0GPuvLt9c2Lxx+kEjuTcz5s714bprXvG/OVwM8fVTvtf4ybt2dnibycA== X-Received: by 2002:a05:620a:258e:b0:680:f33c:dbcd with SMTP id x14-20020a05620a258e00b00680f33cdbcdmr3197345qko.542.1652968194312; Thu, 19 May 2022 06:49:54 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:49:54 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 5/6] clk: mediatek: Unregister reset controller on simple remove Date: Thu, 19 May 2022 17:47:27 +0400 Message-Id: <20220519134728.456643-6-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_064958_126788_274D8A4A X-CRM114-Status: GOOD ( 17.45 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana Store clk_data and rst_data pointers in a new wrapper struct, set it as platform driver data, then use it in mtk_clk_simple_remove to unregister the reset controller. Signed-off-by: Yassine Oudjana --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/clk-mtk.c | 47 +++++++++++++++++++++------------- drivers/clk/mediatek/clk-mtk.h | 5 ++++ 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index 1b5591733e2b..3382802663f4 100644 --- a/drivers/clk/mediatek/clk-mtk.c +++ b/drivers/clk/mediatek/clk-mtk.c @@ -422,35 +422,41 @@ void mtk_clk_unregister_dividers(const struct mtk_clk_divider *mcds, int num, int mtk_clk_simple_probe(struct platform_device *pdev) { const struct mtk_clk_desc *mcd; - struct clk_hw_onecell_data *clk_data; + struct mtk_simple_clk_controller *clk_ctrl; struct device_node *node = pdev->dev.of_node; - struct mtk_clk_rst_data *rst_data; int r; mcd = of_device_get_match_data(&pdev->dev); if (!mcd) return -EINVAL; - clk_data = mtk_alloc_clk_data(mcd->num_clks); - if (!clk_data) + clk_ctrl = kzalloc(sizeof(*clk_ctrl), GFP_KERNEL); + if (!clk_ctrl) return -ENOMEM; + clk_ctrl->clk_data = mtk_alloc_clk_data(mcd->num_clks); + if (!clk_ctrl->clk_data) { + r = -ENOMEM; + goto free_clk_ctrl; + } + r = mtk_clk_register_gates_with_dev(node, mcd->clks, mcd->num_clks, - clk_data, &pdev->dev); + clk_ctrl->clk_data, &pdev->dev); if (r) - goto free_data; + goto free_clk_data; - r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data); + r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_ctrl->clk_data); if (r) goto unregister_clks; - platform_set_drvdata(pdev, clk_data); + platform_set_drvdata(pdev, clk_ctrl); if (mcd->rst_desc) { - rst_data = mtk_register_reset_controller_with_dev(&pdev->dev, - mcd->rst_desc); - if (IS_ERR(rst_data)) { - r = PTR_ERR(rst_data); + clk_ctrl->rst_data = + mtk_register_reset_controller_with_dev(&pdev->dev, + mcd->rst_desc); + if (IS_ERR(clk_ctrl->rst_data)) { + r = PTR_ERR(clk_ctrl->rst_data); goto unregister_clks; } } @@ -458,9 +464,11 @@ int mtk_clk_simple_probe(struct platform_device *pdev) return r; unregister_clks: - mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data); -free_data: - mtk_free_clk_data(clk_data); + mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_ctrl->clk_data); +free_clk_data: + mtk_free_clk_data(clk_ctrl->clk_data); +free_clk_ctrl: + kfree(clk_ctrl); return r; } EXPORT_SYMBOL_GPL(mtk_clk_simple_probe); @@ -468,12 +476,15 @@ EXPORT_SYMBOL_GPL(mtk_clk_simple_probe); int mtk_clk_simple_remove(struct platform_device *pdev) { const struct mtk_clk_desc *mcd = of_device_get_match_data(&pdev->dev); - struct clk_hw_onecell_data *clk_data = platform_get_drvdata(pdev); + struct mtk_simple_clk_controller *clk_ctrl = platform_get_drvdata(pdev); struct device_node *node = pdev->dev.of_node; of_clk_del_provider(node); - mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data); - mtk_free_clk_data(clk_data); + if (clk_ctrl->rst_data) + mtk_unregister_reset_controller(clk_ctrl->rst_data); + mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_ctrl->clk_data); + mtk_free_clk_data(clk_ctrl->clk_data); + kfree(clk_ctrl); return 0; } diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h index 1b95c484d5aa..fa092bca97c8 100644 --- a/drivers/clk/mediatek/clk-mtk.h +++ b/drivers/clk/mediatek/clk-mtk.h @@ -189,6 +189,11 @@ void mtk_free_clk_data(struct clk_hw_onecell_data *clk_data); struct clk_hw *mtk_clk_register_ref2usb_tx(const char *name, const char *parent_name, void __iomem *reg); +struct mtk_simple_clk_controller { + struct clk_hw_onecell_data *clk_data; + struct mtk_clk_rst_data *rst_data; +}; + struct mtk_clk_desc { const struct mtk_gate *clks; size_t num_clks; From patchwork Thu May 19 13:47:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yassine Oudjana X-Patchwork-Id: 12855234 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CA92EC433EF for ; Thu, 19 May 2022 14:59:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hxiKt8oyql63s7tIsIhBA8TZYNUb1sffPNNXDzrjypM=; b=ePGYHjvCOLVM9K Zn/0cevVTj6wTgDMZjFajClO3eU01aRHxDdoyQPrelUMieXfyr56O6D25ZdbVR8XXQ8mBhAByHYK+ tCmLysvPfJmPqC6//ejUSHLDjm6DJN0twLR7gIKijhf2/PWjpSgeOw8sXgAzY7NlK7y70caf6MWMI AH9Ot70t1tb8bqHeFkD3CttBX9Sez9rCymgxvZKnIfgpI8K7u7ZJM/xq0Yt+9d0W/OGxxpBjvdfy1 xiH7IHuEFVwjgAp3S2ZjfQJPTo8NMSdRx70UR7jX6zZlbpaEILIHBjiRAL52/X++eFzQbs6ya8+Ff mP6tmF+zqvfj3cShJHFA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrhab-007e5O-8E; Thu, 19 May 2022 14:57:23 +0000 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrgXV-0078jn-AI; Thu, 19 May 2022 13:50:07 +0000 Received: by mail-qk1-x72f.google.com with SMTP id j6so4737417qkp.9; Thu, 19 May 2022 06:50:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qy/P0mZ00noEySeWC/Vtvod18+b1z4lRDAbgjrxSrfI=; b=a5OHjJtkOOGvIu6jZg5QA09ruZ+iHD24h5fVYngt/TjqtTTtS84PiyZlRz3xbOX+eD WYaR6T3dx8+SI+vY3m21XylsDLqE1I0gH8Pcmu8+tg/Y2HcWzlCGZIBFV+Pnv2R1G7Yg TzcmYw8ckLZEgzeEibAId7f8tdQP3TlAXUV1/8OU629u7HDhspdgFjBfpSxfgcXzgMl7 WnJ+CrTotBnBDsyW/Ne5SAeFkzmMaSfZiFcE8tigc83LAWw25lST6C/ZblpyJ8en1x10 Teb65uwJy1pCJlj+0W6WLZDLdTK6DKkwyg0eOWo6dxTwAIOf6NmdTaBw3QcZGJOsIcky O9WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qy/P0mZ00noEySeWC/Vtvod18+b1z4lRDAbgjrxSrfI=; b=5nb1agT6YDT1xKe1jJ35nD1HgmDQBp4tfCrdZccXprtoPjPnAZbZB/5/leJXyMcztL vVVsrLhOeX64/adD3gCM1udMrSTw+IIdEFcsP2vOvJYH/woscjRrz0E4mdnR7qAU8flE sOW7wzrxCzYYzbvG0IXClQ4agCQVaPbFbeTivA6t5V6/TXMAYdRJPQHJdJEV6SMp/G4F JnsnyYDDUdV2Y9glp0LeubdZegukS+QHDg5wUmxCwSpqYmOXeFP/7FO7tPzGjXu80LtV yv4eUZJddWcjwZMYTeCKul2YCVCxu7CX81xs9zpepW42+C2+rJ2DXavNRJUkIZ/fkguB mm6Q== X-Gm-Message-State: AOAM532utpksERsOKQmTXcYxOT9HUAI2eB7Kt/29DLjiJZNxOS0Sp9/q 88bq7QKeeEoVnGopHx7P7xg= X-Google-Smtp-Source: ABdhPJwtEj+JJRio5QYmwvU2cAJtTQu5mDAibXeOd2Nt2uRks/gnWgo29yFyhbRaE2j2y8DH8STX7w== X-Received: by 2002:a05:620a:29ce:b0:6a0:2338:2fbe with SMTP id s14-20020a05620a29ce00b006a023382fbemr3115971qkp.315.1652968201971; Thu, 19 May 2022 06:50:01 -0700 (PDT) Received: from localhost.localdomain ([217.138.206.82]) by smtp.gmail.com with ESMTPSA id i186-20020a3754c3000000b0069fc13ce23dsm1315024qkb.110.2022.05.19.06.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 06:50:01 -0700 (PDT) From: Yassine Oudjana X-Google-Original-From: Yassine Oudjana To: Michael Turquette , Stephen Boyd , Matthias Brugger , Philipp Zabel Cc: Yassine Oudjana , Chen-Yu Tsai , Miles Chen , AngeloGioacchino Del Regno , Chun-Jie Chen , =?utf-8?b?Sm9zw6kgRXhww7NzaXRv?= , Rex-BC Chen , Yassine Oudjana , linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Subject: [PATCH 6/6] clk: mediatek: Add support for other clock types in simple probe/remove Date: Thu, 19 May 2022 17:47:28 +0400 Message-Id: <20220519134728.456643-7-y.oudjana@protonmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220519134728.456643-1-y.oudjana@protonmail.com> References: <20220519134728.456643-1-y.oudjana@protonmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_065005_441253_A031300E X-CRM114-Status: GOOD ( 17.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Yassine Oudjana Simple probe/remove functions currently support gates only. Add PLLs, fixed clocks, fixed factors and muxes to support most clock controllers. struct mtk_clk_desc now takes descriptions for all of these clocks, and only the ones set will be registered. Most clock controllers will only use a subset of the types supported. Signed-off-by: Yassine Oudjana --- Dependencies: - clk: mediatek: Move to struct clk_hw provider APIs (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220510104804.544597-1-wenst@chromium.org/ - Cleanup MediaTek clk reset drivers and support MT8192/MT8195 (series) https://patchwork.kernel.org/project/linux-mediatek/cover/20220503093856.22250-1-rex-bc.chen@mediatek.com/ - Export required symbols to compile clk drivers as module (single patch) https://patchwork.kernel.org/project/linux-mediatek/patch/20220518111652.223727-7-angelogioacchino.delregno@collabora.com/ drivers/clk/mediatek/clk-mtk.c | 88 +++++++++++++++++++++++++++++----- drivers/clk/mediatek/clk-mtk.h | 17 ++++++- 2 files changed, 92 insertions(+), 13 deletions(-) diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index 3382802663f4..df1209d5b6fb 100644 --- a/drivers/clk/mediatek/clk-mtk.c +++ b/drivers/clk/mediatek/clk-mtk.c @@ -15,8 +15,10 @@ #include #include -#include "clk-mtk.h" #include "clk-gate.h" +#include "clk-mtk.h" +#include "clk-mux.h" +#include "clk-pll.h" struct clk_hw_onecell_data *mtk_alloc_clk_data(unsigned int clk_num) { @@ -434,20 +436,55 @@ int mtk_clk_simple_probe(struct platform_device *pdev) if (!clk_ctrl) return -ENOMEM; - clk_ctrl->clk_data = mtk_alloc_clk_data(mcd->num_clks); + clk_ctrl->clk_data = mtk_alloc_clk_data(mcd->num_plls + + mcd->num_fixed_clks + + mcd->num_factors + + mcd->num_muxes + + mcd->num_gates); if (!clk_ctrl->clk_data) { r = -ENOMEM; goto free_clk_ctrl; } - r = mtk_clk_register_gates_with_dev(node, mcd->clks, mcd->num_clks, - clk_ctrl->clk_data, &pdev->dev); - if (r) - goto free_clk_data; + if (mcd->plls) { + r = mtk_clk_register_plls(node, mcd->plls, mcd->num_plls, + clk_ctrl->clk_data); + if (r) + goto free_clk_data; + } + + if (mcd->fixed_clks) { + r = mtk_clk_register_fixed_clks(mcd->fixed_clks, mcd->num_fixed_clks, + clk_ctrl->clk_data); + if (r) + goto unregister_plls; + } + + if (mcd->factors) { + r = mtk_clk_register_factors(mcd->factors, mcd->num_factors, + clk_ctrl->clk_data); + if (r) + goto unregister_fixed_clks; + } + + if (mcd->muxes) { + spin_lock_init(&clk_ctrl->mux_lock); + r = mtk_clk_register_muxes(mcd->muxes, mcd->num_muxes, node, + &clk_ctrl->mux_lock, clk_ctrl->clk_data); + if (r) + goto unregister_factors; + } + + if (mcd->gates) { + r = mtk_clk_register_gates_with_dev(node, mcd->gates, mcd->num_gates, + clk_ctrl->clk_data, &pdev->dev); + if (r) + goto unregister_muxes; + } r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_ctrl->clk_data); if (r) - goto unregister_clks; + goto unregister_gates; platform_set_drvdata(pdev, clk_ctrl); @@ -457,14 +494,30 @@ int mtk_clk_simple_probe(struct platform_device *pdev) mcd->rst_desc); if (IS_ERR(clk_ctrl->rst_data)) { r = PTR_ERR(clk_ctrl->rst_data); - goto unregister_clks; + goto unregister_clk_provider; } } return r; -unregister_clks: - mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_ctrl->clk_data); +unregister_clk_provider: + of_clk_del_provider(node); +unregister_gates: + if (mcd->gates) + mtk_clk_unregister_gates(mcd->gates, mcd->num_gates, clk_ctrl->clk_data); +unregister_muxes: + if (mcd->muxes) + mtk_clk_unregister_muxes(mcd->muxes, mcd->num_muxes, clk_ctrl->clk_data); +unregister_factors: + if (mcd->factors) + mtk_clk_unregister_factors(mcd->factors, mcd->num_factors, clk_ctrl->clk_data); +unregister_fixed_clks: + if (mcd->fixed_clks) + mtk_clk_unregister_fixed_clks(mcd->fixed_clks, mcd->num_fixed_clks, + clk_ctrl->clk_data); +unregister_plls: + if (mcd->plls) + mtk_clk_unregister_plls(mcd->plls, mcd->num_plls, clk_ctrl->clk_data); free_clk_data: mtk_free_clk_data(clk_ctrl->clk_data); free_clk_ctrl: @@ -480,9 +533,22 @@ int mtk_clk_simple_remove(struct platform_device *pdev) struct device_node *node = pdev->dev.of_node; of_clk_del_provider(node); + if (clk_ctrl->rst_data) mtk_unregister_reset_controller(clk_ctrl->rst_data); - mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_ctrl->clk_data); + + if (mcd->gates) + mtk_clk_unregister_gates(mcd->gates, mcd->num_gates, clk_ctrl->clk_data); + if (mcd->muxes) + mtk_clk_unregister_muxes(mcd->muxes, mcd->num_muxes, clk_ctrl->clk_data); + if (mcd->factors) + mtk_clk_unregister_factors(mcd->factors, mcd->num_factors, clk_ctrl->clk_data); + if (mcd->fixed_clks) + mtk_clk_unregister_fixed_clks(mcd->fixed_clks, mcd->num_fixed_clks, + clk_ctrl->clk_data); + if (mcd->plls) + mtk_clk_unregister_plls(mcd->plls, mcd->num_plls, clk_ctrl->clk_data); + mtk_free_clk_data(clk_ctrl->clk_data); kfree(clk_ctrl); diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h index fa092bca97c8..23bce98bca20 100644 --- a/drivers/clk/mediatek/clk-mtk.h +++ b/drivers/clk/mediatek/clk-mtk.h @@ -13,6 +13,9 @@ #include #include +#include "clk-gate.h" +#include "clk-mux.h" +#include "clk-pll.h" #include "reset.h" #define MAX_MUX_GATE_BIT 31 @@ -191,12 +194,22 @@ struct clk_hw *mtk_clk_register_ref2usb_tx(const char *name, struct mtk_simple_clk_controller { struct clk_hw_onecell_data *clk_data; + spinlock_t mux_lock; struct mtk_clk_rst_data *rst_data; }; struct mtk_clk_desc { - const struct mtk_gate *clks; - size_t num_clks; + const struct mtk_pll_data *plls; + size_t num_plls; + const struct mtk_fixed_clk *fixed_clks; + size_t num_fixed_clks; + const struct mtk_fixed_factor *factors; + size_t num_factors; + const struct mtk_mux *muxes; + size_t num_muxes; + const struct mtk_gate *gates; + size_t num_gates; + const struct mtk_clk_rst_desc *rst_desc; };