From patchwork Fri Jul 12 17:09:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13732040 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 67B27C3DA45 for ; Fri, 12 Jul 2024 17:10:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=7nY0eQU/tg2nCxr+WiXke0QlA4moV9D3eyAAMfVXyTw=; b=4z8pG6WDJ4r5UxriBn+vgDDOOT RSr7CuE1ImuEeRb7xnc3IRv4iIy98IQEant00eTKzFG2ttkeTiFnVcWTWtm7gwtTulQ0IID5dqHc3 Ux2ScCJp3xfWOx++4KwS6kCgx707ChwrTVN0P15xwrin7vbUBfKcAk5wPkA8VtQgzgGi9eEJkWasn n/cLPAz+DOmLMPZQWoIsJvB+VIRa23rASNYAPM/kGSClQNQBlVFCPJVh1ZIQTDIUl6NYF0CJv96tI FuX5zitQYoPCaV+f10RW6M8WzeiaBE4D3cWwhhGBocm6+cRGIxAGnqztXQRAISKn/vhlxMBKZ9zHt C++F5ntw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSJmo-00000000nnE-3exk; Fri, 12 Jul 2024 17:10:22 +0000 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSJmF-00000000nbY-0kq5 for linux-arm-kernel@lists.infradead.org; Fri, 12 Jul 2024 17:09:49 +0000 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-58b3fee65d8so2865487a12.3 for ; Fri, 12 Jul 2024 10:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1720804185; x=1721408985; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7nY0eQU/tg2nCxr+WiXke0QlA4moV9D3eyAAMfVXyTw=; b=mrgjwe9Y947bLQyHLqDCIKP59mmNZCw25r26sfMLWRDfjjBg9rG1PVaNv0icvaFMw7 AzQF3s/wR6NhUl8MOnGRfTm3J1x46Yks2eSY84fSEep05BPayRiEn7Xi1KqIiiXdz0Pv h/zWghGqi+L0u6s8xasJPNIKaeLgmDwG8pJkLx30UBc3zqoXeaTbzkeD/wvaj0nWjZkK +9WlWPnZx2SLablrtSC2Fzw+jrIS0nloBpr3mL0cEDsrOmE5I4ZC+wistrb2LGSznhU6 W8avExZL7gbvZG5bTjbEVu3mLD8LzLSPqkSPNJO8bg/zT/nFTt60BZpsYiomP4xfHo2j N0mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720804185; x=1721408985; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7nY0eQU/tg2nCxr+WiXke0QlA4moV9D3eyAAMfVXyTw=; b=jflblLGt1UinN09ylwvZrw1eix41CoEFwaMaReecVGbSRvjxZbGLf/pSdalZbwi6Lh aXYlqr6mnqwLZDRtWmWHHyo7AQxutbRZYWLpVdyLLGvnStOjgi4yMIkcDRt71f+9CSa6 K6wlsO5c8YassHQKB7FVtnRNAwwpb7p6ghxlvw/Ui6djQKpZt1D8GhpwR6m0YHoV/Std 5Kv7QpWQm4KjjNx0H8tESf4a3SNMtQYDBk9TupGGlOrraKm7bdBBdJjGCWppkKZDccaK DUr+I+EIEhsYfBcWZqNs6cnd6MbLvT6MZjNzXUfBnxnsKeMecy5faZje/vGVoZIKPY+1 dGvQ== X-Forwarded-Encrypted: i=1; AJvYcCX+ieq3+dODJtA/YLWeuILFoyQkc03K7d0Sa6XIEltwl82pNLFSSgMuaqrX5UlgQqVLhR9hPYQ4+y4xMVL6YjzMXKeHLHaHnXIHeK5xiSBsYtIALu0= X-Gm-Message-State: AOJu0YxXreCQf/BLh1S/hZL61ZBa6th2/dOtxO/Ov+4iF5ehg8jcfDqg qtbKx9u2Wu/fuF3GpHrBbUk9yOAZhsG7WdaxqPY8/SfQP+stsmC8SfnZ2t+KJyA= X-Google-Smtp-Source: AGHT+IGhlF+D6i2f93oWiQUD7N6Ca4gkcUIWssLva7MfhIN2bbrAB4lN1vZ78G8Sb5kAz2YFpuYDTQ== X-Received: by 2002:a17:906:528c:b0:a6f:d990:338c with SMTP id a640c23a62f3a-a780b6b18c1mr835509866b.20.1720804185058; Fri, 12 Jul 2024 10:09:45 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a780a871f0esm363750466b.194.2024.07.12.10.09.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jul 2024 10:09:44 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 12 Jul 2024 18:09:43 +0100 Subject: [PATCH v4 1/2] clk: samsung: gs101: allow earlycon to work unconditionally MIME-Version: 1.0 Message-Id: <20240712-gs101-non-essential-clocks-2-v4-1-310aee0de46e@linaro.org> References: <20240712-gs101-non-essential-clocks-2-v4-0-310aee0de46e@linaro.org> In-Reply-To: <20240712-gs101-non-essential-clocks-2-v4-0-310aee0de46e@linaro.org> To: Peter Griffin , Krzysztof Kozlowski , Sylwester Nawrocki , Chanwoo Choi , Alim Akhtar , Michael Turquette , Stephen Boyd , Tudor Ambarus , Sam Protsenko Cc: Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andr?= =?utf-8?q?=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240712_100947_258346_69182426 X-CRM114-Status: GOOD ( 23.73 ) 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 earlycon depends on the bootloader setup UART clocks being retained. This patch adds some logic to detect these clocks if earlycon is enabled, to bump their usage count during init and release them again at the end of init. This helps with cases where the UART clocks (or their parents) get disabled during loading of other drivers (e.g. i2c) causing earlycon to stop to work sometime into the boot, halting the whole system. The general idea is based on similar code in the i.MX clock driver, but since our clocks are coming from various different clock units, we have to run this code multiple times until all required UART clocks have probed. Signed-off-by: André Draszik --- drivers/clk/samsung/clk-gs101.c | 100 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/drivers/clk/samsung/clk-gs101.c b/drivers/clk/samsung/clk-gs101.c index 85098c61c15e..429690757923 100644 --- a/drivers/clk/samsung/clk-gs101.c +++ b/drivers/clk/samsung/clk-gs101.c @@ -8,8 +8,13 @@ #include #include +#include +#include +#include #include +#include #include +#include #include @@ -4381,6 +4386,99 @@ static const struct samsung_cmu_info peric1_cmu_info __initconst = { /* ---- platform_driver ----------------------------------------------------- */ +static struct { + struct mutex lock; + + bool bump_refs; + + struct clk **clks; + size_t n_clks; +} gs101_stdout_clks __initdata = { + .lock = __MUTEX_INITIALIZER(gs101_stdout_clks.lock), +}; + +static int __init gs101_keep_uart_clocks_param(char *str) +{ + gs101_stdout_clks.bump_refs = true; + return 0; +} +early_param("earlycon", gs101_keep_uart_clocks_param); + +static void __init gs101_bump_uart_clock_references(void) +{ + size_t n_clks; + + /* We only support device trees - do nothing if not available. */ + if (!IS_ENABLED(CONFIG_OF)) + return; + + n_clks = of_clk_get_parent_count(of_stdout); + if (!n_clks || !of_stdout) + return; + + mutex_lock(&gs101_stdout_clks.lock); + + /* + * We only need to run this code if required to do so, and if we have + * not succeeded previously, which will be the case if not all required + * clocks were ready yet during previous attempts. + */ + if (!gs101_stdout_clks.bump_refs) + goto out_unlock; + + if (!gs101_stdout_clks.clks) { + gs101_stdout_clks.n_clks = n_clks; + + gs101_stdout_clks.clks = kcalloc(gs101_stdout_clks.n_clks, + sizeof(*gs101_stdout_clks.clks), + GFP_KERNEL); + if (!gs101_stdout_clks.clks) + goto out_unlock; + } + + /* assume that this time we'll be able to grab all required clocks */ + gs101_stdout_clks.bump_refs = false; + for (size_t i = 0; i < n_clks; ++i) { + struct clk *clk; + + /* we might have grabbed this clock in a previous attempt */ + if (gs101_stdout_clks.clks[i]) + continue; + + clk = of_clk_get(of_stdout, i); + if (IS_ERR(clk)) { + /* + * clock might not have probed yet so we'll have to try + * again next time + */ + gs101_stdout_clks.bump_refs = true; + continue; + } + + if (clk_prepare_enable(clk)) { + clk_put(clk); + continue; + } + gs101_stdout_clks.clks[i] = clk; + } + +out_unlock: + mutex_unlock(&gs101_stdout_clks.lock); +} + +static int __init gs101_drop_extra_uart_clock_references(void) +{ + for (size_t i = 0; i < gs101_stdout_clks.n_clks; ++i) { + clk_disable_unprepare(gs101_stdout_clks.clks[i]); + clk_put(gs101_stdout_clks.clks[i]); + } + + kfree(gs101_stdout_clks.clks); + + return 0; +} +late_initcall_sync(gs101_drop_extra_uart_clock_references); + static int __init gs101_cmu_probe(struct platform_device *pdev) { const struct samsung_cmu_info *info; @@ -4389,6 +4487,8 @@ static int __init gs101_cmu_probe(struct platform_device *pdev) info = of_device_get_match_data(dev); exynos_arm64_register_cmu(dev, dev->of_node, info); + gs101_bump_uart_clock_references(); + return 0; } From patchwork Fri Jul 12 17:09:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13732041 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 E5489C3DA45 for ; Fri, 12 Jul 2024 17:10:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=oV5839hmVClg70c+3TJ1+3UQGJnal/6xSUyTsvV9VcQ=; b=RbhbldLZ0lEsfRv13EKbOzVaWi oVV+T0U2gldL+QX3DaXfqOwpSy5xPB7YG6ypmOSk7iLpJ9U/bnegpyxRbU9WtK99vkxCLtAiVnfxK JHIcNrfwDl1ZB69fUTC8drBqlwn8y/ZiP3BRhdlgAA+LBwrekhhEyaq1IdfziS1MqAcWn2EnU3FRP QAiUrsizkLe3PhrmvjH9gSE8YR53NwZo/WRQngwb17fLWYIIvuhWvILeTXAAAnHvFm+JP11dc091k RfiZgT9d4dJLvU61b/L+99EEn20Ibuz/JUGmuRvFaQyptT+D8yVekYjUykkbYgfmHyMLRSJz/ptl6 csR00TAA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSJn4-00000000ntN-48pq; Fri, 12 Jul 2024 17:10:38 +0000 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSJmF-00000000nba-1ap8 for linux-arm-kernel@lists.infradead.org; Fri, 12 Jul 2024 17:09:49 +0000 Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-58b0dddab63so3603745a12.3 for ; Fri, 12 Jul 2024 10:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1720804185; x=1721408985; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=oV5839hmVClg70c+3TJ1+3UQGJnal/6xSUyTsvV9VcQ=; b=xIbe9By+a3BWcyPHPu5EyEYktdYRoahsXnZKgLKzetDY9/bTVnTpQhYIcqWxmAnBy8 +xsjXU8V+rOljco0906lae1S9Epslm2htlM+BhdtiN0RLel0R85mclvAgVrzAthQKYkQ n3/+jJ05LeKVc+SMPwdIXix/H0u+RTfOyMARc6ObOxIaI7keEW+OupIpE+5fjPZARmKw 4fHu1ZvTp7Omxes+Ysb0kKyrewlSOUqmqwUzX578P833roxI4w+d1MGvwuRH4ucnDC/s jkeNAGS3cBdZZFX5aub4v/+QgFIf6JoUw6bGPgBoxzoFnLnePKU97ELs3bs7XIwucbOF wN8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720804185; x=1721408985; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oV5839hmVClg70c+3TJ1+3UQGJnal/6xSUyTsvV9VcQ=; b=H/OEbM5hwY0hzgSGtFm+KB0IbsZbCAZl5eqp3i7vdIwAmi6GwfdReMm0eMNQ22INr1 MXuC1keM9MuxCg8kMnpXoc0Djn+yXecgPbRCmP3WkYl4sTmeDKy4nBBmVJHwdECWUmZF wT7B0YEvimkU4j22ozQ5LZvkx0FwAR5D5EyirX3esY07n5io+9P4N6uLZR0S4iY2bbnp vLXb71RiEbb+zqbE+bV+t3Q5bUW3p8xCxjcYq9wv7xPOHHF/02m6mTkmFtzia9ZGvJmi Q1itb7KE/garXo+XX/tQPZ8UTQTD+Jpg000/d/CtJQy7u1dL/HQ5zisCz6OZ9SOwpq8Z YmIw== X-Forwarded-Encrypted: i=1; AJvYcCVejVtbvp0D8+2+nF/GEc/AKU/2bRjgVHpTIOfV+atUvIrvJRUzGE4ExoPjUFXmGkCQXmQRp+erZNvjHdRnzQOlyRzeU/QCRW+zkhjcA7RnxOfzuFU= X-Gm-Message-State: AOJu0YzVTArXDX7AY6zLNsx7AlPPJ9j03MjRDo9v7ImSsl4WpCbCKSPw Epz1GJumAvnvjE6HBtQz+2aj7VFpAjGTBJbveBOzJ/UCUUpmzsflfsAEH5bIVe2n4GjgnhnSZX/ 9CBU= X-Google-Smtp-Source: AGHT+IE0X62zA1SBHKfJXtmQHhmzvuqxC+xWaR1cQ47oVYBeYJTjmS0OEYuGETVV0+yrZAnB2M1JfQ== X-Received: by 2002:a17:907:ea1:b0:a75:110d:fa53 with SMTP id a640c23a62f3a-a780b885565mr1041251666b.49.1720804185474; Fri, 12 Jul 2024 10:09:45 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a780a871f0esm363750466b.194.2024.07.12.10.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jul 2024 10:09:45 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 12 Jul 2024 18:09:44 +0100 Subject: [PATCH v4 2/2] clk: samsung: gs101: don't mark non-essential (UART) clocks critical MIME-Version: 1.0 Message-Id: <20240712-gs101-non-essential-clocks-2-v4-2-310aee0de46e@linaro.org> References: <20240712-gs101-non-essential-clocks-2-v4-0-310aee0de46e@linaro.org> In-Reply-To: <20240712-gs101-non-essential-clocks-2-v4-0-310aee0de46e@linaro.org> To: Peter Griffin , Krzysztof Kozlowski , Sylwester Nawrocki , Chanwoo Choi , Alim Akhtar , Michael Turquette , Stephen Boyd , Tudor Ambarus , Sam Protsenko Cc: Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andr?= =?utf-8?q?=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240712_100947_444708_BB2B7327 X-CRM114-Status: GOOD ( 14.94 ) 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 The peric0_top1_ipclk_0 and peric0_top1_pclk_0 are the clocks going to peric0/uart_usi, with pclk being the bus clock. Without pclk running, any bus access will hang. Unfortunately, in commit d97b6c902a40 ("arm64: dts: exynos: gs101: update USI UART to use peric0 clocks") the gs101 DT ended up specifying an incorrect pclk in the respective node and instead the two clocks here were marked as critical. Since then, the DT has been updated to use the correct clock in commit 21e4e8807bfc ("arm64: dts: exynos: gs101: use correct clocks for usi_uart") and the driver here should be corrected and the work-around removed. Link: https://lore.kernel.org/all/d45de3b2bb6b48653842cf1f74e58889ed6783ae.camel@linaro.org/ [1] Fixes: 893f133a040b ("clk: samsung: gs101: add support for cmu_peric0") Signed-off-by: André Draszik Reviewed-by: Tudor Ambarus Reviewed-by: Sam Protsenko --- v4: - the earlycon issue described in the commit message in previous versions of this patch is gone with "clk: samsung: gs101: allow earlycon to work unconditionally", so no need to mention anything v3: - add git commit SHA1s (Krzysztof) - add link to wordier description of earlycon issue v2: - commit message typo fixed - collect Reviewed-by: tags --- drivers/clk/samsung/clk-gs101.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/clk/samsung/clk-gs101.c b/drivers/clk/samsung/clk-gs101.c index 429690757923..a6fc4d7e47fd 100644 --- a/drivers/clk/samsung/clk-gs101.c +++ b/drivers/clk/samsung/clk-gs101.c @@ -3951,20 +3951,18 @@ static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { "gout_peric0_peric0_top0_pclk_9", "mout_peric0_bus_user", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9, 21, 0, 0), - /* Disabling this clock makes the system hang. Mark the clock as critical. */ GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0, "gout_peric0_peric0_top1_ipclk_0", "dout_peric0_usi0_uart", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0, - 21, CLK_IS_CRITICAL, 0), + 21, 0, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2, "gout_peric0_peric0_top1_ipclk_2", "dout_peric0_usi14_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_2, 21, CLK_SET_RATE_PARENT, 0), - /* Disabling this clock makes the system hang. Mark the clock as critical. */ GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0, "gout_peric0_peric0_top1_pclk_0", "mout_peric0_bus_user", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0, - 21, CLK_IS_CRITICAL, 0), + 21, 0, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2, "gout_peric0_peric0_top1_pclk_2", "mout_peric0_bus_user", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_2,