From patchwork Mon Feb 15 09:56:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 1440429 X-Patchwork-Delegate: monstr@monstr.eu 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=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=LiM2JhYA; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4DfKJ856TJz9sBy for ; Mon, 15 Feb 2021 20:56:40 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0B4BD826A6; Mon, 15 Feb 2021 10:56:27 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="LiM2JhYA"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 187F1826A5; Mon, 15 Feb 2021 10:56:21 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 8E6CD826A5 for ; Mon, 15 Feb 2021 10:56:17 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=monstr@monstr.eu Received: by mail-ej1-x634.google.com with SMTP id jt13so10203423ejb.0 for ; Mon, 15 Feb 2021 01:56:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l3sr/lpNtdWizJhOPfCXO+XaarT2VEEZMDgdf/RA+Ww=; b=LiM2JhYAsTuUR1rI5XDvqRlZBZkpTBdEtNjhgp24KYIOeWLIdKM86rgDjuQDREKHIG 2M2hiwFdYo7in/Dca8Y2kNQTli0Dv1Hbqy5aAZvzYtg6p9NPEKViKAbkmYZYuquEZTNA +wEsDWdEMi2MaRIELwkiH4urDz1bMXML4nwVMXDskRjuX9N55HDTNdJSu93yG42dg4Pz fOEc91BuaGPXYq6j+0oBHJuZD6Vi7q/D31FV0/WGbD3VaQw5NQ3weMDEIi6493E980oA SgH+EOoSr7VnVh+GZh9VNO00KdoWXU23q3pVBXLJ35jOS7KUWXl8Sl+mYfF0JYPQjjau JzkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=l3sr/lpNtdWizJhOPfCXO+XaarT2VEEZMDgdf/RA+Ww=; b=duVa37rlgz401UPbfflCjogSdrziWzfIY2HnpfrPDDCUvu00tU7vNxY8vhqjQxDlC2 mKRmsd7BezMFh+UyqKytEWxOuxRnDfaT1rsC4/fh2guVlBvzoEgVBzFsXu4lvGeZVBNu xgH7KCAUUj5ThxdauLmfTHC87LltO6NVwbAE8yMxa9pTvfuFXcZeqq6Cu1y7PetFEtdo WRw514V+kYrEHkpjX7yR1gYIkhPSQZ32y7lVr8fSAzVgqs2cwtr3rN4zyNwKhOmi3/4x A4f21NpB590hcyIVwGfBql/qmQe23XZ4uI/aqXnG2TKw4G4VC6pTaZ3XLyuWqHO91HZd 5x0Q== X-Gm-Message-State: AOAM530OWZHA0A4U81m8gT36lICkUE9NjmEcQqY39CUgtqnLLYWEpcFC I013yDL3CMOQ38qp3LJyDaLp5FAS3TNAoA== X-Google-Smtp-Source: ABdhPJykHAuK9E+deW2IHGo4oHLy97hEnvRWu4rvDcGaK6abjXmvgcwpUvYpg6JqlyHfQRzlj4ldzA== X-Received: by 2002:a17:907:94d4:: with SMTP id dn20mr14905406ejc.397.1613382977006; Mon, 15 Feb 2021 01:56:17 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id gy6sm1861180ejb.16.2021.02.15.01.56.16 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Feb 2021 01:56:16 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de, git@xilinx.com Cc: Jagan Teki , Joe Hershberger , Lukasz Majewski , Michal Simek , Peng Fan , Ramon Fried Subject: [PATCH v3 1/5] clk: zynq: Add dummy clock enable function Date: Mon, 15 Feb 2021 10:56:07 +0100 Message-Id: <2c7d6991d620986ad8bd0bfa3aa984c16fdc8db5.1613382967.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean A lot of Xilinx drivers are checking -ENOSYS which means that clock driver doesn't have enable function. Remove this checking from drivers and create dummy enable function as was done for clk_fixed_rate driver by commit 6bf6d81c1112 ("clk: fixed_rate: add dummy enable() function"). Signed-off-by: Michal Simek --- Changes in v3: - Enable it for SPL too. Changes in v2: - New patch is series drivers/clk/clk_zynq.c | 10 ++++++++++ drivers/mmc/zynq_sdhci.c | 2 +- drivers/net/zynq_gem.c | 4 ++-- drivers/serial/serial_zynq.c | 2 +- drivers/spi/zynq_qspi.c | 2 +- drivers/spi/zynq_spi.c | 2 +- drivers/spi/zynqmp_gqspi.c | 2 +- drivers/watchdog/xilinx_wwdt.c | 3 +-- 8 files changed, 18 insertions(+), 9 deletions(-) diff --git a/drivers/clk/clk_zynq.c b/drivers/clk/clk_zynq.c index bf32d8317ab2..1f71b7d1e4f6 100644 --- a/drivers/clk/clk_zynq.c +++ b/drivers/clk/clk_zynq.c @@ -444,11 +444,21 @@ static ulong zynq_clk_get_rate(struct clk *clk) } #endif +static int dummy_enable(struct clk *clk) +{ + /* + * Add implementation but by default all clocks are enabled + * after power up which is only one supported case now. + */ + return 0; +} + static struct clk_ops zynq_clk_ops = { .get_rate = zynq_clk_get_rate, #ifndef CONFIG_SPL_BUILD .set_rate = zynq_clk_set_rate, #endif + .enable = dummy_enable, }; static int zynq_clk_probe(struct udevice *dev) diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c index d9ad0ff199d7..b79c4021b6a5 100644 --- a/drivers/mmc/zynq_sdhci.c +++ b/drivers/mmc/zynq_sdhci.c @@ -577,7 +577,7 @@ static int arasan_sdhci_probe(struct udevice *dev) debug("%s: CLK %ld\n", __func__, clock); ret = clk_enable(&clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(dev, "failed to enable clock\n"); return ret; } diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index 585c06d6bd87..a2a01112018f 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -477,13 +477,13 @@ static int zynq_gem_init(struct udevice *dev) } ret = clk_set_rate(&priv->clk, clk_rate); - if (IS_ERR_VALUE(ret) && ret != (unsigned long)-ENOSYS) { + if (IS_ERR_VALUE(ret)) { dev_err(dev, "failed to set tx clock rate\n"); return ret; } ret = clk_enable(&priv->clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(dev, "failed to enable tx clock\n"); return ret; } diff --git a/drivers/serial/serial_zynq.c b/drivers/serial/serial_zynq.c index 2883e2466f8b..799d5240473c 100644 --- a/drivers/serial/serial_zynq.c +++ b/drivers/serial/serial_zynq.c @@ -127,7 +127,7 @@ static int zynq_serial_setbrg(struct udevice *dev, int baudrate) debug("%s: CLK %ld\n", __func__, clock); ret = clk_enable(&clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(dev, "failed to enable clock\n"); return ret; } diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c index 845f2d2f5f41..29dbbf555776 100644 --- a/drivers/spi/zynq_qspi.c +++ b/drivers/spi/zynq_qspi.c @@ -193,7 +193,7 @@ static int zynq_qspi_probe(struct udevice *bus) } ret = clk_enable(&clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(bus, "failed to enable clock\n"); return ret; } diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c index 2971e55f41b1..650d4d71d925 100644 --- a/drivers/spi/zynq_spi.c +++ b/drivers/spi/zynq_spi.c @@ -143,7 +143,7 @@ static int zynq_spi_probe(struct udevice *bus) } ret = clk_enable(&clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(bus, "failed to enable clock\n"); return ret; } diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c index c7db43a09a52..bd25511aae6a 100644 --- a/drivers/spi/zynqmp_gqspi.c +++ b/drivers/spi/zynqmp_gqspi.c @@ -373,7 +373,7 @@ static int zynqmp_qspi_probe(struct udevice *bus) debug("%s: CLK %ld\n", __func__, clock); ret = clk_enable(&clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(bus, "failed to enable clock\n"); return ret; } diff --git a/drivers/watchdog/xilinx_wwdt.c b/drivers/watchdog/xilinx_wwdt.c index 9137d87697d4..11b30ae85df0 100644 --- a/drivers/watchdog/xilinx_wwdt.c +++ b/drivers/watchdog/xilinx_wwdt.c @@ -90,9 +90,8 @@ static int xlnx_wwdt_start(struct udevice *dev, u64 timeout, ulong flags) /* Calculate timeout count */ count = timeout * clock_f; - /* clk_enable will return -ENOSYS when it is not implemented */ ret = clk_enable(&wdt->clk); - if (ret && ret != -ENOSYS) { + if (ret) { dev_err(dev, "failed to enable clock\n"); return ret; } From patchwork Mon Feb 15 09:56:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 1440432 X-Patchwork-Delegate: monstr@monstr.eu 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=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=i2AEr7bY; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4DfKJM12rdz9rx8 for ; Mon, 15 Feb 2021 20:56:51 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 727088270D; Mon, 15 Feb 2021 10:56:30 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="i2AEr7bY"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B2F83826A6; Mon, 15 Feb 2021 10:56:23 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CCB18826A6 for ; Mon, 15 Feb 2021 10:56:18 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=monstr@monstr.eu Received: by mail-ej1-x630.google.com with SMTP id bl23so10146821ejb.5 for ; Mon, 15 Feb 2021 01:56:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dgqOp5qkL1vDtQYy5uhWcn6IPB/M04+YkzUfg/oozGE=; b=i2AEr7bYC19F/jXfORn4i+xzelcJPBSYp+hl0TVVSjcHo8iJcjYO6ae3JRYzP81mqT kap3H+IOssVCvlEJsyKzZvs26nohOelAdbkOBAzPNNApfX4POSu4pdPTmNW/+fBW7Nuj qUQDbyycdSv1FE7tL7n2TBezlcxAT1jz3O5GopAAoy7CliI93tQRcvST7vi4irkI7lgV RT8T4NKZwoNsjnn+nVtieGjzbAo1rwoyWAhqWjU7XSQITapjG3smHWSq5vJ927qBGH0N +DijHPtB7d5jwYDE3MatH9HOKw75W6S25WJQjIRbFd4FqZsLtnQfFyvouhqgwf87Mwmi 7ZCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=dgqOp5qkL1vDtQYy5uhWcn6IPB/M04+YkzUfg/oozGE=; b=iOesAHRgiJTMBC4leYl+Wsu6Qgy5jBoziUwVwdZUXTuSOGWjLOQBaykrwyIdnqtcfm 7cmM68aI0BWB89jWuStGbm+aCNQK0WrqRkscylFdvIv1kay/dvHUz4/RPEtEXUe2c+lQ YOYRZXEmjlylgFHu7WRT5c17ECDYVJkw/Fv5D3VAYEooHa0HRvCsCX1UplP5hHyQCIWf 5EjqVxxjexFkpq+KHxLR+Zs84cA9/5adAGy3Ld2zlS+ezSUznHPgJv/EABPrzDRjHr6c 9sUUSJcwZmwGBOpPk41luEk6zJFnqCOZQZmIFINahIFf5WORbzelP5tL6gnXLiEczkH0 6jSg== X-Gm-Message-State: AOAM531Ef8SSge4nw3o7BcRevQ5IIT03Cmp3vX5T4DpaKgly/q07rTOU dHTub8ICjrc0PlCXyhgkqMAP7YpTCrmzGw== X-Google-Smtp-Source: ABdhPJwmloCwPVSBun+VNvjgaCpFXSi67501Dd/ma1Eso8p75BAWmvwDFmRwTcIi4DlZg++MpJV+ng== X-Received: by 2002:a17:906:6bd9:: with SMTP id t25mr4738758ejs.99.1613382978337; Mon, 15 Feb 2021 01:56:18 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id f1sm10191023ejt.21.2021.02.15.01.56.17 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Feb 2021 01:56:18 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de, git@xilinx.com Cc: T Karthik Reddy , Lukasz Majewski , Michal Simek Subject: [PATCH v3 2/5] clk: zynqmp: Add support to enable clocks Date: Mon, 15 Feb 2021 10:56:08 +0100 Message-Id: <316d7058780c0b1f4e2d5d08e8764f924e3a32f6.1613382967.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean From: T Karthik Reddy Add clock enable functionality in zynqmp clock driver to enable clocks from peripheral drivers using clk_ops. Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek --- (no changes since v1) drivers/clk/clk_zynqmp.c | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/drivers/clk/clk_zynqmp.c b/drivers/clk/clk_zynqmp.c index e8acca00660d..609d8e3b2fff 100644 --- a/drivers/clk/clk_zynqmp.c +++ b/drivers/clk/clk_zynqmp.c @@ -199,6 +199,8 @@ static u32 zynqmp_clk_get_register(enum zynqmp_clk id) return CRF_APB_DDR_CTRL; case qspi_ref: return CRL_APB_QSPI_REF_CTRL; + case usb3_dual_ref: + return CRL_APB_USB3_DUAL_REF_CTRL; case gem0_ref: return CRL_APB_GEM0_REF_CTRL; case gem1_ref: @@ -207,6 +209,10 @@ static u32 zynqmp_clk_get_register(enum zynqmp_clk id) return CRL_APB_GEM2_REF_CTRL; case gem3_ref: return CRL_APB_GEM3_REF_CTRL; + case usb0_bus_ref: + return CRL_APB_USB0_BUS_REF_CTRL; + case usb1_bus_ref: + return CRL_APB_USB1_BUS_REF_CTRL; case uart0_ref: return CRL_APB_UART0_REF_CTRL; case uart1_ref: @@ -699,9 +705,52 @@ static int zynqmp_clk_probe(struct udevice *dev) return 0; } +static int zynqmp_clk_enable(struct clk *clk) +{ + enum zynqmp_clk id = clk->id; + u32 reg, clk_ctrl, clkact_shift, mask; + int ret; + + reg = zynqmp_clk_get_register(id); + debug("%s, clk_id:%x, clk_base:0x%x\n", __func__, id, reg); + + switch (id) { + case usb0_bus_ref ... usb1: + clkact_shift = 25; + mask = 0x1; + break; + case gem0_ref ... gem3_ref: + clkact_shift = 25; + mask = 0x3; + break; + case qspi_ref ... can1_ref: + clkact_shift = 24; + mask = 0x1; + break; + default: + return -ENXIO; + } + + ret = zynqmp_mmio_read(reg, &clk_ctrl); + if (ret) { + printf("%s mio read fail\n", __func__); + return -EIO; + } + + clk_ctrl |= (mask << clkact_shift); + ret = zynqmp_mmio_write(reg, mask << clkact_shift, clk_ctrl); + if (ret) { + printf("%s mio write fail\n", __func__); + return -EIO; + } + + return ret; +} + static struct clk_ops zynqmp_clk_ops = { .set_rate = zynqmp_clk_set_rate, .get_rate = zynqmp_clk_get_rate, + .enable = zynqmp_clk_enable, }; static const struct udevice_id zynqmp_clk_ids[] = { From patchwork Mon Feb 15 09:56:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 1440433 X-Patchwork-Delegate: monstr@monstr.eu 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; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=CMK5IpR7; 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) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DfKJj10vMz9rx8 for ; Mon, 15 Feb 2021 20:57:09 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E91BC82731; Mon, 15 Feb 2021 10:56:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="CMK5IpR7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AF4FE826FC; Mon, 15 Feb 2021 10:56:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 24AD4826AD for ; Mon, 15 Feb 2021 10:56:20 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=monstr@monstr.eu Received: by mail-ed1-x52c.google.com with SMTP id q10so7260925edt.7 for ; Mon, 15 Feb 2021 01:56:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XKDs/zA7UZ7gyBr4fCNeIqqIQiwS08O6Q5KjFvXkH1k=; b=CMK5IpR7qGVfeNCXlmt3eQdL3YinG5KCnFwRwAbVXsin8EJj/W0jsFC2dR1hOlMUAK iDEnMT4v39SZI/ygHZ83ryQCTNIVrS3JuqIIRx6RUoZTfNDi3y2lMD1KjqCbL7BRCkbb PXkupvFyFM2C1e+dq4Y3h3CNJwrWBKCToEjZ2+1mJdYT7AdK0L8rBOW70SdvSK5dkE7q aADwimnTY0UVBx3oDsoArWwSalSB+sxxLRg37hCmlLHp87KrqBi+hIKhIB+v6MfGXed2 2UknqY0/sIEl0TkT2QvYSDJY3sNkGgUnF5J68AmqbVbWEcW4aKTxTsv+6ZkREGC29UMC bXtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=XKDs/zA7UZ7gyBr4fCNeIqqIQiwS08O6Q5KjFvXkH1k=; b=ptmSZGSI8qNcVKRCJAxXUse8ECY20LwP1qjczscyzhGs1+5a5788OK8KH1SGesSjim LOveRfzLii411k941n0xTi7P6OJTCDpLKO6nigbx1BuyW485Q0/NpVVyEpnve11NlmIe sJg6xaN+SQurKnfHlRJWrDJcs2j+tYPzTcRMuDxoS/HGFKxg0L+is2i8u4nkJV0oVX9p Mg+X0fx0qpQgTawNfbSivnlU0gFNHy19Y09rAuo1L9XgW5JifbrZyWca57+/YCk8QsZu +wXBYRivyt0P/nGXrv9I/lCi2A9So18kjnDGMzcKxvKnYjQYmpSDLgAUcff5m2xrBTcj 3XYA== X-Gm-Message-State: AOAM531TsjxeusfSBazVRYxrmkOpPS8r2rus8pQHyF5umZ3D+cPz7iR1 k1oIG4mE4pk3ttiltJ2UC2TEajLSavJQJQ== X-Google-Smtp-Source: ABdhPJxhAVy2ztEWrj7bOnEq5DFPoWAgp6SJ1w9tk5NOOqVWzXvUPcXus7t9vKKwCFZFaiL3XEipBw== X-Received: by 2002:a50:bf42:: with SMTP id g2mr14731540edk.101.1613382979615; Mon, 15 Feb 2021 01:56:19 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id gy6sm1861237ejb.16.2021.02.15.01.56.19 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Feb 2021 01:56:19 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de, git@xilinx.com Cc: T Karthik Reddy , Lukasz Majewski Subject: [PATCH v3 3/5] clk: versal: Add support to enable clocks Date: Mon, 15 Feb 2021 10:56:09 +0100 Message-Id: <37e390b4305d943b4e1844687f60b03a2b74d613.1613382967.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean From: T Karthik Reddy Add clock enable functionality in versal clock driver to enable clocks from peripheral drivers using clk_ops. Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek --- (no changes since v2) Changes in v2: - change patch possition drivers/clk/clk_versal.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c index 908bc7519c42..62523d290999 100644 --- a/drivers/clk/clk_versal.c +++ b/drivers/clk/clk_versal.c @@ -718,9 +718,20 @@ static ulong versal_clk_set_rate(struct clk *clk, ulong rate) return clk_rate; } +static int versal_clk_enable(struct clk *clk) +{ + struct versal_clk_priv *priv = dev_get_priv(clk->dev); + u32 clk_id; + + clk_id = priv->clk[clk->id].clk_id; + + return xilinx_pm_request(PM_CLOCK_ENABLE, clk_id, 0, 0, 0, NULL); +} + static struct clk_ops versal_clk_ops = { .set_rate = versal_clk_set_rate, .get_rate = versal_clk_get_rate, + .enable = versal_clk_enable, }; static const struct udevice_id versal_clk_ids[] = { From patchwork Mon Feb 15 09:56:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 1440434 X-Patchwork-Delegate: monstr@monstr.eu 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; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=xRUxXvkg; 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 4DfKJn4hSZz9rx8 for ; Mon, 15 Feb 2021 20:57:13 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5A8D182721; Mon, 15 Feb 2021 10:56:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="xRUxXvkg"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BAD60826A6; Mon, 15 Feb 2021 10:56:25 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 652D8826E2 for ; Mon, 15 Feb 2021 10:56:21 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=monstr@monstr.eu Received: by mail-ed1-x52f.google.com with SMTP id h10so2564892edl.6 for ; Mon, 15 Feb 2021 01:56:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1jDcl+CG7umLpG8g5ZWYhJwobIUIJnHJUIeM0Edg+Mg=; b=xRUxXvkgsImrB2+aIE7SKq+sl2VQSMhH/65Z9XxpDRM47FBVMnNWkrQbbYCQOS1roX mxVx3BeDk7SaPveBkxrbF3VZ8tIYASE3egzK8eH3scoXIpgHpRqMsl5vMqooC15IR9cX HZrd/nmXYYS8j2lyIXzV+VdLDu3l42fcM0zb78Uf07j0MolEGsbM1dEq51UXqoAQdAfc 9tuYa8+cInZopHOBJfdAVEGy0+QFm4kHKpEgvqitqYy5x9UiVXjEF5aGiScLg0uUACcz lcXNTTGwXX3inMAwz886K/3F/b/NzTXRUKFEicADvg0rvTtIMo6AajjfyH+Zj6352EEl mRLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=1jDcl+CG7umLpG8g5ZWYhJwobIUIJnHJUIeM0Edg+Mg=; b=UTbgCj/LOgK0rGj99h/+N89ZzJvZ6lStE1Y4W7wSQ3CpI0aZmROUl0t5anAwYgzNIq aPVaWPb87HcZ7zfe+62G+P5T+dDbNhQ2hbarOue395EixbC1+vnEpsuEuPo7dezIkJGL 1FaKCJFXZODZbs/lDWPkmT6v3NI41gjbkz7Hl6BIJSbLiDUmqKGJcnznWccPH6NNHtIZ JAEdiW3V1qHe5i4LIOoBmz2jsH9TW7aA+dQOM5ih/5BWpzX5pfu2ncXavMQWXwATr8pq yRojW/ZQtMhrTJeKtqgRmzMLXJkaRQjnSGtzr9ByVZK8E9Suub0GqL5MzSSvkvoQcEpg NRWw== X-Gm-Message-State: AOAM532KqVmr2kUoq7AFuYw2VQUyMuCFm+K+7SO2VIQw1LWNOfR5pA7x KcqqNvqj4bk8DY6hxNVXuew4QWEze4A6Ag== X-Google-Smtp-Source: ABdhPJzwGjy73JfxTTx1794zYamADq+vCngllSPKU2ndbZA8ePYsABPKA4bOzX13Nud36wV8XyX0dQ== X-Received: by 2002:a05:6402:786:: with SMTP id d6mr14876775edy.270.1613382980921; Mon, 15 Feb 2021 01:56:20 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id h24sm4370826edt.25.2021.02.15.01.56.20 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Feb 2021 01:56:20 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de, git@xilinx.com Cc: T Karthik Reddy , Heiko Schocher , Michal Simek Subject: [PATCH v3 4/5] i2c: i2c_cdns: Enable i2c clock Date: Mon, 15 Feb 2021 10:56:10 +0100 Message-Id: <9eadb3fdd4c4182dc4849b3bff5b8066d0f583a9.1613382967.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean From: T Karthik Reddy Enable i2c controller clock from driver probe function by calling clk_enable(). Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek Reviewed-by: Heiko Schocher --- (no changes since v1) drivers/i2c/i2c-cdns.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/i2c/i2c-cdns.c b/drivers/i2c/i2c-cdns.c index db3c04fa6e75..a650dd69b89f 100644 --- a/drivers/i2c/i2c-cdns.c +++ b/drivers/i2c/i2c-cdns.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -481,6 +482,12 @@ static int cdns_i2c_of_to_plat(struct udevice *dev) i2c_bus->input_freq = clk_get_rate(&clk); + ret = clk_enable(&clk); + if (ret) { + dev_err(dev, "failed to enable clock\n"); + return ret; + } + return 0; } From patchwork Mon Feb 15 09:56:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 1440435 X-Patchwork-Delegate: monstr@monstr.eu 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=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=wBFnu6LM; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4DfKK05jvgz9sBy for ; Mon, 15 Feb 2021 20:57:24 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D1ED28274C; Mon, 15 Feb 2021 10:56:38 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="wBFnu6LM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3CEB982709; Mon, 15 Feb 2021 10:56:28 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CB3F2826F2 for ; Mon, 15 Feb 2021 10:56:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=monstr@monstr.eu Received: by mail-ej1-x62a.google.com with SMTP id w1so10059686ejf.11 for ; Mon, 15 Feb 2021 01:56:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NBP4pG4hhPvKOInT7W0/ZXjahXy1vh3sTU5DFT0jqJI=; b=wBFnu6LMKvXOCFy3BKV1Ra+ZKmWJiJOu30jnpakoXCVnjW/j8wbUm8kDsqF/2ENbCq Def9SnEdQSAhqCznoaxHyXAdigYiktRlBEhnjlnz9N4JSZPWP0UXgWbDzykFEMtqPN+3 Ak5e2S/4CF6gupmoI62NzJvvS6MRWxxgq+rPmjhg8L0XsVSXxnA+QILpRYm+wXVhcdnY 4q4qKJj2D/72nR2ZH72vKhF4FukLhj8QT0nPmz+N5+7m3LTVvcxGM2fgt5Hqem2NYvKx YQISMLj2Ph8tkHKpYiyfm0SbNZE+etgzVwcivfwuwxbydqkuVxIlrht2Mw3RtIP/WtLu Vtzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=NBP4pG4hhPvKOInT7W0/ZXjahXy1vh3sTU5DFT0jqJI=; b=auklNfymwiNlU9g1Wjsx/57hYxcT41a/ayNegoZkgepd5aK6AYi6jLgHb6PC/Hlrip pe1cDEqOCwW2y+P0N2KEtk40bYWNE6C/8h9mz9qry/o8rZ4ApHT0a+AwbxT6Y1sLUyP/ D2e2VGMQR53J8riiZ+uSab+It0T+QBZvILP320o+GtnG7G3xNtjXaNJ9SnD3wsQ2FCkk HBXzDeeTcCJOCf/iuZIOrw86lc7/2UjTmmWwDTtTmthriVTIrl9e6fxcwMBO8yc+FwX0 atbKUKiiCmXsqKPnM3PXEwuNatZsiDO7dng0ywrz2CLfWcQnZMrVkUWfCYAEXg0X1XAF ZXIA== X-Gm-Message-State: AOAM533zFicp+mwM3ugk9V3fvKHaLS/eHne3gkScDT2hY6Q1BZKPuAkM 41W45nXaYczn+3zs8jAEXKxNMrCORauoGg== X-Google-Smtp-Source: ABdhPJz8HU3qdPFRD8vuLx5hWnK0GLLk3WbfKWsOEeSfce73+kZc2wdMtTHRnY6Gyej4fUVCSs/1lA== X-Received: by 2002:a17:906:3019:: with SMTP id 25mr14226196ejz.320.1613382982196; Mon, 15 Feb 2021 01:56:22 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id x42sm10038864ede.64.2021.02.15.01.56.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Feb 2021 01:56:21 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de, git@xilinx.com Cc: T Karthik Reddy , Ramon Fried , Joe Hershberger Subject: [PATCH v3 5/5] net: gem: Enable ethernet rx clock for versal Date: Mon, 15 Feb 2021 10:56:11 +0100 Message-Id: <24840221f3f6d00849d6c302e013cd6191bc414e.1613382967.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean From: T Karthik Reddy Enable rx clock along with tx clock for versal platform. Use compatible data to enable/disable clocks in the driver. Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek Reviewed-by: Ramon Fried --- Changes in v3: - Fix Ramon's tag Changes in v2: - Use compatible data instead of CONFIG_ drivers/net/zynq_gem.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index a2a01112018f..9ed013ee5124 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -129,6 +129,8 @@ #define ZYNQ_GEM_FREQUENCY_100 25000000UL #define ZYNQ_GEM_FREQUENCY_1000 125000000UL +#define RXCLK_EN BIT(0) + /* Device registers */ struct zynq_gem_regs { u32 nwctrl; /* 0x0 - Network Control reg */ @@ -205,10 +207,12 @@ struct zynq_gem_priv { struct phy_device *phydev; ofnode phy_of_node; struct mii_dev *bus; - struct clk clk; + struct clk rx_clk; + struct clk tx_clk; u32 max_speed; bool int_pcs; bool dma_64bit; + u32 clk_en_info; }; static int phy_setup_op(struct zynq_gem_priv *priv, u32 phy_addr, u32 regnum, @@ -476,18 +480,25 @@ static int zynq_gem_init(struct udevice *dev) break; } - ret = clk_set_rate(&priv->clk, clk_rate); + ret = clk_set_rate(&priv->tx_clk, clk_rate); if (IS_ERR_VALUE(ret)) { dev_err(dev, "failed to set tx clock rate\n"); return ret; } - ret = clk_enable(&priv->clk); + ret = clk_enable(&priv->tx_clk); if (ret) { dev_err(dev, "failed to enable tx clock\n"); return ret; } + if (priv->clk_en_info & RXCLK_EN) { + ret = clk_enable(&priv->rx_clk); + if (ret) { + dev_err(dev, "failed to enable rx clock\n"); + return ret; + } + } setbits_le32(®s->nwctrl, ZYNQ_GEM_NWCTRL_RXEN_MASK | ZYNQ_GEM_NWCTRL_TXEN_MASK); @@ -694,12 +705,20 @@ static int zynq_gem_probe(struct udevice *dev) priv->tx_bd = (struct emac_bd *)bd_space; priv->rx_bd = (struct emac_bd *)((ulong)bd_space + BD_SEPRN_SPACE); - ret = clk_get_by_name(dev, "tx_clk", &priv->clk); + ret = clk_get_by_name(dev, "tx_clk", &priv->tx_clk); if (ret < 0) { - dev_err(dev, "failed to get clock\n"); + dev_err(dev, "failed to get tx_clock\n"); goto err1; } + if (priv->clk_en_info & RXCLK_EN) { + ret = clk_get_by_name(dev, "rx_clk", &priv->rx_clk); + if (ret < 0) { + dev_err(dev, "failed to get rx_clock\n"); + goto err1; + } + } + priv->bus = mdio_alloc(); priv->bus->read = zynq_gem_miiphy_read; priv->bus->write = zynq_gem_miiphy_write; @@ -794,11 +813,13 @@ static int zynq_gem_of_to_plat(struct udevice *dev) (ulong)priv->iobase, (ulong)priv->mdiobase, priv->phyaddr, phy_string_for_interface(priv->interface)); + priv->clk_en_info = dev_get_driver_data(dev); + return 0; } static const struct udevice_id zynq_gem_ids[] = { - { .compatible = "cdns,versal-gem" }, + { .compatible = "cdns,versal-gem", .data = RXCLK_EN }, { .compatible = "cdns,zynqmp-gem" }, { .compatible = "cdns,zynq-gem" }, { .compatible = "cdns,gem" },