From patchwork Thu Jan 17 11:03:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1026538 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=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=brainfault.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=brainfault-org.20150623.gappssmtp.com header.i=@brainfault-org.20150623.gappssmtp.com header.b="Og8e6W6h"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43gLxN6jsBz9s3l for ; Thu, 17 Jan 2019 22:11:36 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 08E43C220BA; Thu, 17 Jan 2019 11:08:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=KHOP_BIG_TO_CC, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id CCD9EC220AF; Thu, 17 Jan 2019 11:07:35 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C3167C21FD1; Thu, 17 Jan 2019 11:05:03 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id 64987C220E6 for ; Thu, 17 Jan 2019 11:04:58 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id y126so4677967pfb.4 for ; Thu, 17 Jan 2019 03:04:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brainfault-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=l4jrmiw/9+4o29F6LtFaihviTcTNCUW46NCO5d6UVBI=; b=Og8e6W6hWzVMl0e8BuFZA4Qf4ENlTmGuJeTYfDyWz0sm+e44n0CfvRdoof27Vv2UUI XtVZPZDbmXrSKH8z7HEG+G4t/tWEDZxXqRuJ2sVybAmPI5GdI4yz3YVeaj07NrR5OjCW 97K+Hdjth3PuxY1uIRZueG0srYVDjb0yaWmjCLo+c4psx3F3k12DPlfXO9H7Mw7IjVRT lP2ZRj30xAGomVbX8KhFPC6gwugXWldLEH8R5NH220a+gT9pFF/i0RTX7pd+5PO+C4yW +oRK2SwV1/QzdP8T8qpo4ymGWVO8D7mydnpM7RLrzLN4trWmNwP3CKGe7S9Z1iB4YiHk Lojw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=l4jrmiw/9+4o29F6LtFaihviTcTNCUW46NCO5d6UVBI=; b=KocegSqLtEz2El84Uz3VD013ia6PwBM+fuIJhHV2rJUoymHD8rEJU7tqUAuqLaR/ET oTBBa/FbViBE+h7djQJUCeHsWgZevMSPDzxs8Ybojp3+M5OvUaKF/roonlFeRX9d4TaO oH2nqsozVNrdll1E2lbNfja/TFQEBligjZiCBdcUNd5WklGTlfqy9aE/8H7g/ZRwLKBb le+K2S6EWBjrtFfDP750VeygPeL9LXJ9eLx/7w3tBoZtKBtsDO4Jw8iBClLWXmMTz+D+ bC4yvYdFSBaR4+wHmP1yU17rX3IACH6rwv8xBicky+MwmFS2099hz4sXfoDigoAlEjX8 ngvg== X-Gm-Message-State: AJcUukc0WDQs3tjExjWO870btAN6w+pa1NkK9Da49CiWP3VS8RjEdCgl 2JSz/ym3w1LfKmo9cUoxxWgFHQ== X-Google-Smtp-Source: ALg8bN5UtBrNbjw34TXhWtDlm4iIBKtv8HEHq+HbceKuYjQtZH5jvEmQSMHO6vG5J1ZNWZ+Rr5EsCw== X-Received: by 2002:a63:e74b:: with SMTP id j11mr13090798pgk.397.1547723096886; Thu, 17 Jan 2019 03:04:56 -0800 (PST) Received: from localhost.localdomain ([106.51.16.164]) by smtp.gmail.com with ESMTPSA id h15sm1688142pgl.43.2019.01.17.03.04.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Jan 2019 03:04:56 -0800 (PST) From: Anup Patel To: Rick Chen , Bin Meng , Joe Hershberger , Lukas Auer , Masahiro Yamada , Simon Glass Date: Thu, 17 Jan 2019 16:33:54 +0530 Message-Id: <20190117110356.36753-10-anup@brainfault.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190117110356.36753-1-anup@brainfault.org> References: <20190117110356.36753-1-anup@brainfault.org> Cc: Palmer Dabbelt , U-Boot Mailing List , Alexander Graf , Christoph Hellwig , Paul Walmsley Subject: [U-Boot] [PATCH 09/11] drivers: serial: serial_sifive: Skip baudrate config if no input clock X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Atish Patra It is possible that input clock is not available because clk device was not available and 'clock-frequency' DT property is also not available. In this case, instead of failing we should just skip baudrate config by returning zero. Signed-off-by: Atish Patra Signed-off-by: Anup Patel --- drivers/serial/serial_sifive.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/serial/serial_sifive.c b/drivers/serial/serial_sifive.c index ea4d35d48c..537bc7a975 100644 --- a/drivers/serial/serial_sifive.c +++ b/drivers/serial/serial_sifive.c @@ -99,27 +99,27 @@ static int _sifive_serial_getc(struct uart_sifive *regs) static int sifive_serial_setbrg(struct udevice *dev, int baudrate) { - int err; + int ret; struct clk clk; struct sifive_uart_platdata *platdata = dev_get_platdata(dev); + u32 clock = 0; - err = clk_get_by_index(dev, 0, &clk); - if (!err) { - err = clk_get_rate(&clk); - if (!IS_ERR_VALUE(err)) - platdata->clock = err; - } else if (err != -ENOENT && err != -ENODEV && err != -ENOSYS) { + ret = clk_get_by_index(dev, 0, &clk); + if (IS_ERR_VALUE(ret)) { debug("SiFive UART failed to get clock\n"); - return err; - } - - if (!platdata->clock) - platdata->clock = dev_read_u32_default(dev, "clock-frequency", 0); - if (!platdata->clock) { - debug("SiFive UART clock not defined\n"); - return -EINVAL; + ret = dev_read_u32(dev, "clock-frequency", &clock); + if (IS_ERR_VALUE(ret)) { + debug("SiFive UART clock not defined\n"); + return 0; + } + } else { + clock = clk_get_rate(&clk); + if (IS_ERR_VALUE(clock)) { + debug("SiFive UART clock get rate failed\n"); + return 0; + } } - + platdata->clock = clock; _sifive_serial_setbrg(platdata->regs, platdata->clock, baudrate); return 0;