From patchwork Sat May 2 10:06:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pragnesh Patel X-Patchwork-Id: 1281573 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=sifive.com header.i=@sifive.com header.a=rsa-sha256 header.s=selector1 header.b=e9+LH+cN; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49DlHr5hzSz9sRf for ; Sat, 2 May 2020 20:10:48 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C521A81DBE; Sat, 2 May 2020 12:08:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=sifive.com header.i=@sifive.com header.b="e9+LH+cN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id ACA2E81DBF; Sat, 2 May 2020 12:08:48 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eae::62a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 06DFA81DD0 for ; Sat, 2 May 2020 12:08:46 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=pragnesh.patel@sifive.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ct1epgD4zuhkgjgZFw+/c4r7108jMdysppc3egkztk8WcEP/tMJ3BnVC/mwgcXz1dMvzJ2E7GKdytnpwzuOyMlgZ9wEZXob4hr6LThJsgiF1kRAPFsyeoCbB28xjpnZv7U7lkOQyhKi+oLEKK0fYWh4KNjFy2jGG+ov8AeQYon18tdRH/FpjfD7+sB/lkysng125UQqg2VB5eoc+k6qpPnc1/YZG/po36GJCjLzTghpKVAqPQiTc7bzeoQI15RlH+hwaInZV2Pa1Ytey9FoY+NNuoFQGrhviZiMgRj2QiwaOpcZFtHT0SQ60NZUcFpgWPp//FmrPLxBfZ56xzYmSGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZOPp00avhJxz58WmRcw6daGQilnCUO7dh2v+moq78jk=; b=d3/GF9wBPqdEsX8G2+AR6DVR3UqUOS7hY91btILRTYd/YVNHX2Vg1V5Ds3CMb5/dKXyw/JyxStda5WcWMgiikiyq21BKxaVVIMFuVziFC5EMyTko8exJ4Fr9HZZBuQm49ag7YZYIuZQzesj2+QoG9unSeHIyAhQArAHUe6EYMRzDCEQleNar9yVq/6wTRRF4iLMVcBS/WV+eUkBzwsJYFXd8YDR/TjG7G45hUjA1LZA8NuVKvx0dnJMC1UHi3Qu8rwVve2JXXI1azw8sUoK3u7Cz0jFtIQUKPcDsBNpa6u1dPzWo7vT8K9S8XqdKabIk3CRLT9fqptvqGtY5r/133g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sifive.com; dmarc=pass action=none header.from=sifive.com; dkim=pass header.d=sifive.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZOPp00avhJxz58WmRcw6daGQilnCUO7dh2v+moq78jk=; b=e9+LH+cN1PlLhQknxYVUEutVtvOg5YGTBONkHOD2VUfJM7z+EG0ZWIPm1AlPMMLcFyRUQYr+1oLxsenpUgWgxAJXwof1Tq9xfLnMq5csPgId2erlO3v2NgHHmrMCi/XQxHIDjPiyhB/T8ePV3gEt39vyCl9tqEwc/2d/ERN1Uz8= Authentication-Results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=sifive.com; Received: from MWHPR13MB0944.namprd13.prod.outlook.com (2603:10b6:300:15::19) by MWHPR13MB1565.namprd13.prod.outlook.com (2603:10b6:300:125::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.14; Sat, 2 May 2020 10:08:44 +0000 Received: from MWHPR13MB0944.namprd13.prod.outlook.com ([fe80::7d7c:7f0b:7a05:fa2c]) by MWHPR13MB0944.namprd13.prod.outlook.com ([fe80::7d7c:7f0b:7a05:fa2c%9]) with mapi id 15.20.2979.023; Sat, 2 May 2020 10:08:44 +0000 From: Pragnesh Patel To: u-boot@lists.denx.de Cc: atish.patra@wdc.com, palmerdabbelt@google.com, bmeng.cn@gmail.com, paul.walmsley@sifive.com, jagan@amarulasolutions.com, troy.benjegerdes@sifive.com, anup.patel@wdc.com, sagar.kadam@sifive.com, rick@andestech.com, Pragnesh Patel , Lukas Auer , Sean Anderson Subject: [PATCH v7 16/22] riscv: Enable cpu clock if it is present Date: Sat, 2 May 2020 15:36:20 +0530 Message-Id: <20200502100628.24809-17-pragnesh.patel@sifive.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200502100628.24809-1-pragnesh.patel@sifive.com> References: <20200502100628.24809-1-pragnesh.patel@sifive.com> X-ClientProxiedBy: LNXP265CA0092.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::32) To MWHPR13MB0944.namprd13.prod.outlook.com (2603:10b6:300:15::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sachinj2-OptiPlex-7010.open-silicon.com (114.143.65.226) by LNXP265CA0092.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20 via Frontend Transport; Sat, 2 May 2020 10:08:39 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [114.143.65.226] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02334bed-5ecd-4f0b-7583-08d7ee80cbcb X-MS-TrafficTypeDiagnostic: MWHPR13MB1565: X-LD-Processed: 22f88e9d-ae0d-4ed9-b984-cdc9be1529f1,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:439; X-Forefront-PRVS: 039178EF4A X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3SGIw0kggKw2gtI6C6rVQ7V28Q//hvhZ8oRwYvxD9Why3a9hL4VO9hLUAmwkQD9AxFM/5qWCuCJnsz1Q4GEeMZ6sv8snethQwOO6135USgLBxKWGh/ggUAGo2oTdvzNxU+JdgPpxwR+QlUBVB3/9g2CfNN14yGNOJ+f+NRwIuFT+3HldQMtyKMX1jC+ENhZAgq80WDjBJV4yJZ/1ibPuL6u4rniFhxl0+uaw+E2RPKA31RROwUhnUxoexK1X8DZ7c8gyzeM6lOa5Y8f01Q4QtCY6qFvKkWn8A0OZ40nnmjdIAI0c0CxuDME5XsDR3r3g77/C/y8HVwE3vSWL0Rq+eBpveRY/Xf40NBmYVDStjjPG5F1lK/+Hni2JdcN5mlXiiVqUV5vWgw7aNXkl616TnwRISB4JoVOx9+YM4JdJ1IcqN/eDUjwcy7V79A9dkTrw X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR13MB0944.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(366004)(376002)(346002)(136003)(39850400004)(396003)(6916009)(316002)(54906003)(8936002)(66556008)(2906002)(66476007)(66946007)(36756003)(8676002)(478600001)(86362001)(186003)(1076003)(5660300002)(44832011)(26005)(956004)(2616005)(6486002)(16526019)(6666004)(52116002)(1006002)(6512007)(4326008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: zVjVpC645LBZN8iWxw5LPbh9HVqfXlbOCOGUqi5yNuwEv6PsOfJXihgC/sFHbEVnT247AzSbBLB8Ovm0KHZsqj3ngqMGxW7In2lTBmZM3ehHTYb5oXH6IjwqwUHWr3cBnWWQ/52ApgfQxNZ3pUtccSyZ51h5lXFBZHXtubBdegLwJ9HOSjdiXxAOyMVDp7ixnN9xT2P37y6zsw/xnBcFZLwIGj/cgmTKIaoPCrsHaE/V5ySvti7qNxT5qVFmaVKwLDIisHOkthTXryds/2zIW22b5S417+8uXTjvZ64wK9A6qg68YgUmlB2B3l14E0VCRiblzWqyfsD0z3cX+xQAmNTe5sZt/dHB2DY94OG99W8eSSk8Axd1ai6+zykF24VFZsWI7SyrMzz70HGKR5YVguWqqQshedFn1mfxUz0aglOJrz98Rq5OHYOB/iNJ1ATL6t1I0776hW7HgUej9G5m+1VgCYoTWx2jKRrdSIybu/VQ2q8WUQ2z18WTYcoHxHT+PN9IxewiHbP33a1+YplBWiHd8uqdNBETiOwbMz7AyyToqpRa4q+3kXBnHX3JVYBANfCO3Ec54QcNkJvCReqDGcqwol+ptZV5rKU/eO+Mz7ogb4Jo9sT/OH6QHR7y0stb8k4qg1ZHzvGO6kOG+24nQU9p4mS8CaycIxeGBdNnJzrJ3tvvRLDVsIirEiF9/gwDMjA2TZDcDwYNzSucrnIfSPufbktPxlJfVbhbpwnRFkNxteY46O7VlWDk39CdKapaajQ+sZr13j1pk8RiXQYVpLwUN/titHUxkNy6OEaIHTI= X-OriginatorOrg: sifive.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02334bed-5ecd-4f0b-7583-08d7ee80cbcb X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2020 10:08:44.1196 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 22f88e9d-ae0d-4ed9-b984-cdc9be1529f1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MaGzBy5iKYXuDytF19qpNzeuJdZRIRJ9eQBD54hcRl+V3R4zgm4JEqKhzBdeKCMZNUjdSLy61QWboVFGDXTb5HdpGmKrIM+OdynZhh+Y6vw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR13MB1565 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean The cpu clock is probably already enabled if we are executing code (though we could be executing from a different core). This patch prevents the cpu clock or its parents from being disabled. Signed-off-by: Sean Anderson Signed-off-by: Pragnesh Patel Reviewed-by: Bin Meng Tested-by: Bin Meng Signed-off-by: Sean Anderson Reviewed-by: Bin Meng Signed-off-by: Pragnesh Patel --- drivers/cpu/riscv_cpu.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/cpu/riscv_cpu.c b/drivers/cpu/riscv_cpu.c index 28ad0aa30f..8ebe0341fd 100644 --- a/drivers/cpu/riscv_cpu.c +++ b/drivers/cpu/riscv_cpu.c @@ -9,6 +9,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -100,6 +101,37 @@ static int riscv_cpu_bind(struct udevice *dev) return 0; } +static int riscv_cpu_probe(struct udevice *dev) +{ + int ret = 0; + u32 clock = 0; + struct clk clk; + + /* Get a clock if it exists */ + ret = clk_get_by_index(dev, 0, &clk); + if (ret) + return 0; + + ret = dev_read_u32(dev, "clock-frequency", &clock); + if (ret) { + debug("clock-frequency not found in dt %d\n", ret); + return ret; + } else { + ret = clk_set_rate(&clk, clock); + if (ret < 0) { + debug("Could not set CPU clock\n"); + return ret; + } + } + + ret = clk_enable(&clk); + clk_free(&clk); + if (ret == -ENOSYS || ret == -ENOTSUPP) + return 0; + else + return ret; +} + static const struct cpu_ops riscv_cpu_ops = { .get_desc = riscv_cpu_get_desc, .get_info = riscv_cpu_get_info, @@ -116,6 +148,7 @@ U_BOOT_DRIVER(riscv_cpu) = { .id = UCLASS_CPU, .of_match = riscv_cpu_ids, .bind = riscv_cpu_bind, + .probe = riscv_cpu_probe, .ops = &riscv_cpu_ops, .flags = DM_FLAG_PRE_RELOC, };