From patchwork Mon Jun 17 07:32:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 644 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 3884C3F353 for ; Mon, 17 Jun 2019 09:40:25 +0200 (CEST) Received: by mail-pl1-f200.google.com with SMTP id g11sf5505417plt.23 for ; Mon, 17 Jun 2019 00:40:25 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1560757224; cv=pass; d=google.com; s=arc-20160816; b=fo8sBcZKZ6IpC3sNgnesmQnR0ILrFywZj+BoXDLjBUl7A9c2NzLzQQnlRSYwwF7CHA yvB3kNx2wU8bXIK9ckpSZVOcdE6aD1LjFQeDIrPyS5ZQRSfxIJ4X73QSd76yitXlxmp+ K/vbIUolEWxhJwhJHKuVi3EJbNQe60nu4j5sygkGrTmarwbqitbCvI5xxHla5ZJFxMHp 4M6fNe405fUzYMjV/MtAdk3jgx0wvPPhSgerRsdYaoEOhZWiG5T9JJ+f+fOSniyCRMbf INvkcCuPoUlxaXRip6BHbeY6iU+ywo7fEL1VsrQ1EoLuEjPjvGeG66w9gaD7Q5EAK/iz HVsw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=HgBatcwnhiGsqRrHnjeSNZDx7nuc9ISt28y2ilKo8vA=; b=lYvL9HmsEvxBHP814IioN1m213ESH6a91a9OMgZlJRUHpPEi0KSVn5Hj+jKP0MNpFJ xw+DblTXmAk7mTQGnk0EoiQs+oVu5k8czVEy3prOGRU5GGY8cTgX9OrVa2V3yfLOGywW oOoW43+peQT33eiNjXtA/wvVI1RsoJlqgWXJwzSiKNNl7Mj4j2MJhR4E358TRuDgUCSy mbJkawLMQ/3IEnSZh66ocdDsFl9nxGlnTzWqOR9vv2x4pppQ9Yytp1lHYhja2gewz8Db Ahp05r9TFlF9+al5ZjSWeaANxUEQF3ziYrWgA9I2pBU/jqoUXdyRn5nVIySWNnhNc7ZY ZoeQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=LUX5HCfC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=HgBatcwnhiGsqRrHnjeSNZDx7nuc9ISt28y2ilKo8vA=; b=rXSFSQ1rx/ZSItzFV2M0Kl0BSa6b4sCFXsxZBxgNS1vsEmQVuJdxu9qyfYwar9D3V4 QRSYd0Z9awzjosjRr9QMH1/aLlvrderrXMSTlUq/aA51zxwKjDNW+HYXhL0tJE8Hrr2o sI4nK6V0244uEFCQ5sSIIJaHSK3LLvv+doPlg= 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:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=HgBatcwnhiGsqRrHnjeSNZDx7nuc9ISt28y2ilKo8vA=; b=jH0vt1Mb29HDD0EW/z17qcYIehJlSvI/xjHZFAvAQVcGIfZDAi6ANbTJl357pxluOv tlviDbS/UrZ6YyGSQ5GM1m3l3kBxHIKkQk09SO7+z9/bqC25fSaoJ51Chqf7ykjRpLKo PRyF/dKdZsVpI1edIOK/leT/4J/n5dbT8/xY/jLWxNy2Wz19GOWSkxBme7O3/N/sUxRo FN5eikZrFGL3f3yCMU6EjvAwjMmfNdF2VeXX2Jgi2MW03cMVwp+QQNqSnDjra+4stKDd /RYxdFK9NFiY9DV1p0KD86Za/lc9Ohjc1Q8sKCfTvh10TPekCpOqIVw1FOaoDF2u4nma rbig== X-Gm-Message-State: APjAAAUSokp7emRjYD4a8Wcoq92HZzV1Q6VJvEMZf0x4l2wS7wpE8x5t SOyW9tMSz1bpvg9EuUnrJYDhxGqi X-Google-Smtp-Source: APXvYqydR4zFvQ+s7opA17N9rgKQwIdFMBGfWbpMGD+/JnKCcZWWNGopHlB0hOGdazLBkXRBoyEHcw== X-Received: by 2002:a17:90a:2562:: with SMTP id j89mr24725192pje.123.1560757223891; Mon, 17 Jun 2019 00:40:23 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:90a:9204:: with SMTP id m4ls929564pjo.0.canary-gmail; Mon, 17 Jun 2019 00:40:23 -0700 (PDT) X-Received: by 2002:a17:90a:2706:: with SMTP id o6mr25395515pje.62.1560757223619; Mon, 17 Jun 2019 00:40:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560757223; cv=none; d=google.com; s=arc-20160816; b=babOoOEFwy6Z6WYue2ybrCAapRzFGFwaWRLzxq/J0ysyKqk3u8rN8RCsV8YcRNa/XC U7rfsWI1foUu/U6Ufevj7vOY6dsa1YnA9ElDlnaEF9BVcl/w6WYfCm8jM1A8u7VOq9Ng uX2nk9qSYqoDW3It6ZI8RKtcP+yF6sB7blgMIx7dET3k18mYIFzqR+awhuYIOIz7++V+ zP+TS/IOg0wI140Tw0LBHSzqhs0nPXTv0EYF9LnDzGjcTfxYkgx9u73NDOqRwIv0e4Af MToRLY/ImFoMw6RcLmaJ+qdUyTnnBW7qMazSvHD7NVlDGguk4FQz42Ts0X2gun4MoLeV 8oCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=t8d2qnZ3kav7gpkrZS6dlrZ+F/FMvW3L+8hK+xgO7jQ=; b=sZ7E+2vkf02OFXV1XtF66dkYpmLsHtsQfH2GsS2Z7R3UuRto1S+VBnULd94biBBAxm fIlu7YbpcFlytUoGkvYv9fvD4uJKvhKDf41U7uEuYFEuIt82UpMh4q/BTlwdX0bHOVZP GVQ22i9+0KrFKngEmLyo4XJYw7qlALtugpcDHSE5+QPBA0aaLJz5KPu07kXUMBthmgpU iGjm7KCBrtq57dZtFJ5YM1RYY5lAW9N8GX+titvKkWvi98sPR7xvupKcjaGdfLAy2VRh qfpqQwLhofyXeskhxSKMTJ8rZs2N5CS0JTxQ+ZoELB1Gk3W9QG0/i5TPyxDHILuP5tYH OpFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=LUX5HCfC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id s20sor12627618pji.27.2019.06.17.00.40.23 for (Google Transport Security); Mon, 17 Jun 2019 00:40:23 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; X-Received: by 2002:a17:90a:ab0b:: with SMTP id m11mr3432830pjq.73.1560757223299; Mon, 17 Jun 2019 00:40:23 -0700 (PDT) Received: from localhost.localdomain ([49.206.203.245]) by smtp.gmail.com with ESMTPSA id m41sm15205998pje.18.2019.06.17.00.40.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Jun 2019 00:40:22 -0700 (PDT) From: Jagan Teki To: Simon Glass , Philipp Tomsich , Kever Yang , YouMin Chen , u-boot@lists.denx.de Cc: Manivannan Sadhasivam , gajjar04akash@gmail.com, linux-rockchip@lists.infradead.org, linux-amarula@amarulasolutions.com, Jagan Teki Subject: [PATCH v2 73/99] ram: sdram: Configure lpddr4 tsel rd, wr based on IO settings Date: Mon, 17 Jun 2019 13:02:26 +0530 Message-Id: <20190617073252.27810-74-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190617073252.27810-1-jagan@amarulasolutions.com> References: <20190617073252.27810-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=LUX5HCfC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Now we have IO settings available for all supported sdram frequencies, so retrieve these IO settings and make used for LPDDR4 ds odt configuration. Signed-off-by: Jagan Teki Signed-off-by: YouMin Chen --- drivers/ram/rockchip/sdram_rk3399.c | 42 ++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c index 4de5a208f5..22c1a66185 100644 --- a/drivers/ram/rockchip/sdram_rk3399.c +++ b/drivers/ram/rockchip/sdram_rk3399.c @@ -184,6 +184,33 @@ struct io_setting { }, }; +/** + * phy = 0, PHY boot freq + * phy = 1, PHY index 0 + * phy = 2, PHY index 1 + */ +static struct io_setting * +lpddr4_get_io_settings(const struct rk3399_sdram_params *params, u32 mr5) +{ + struct io_setting *io = NULL; + u32 n; + + for (n = 0; n < ARRAY_SIZE(lpddr4_io_setting); n++) { + io = &lpddr4_io_setting[n]; + + if (io->mr5 != 0) { + if (io->mhz >= params->base.ddr_freq && + io->mr5 == mr5) + break; + } else { + if (io->mhz >= params->base.ddr_freq) + break; + } + } + + return io; +} + static void *get_ddrc0_con(struct dram_info *dram, u8 channel) { return (channel == 0) ? &dram->grf->ddrc0_con0 : &dram->grf->ddrc0_con1; @@ -524,7 +551,7 @@ static int phy_io_config(const struct chan_info *chan, } static void set_ds_odt(const struct chan_info *chan, - const struct rk3399_sdram_params *params) + const struct rk3399_sdram_params *params, u32 mr5) { u32 *denali_phy = chan->publ->denali_phy; @@ -533,19 +560,22 @@ static void set_ds_odt(const struct chan_info *chan, u32 tsel_idle_select_n, tsel_rd_select_n; u32 tsel_wr_select_dq_p, tsel_wr_select_ca_p; u32 tsel_wr_select_dq_n, tsel_wr_select_ca_n; + struct io_setting *io = NULL; u32 reg_value; if (params->base.dramtype == LPDDR4) { + io = lpddr4_get_io_settings(params, mr5); + tsel_rd_select_p = PHY_DRV_ODT_HI_Z; - tsel_rd_select_n = PHY_DRV_ODT_240; + tsel_rd_select_n = io->rd_odt; tsel_idle_select_p = PHY_DRV_ODT_HI_Z; tsel_idle_select_n = PHY_DRV_ODT_240; - tsel_wr_select_dq_p = PHY_DRV_ODT_40; + tsel_wr_select_dq_p = io->wr_dq_drv; tsel_wr_select_dq_n = PHY_DRV_ODT_40; - tsel_wr_select_ca_p = PHY_DRV_ODT_40; + tsel_wr_select_ca_p = io->wr_ca_drv; tsel_wr_select_ca_n = PHY_DRV_ODT_40; } else if (params->base.dramtype == LPDDR3) { tsel_rd_select_p = PHY_DRV_ODT_240; @@ -723,7 +753,7 @@ static void pctl_start(struct dram_info *dram, u8 channel) } static int pctl_cfg(struct dram_info *dram, const struct chan_info *chan, - u32 channel, const struct rk3399_sdram_params *params) + u32 channel, struct rk3399_sdram_params *params) { u32 *denali_ctl = chan->pctl->denali_ctl; u32 *denali_pi = chan->pi->denali_pi; @@ -805,7 +835,7 @@ static int pctl_cfg(struct dram_info *dram, const struct chan_info *chan, copy_to_reg(&denali_phy[512], ¶ms_phy[512], (549 - 512 + 1) * 4); copy_to_reg(&denali_phy[640], ¶ms_phy[640], (677 - 640 + 1) * 4); copy_to_reg(&denali_phy[768], ¶ms_phy[768], (805 - 768 + 1) * 4); - set_ds_odt(chan, params); + set_ds_odt(chan, params, 0); /* * phy_dqs_tsel_wr_timing_X 8bits DENALI_PHY_84/212/340/468 offset_8