From patchwork Wed Oct 23 20:27:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1182472 X-Patchwork-Delegate: simon.k.r.goldschmidt@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="U6pW/fhZ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46z2536lCfz9sP6 for ; Thu, 24 Oct 2019 07:28:21 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 55251C21DE8; Wed, 23 Oct 2019 20:28:16 +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=FREEMAIL_FROM, 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 DB1F5C21DA2; Wed, 23 Oct 2019 20:28:14 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A8B70C21DA2; Wed, 23 Oct 2019 20:28:13 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by lists.denx.de (Postfix) with ESMTPS id 5EBF4C21C27 for ; Wed, 23 Oct 2019 20:28:13 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id t16so18369966wrr.1 for ; Wed, 23 Oct 2019 13:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=daGhBj/NBmHJQ8Y8OzIM1/lhfZ7/TyvVHKHFVeNxyMA=; b=U6pW/fhZdzGzzLfCP/G6E7/CchypIy3QpEya2fPfQFtZrEhrHNhC75A/ytRVFa10JT JyN/ZyDdHdWS+Cg08AQaLXXF1Z+5DcELqra6P5u7eVErSyKBrnz/tRzfhBWileUpDxyM bQ75j7wwGmcPUbwrhdclM3YiD/zO1FvdK7p9ueCyLuI1l/fy/+c8pnnw+09tU4rFGD3k vpc7M7lRPOHln9o22QpahYbXnDLTHTdvsHAq9n5FJ9mQGHxhIbrppCvzvEn5823gr8O5 MQKdgJJcObdFrrRWAtIhOeAb0H7nUzC/beAIuCQeX5/nLtb5HhKgedpanFLv4mSvR4ml oX1Q== 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:mime-version :content-transfer-encoding; bh=daGhBj/NBmHJQ8Y8OzIM1/lhfZ7/TyvVHKHFVeNxyMA=; b=azltA0ym75WvYXz3ihEX1FaRMnhZlzLhSRxCEEDVK/TI62qU8YWRNZqk9O8FDpZUE7 NhNFF37cB+y+UgWY43EaxQMP7Xwvcxo1IwfDaJBQP75jCbl/xPUIHBSrwt82fSCMnZnb cxf5+ct47Gsud6q+k9vbIodp7aNp6k3yrcDWyDijeSnEx8s4FQELGWdJOIoGFy312ZIn vEGdbOU1ocp1AhpNT79MnNd2wyQDQjGGKQ11nDYnD+z7XDjKD7cQs5geIwU+8svYn9iU 81/6x5VkT3iI9ppFALzLRFBs6810dieglZd9KaSGzA9y6AIQ1XiACJTc+PdLFqdGMAdo V4bQ== X-Gm-Message-State: APjAAAXrQNSbZLvFjaZbCxCSOxKZVM7BBXPC28cc/umuW98RES98TWZm abTtMDgUF0bpN/A4P6PGS94= X-Google-Smtp-Source: APXvYqz2fGnPqc1A0QkcnIBZNYdehSaZRCHPMh19N4vEgL5/VQRDVqo1DR0gKw93qAa+FIAofXaTfA== X-Received: by 2002:adf:f482:: with SMTP id l2mr538905wro.256.1571862492933; Wed, 23 Oct 2019 13:28:12 -0700 (PDT) Received: from ubuntu.home ([2a02:8071:6a3:700:50e:1b2d:a4c8:d388]) by smtp.gmail.com with ESMTPSA id p126sm452347wme.0.2019.10.23.13.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Oct 2019 13:28:12 -0700 (PDT) From: Simon Goldschmidt To: Marek Vasut Date: Wed, 23 Oct 2019 22:27:56 +0200 Message-Id: <20191023202756.8480-1-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] spi: cadence_qspi: support DM_CLK 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: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Support loading clk speed via DM instead of requiring ad-hoc code. Signed-off-by: Simon Goldschmidt --- drivers/spi/cadence_qspi.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index e2e54cd277..0b89115885 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -22,12 +23,27 @@ static int cadence_spi_write_speed(struct udevice *bus, uint hz) { struct cadence_spi_platdata *plat = bus->platdata; struct cadence_spi_priv *priv = dev_get_priv(bus); + unsigned int ref_clk_hz; + struct clk clk; + int ret; + + ret = clk_get_by_index(bus, 0, &clk); + if (ret) { +#ifdef CONFIG_CQSPI_REF_CLK + ref_clk_hz = CONFIG_CQSPI_REF_CLK; +#else + return ret; +#endif + } else { + ref_clk_hz = clk_get_rate(&clk); + clk_free(&clk); + } cadence_qspi_apb_config_baudrate_div(priv->regbase, - CONFIG_CQSPI_REF_CLK, hz); + ref_clk_hz, hz); /* Reconfigure delay timing if speed is changed. */ - cadence_qspi_apb_delay(priv->regbase, CONFIG_CQSPI_REF_CLK, hz, + cadence_qspi_apb_delay(priv->regbase, ref_clk_hz, hz, plat->tshsl_ns, plat->tsd2d_ns, plat->tchsh_ns, plat->tslch_ns);