From patchwork Mon Jun 17 07:32:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 646 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 3CEB43F353 for ; Mon, 17 Jun 2019 09:40:32 +0200 (CEST) Received: by mail-pf1-f200.google.com with SMTP id c17sf6544280pfb.21 for ; Mon, 17 Jun 2019 00:40:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1560757231; cv=pass; d=google.com; s=arc-20160816; b=SN2pTM+PeRRAy2bLp4tIDawVpxdNxT6fJPX4iWiqgpOjmOTbQq3Rk/AwD9KFdaAAR/ 5NGDlVXGorgZdZlzpDigg7veHZk0069ce5Qp+r0NnppPK8dVn+IjG1NMPd0jhyok2NnX 7oxeb87OViyGtcP0fbNSmLC9jk2Ajs9WFGi9oi5zHTOC8J/zXwlS0NVXwW5nbKl2y0Fz KRfSNy/35NUR3BZKwhFAtekRvFUyiocJZmg73Rjnwg3bOI9yTVN3dMn3SRI3vsK31T4m lmanD5NhxlCEi4JbiGtQH1C4P6Q8mvcNpUYcYHDqjwiYCq5CwCOjcUHtU5VUBNvocYkI Q+6A== 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=65DIaXiRIEsdK1rZncSJt+SM4Ixy6t9v1KKsKBCZVPc=; b=OmWcveLbqkooxkVLDfthpnKyVSYodLQCvyd+LcM3hkMcjclgYUqx7uG5/aWD9GRfWD 5Pyxdz5kgmXT4cGAfWxJ/HpIkK0Waug7y2shFH6HeJBlNcJp3NwF0VaRW5mGvNqjpEPy ghKsHMQumTC5FETxAWROAeVlDfvOmYnvrM6yAqB3Po/jkGVSdGCH0V15A8E0TR0S4Y1L O4JsXq3ILdF3XjTrK2e16hp+Q2xIZFnBr0tuY4hFmCMunuWAcySoJQH/p+1aVjTPA81s gExEzHXEknklnxEUpLPtbyRtutewH+GwhhDltbVyjoSR4+4bRtAEuUnXmR93VxG3bx3w UbUA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="JNG/C+BR"; 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=65DIaXiRIEsdK1rZncSJt+SM4Ixy6t9v1KKsKBCZVPc=; b=QN811Zv7XH61RLppidRjfexXFIshprQrsMVk9cZEiBe3UDirsT552MkVZMtRtgXwr7 jW4XSWEiaoaqD2wMZH0kCARt/hIOx5Wr4OiUA/jXnKNuAWiyf5YHTraULBqqfcWrDl7f 7CkojmNwAzUtMTpYIUpv2GaBxV2vSZjZ7zQD8= 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=65DIaXiRIEsdK1rZncSJt+SM4Ixy6t9v1KKsKBCZVPc=; b=H6jcRseGoatdbVmRFWbTcOOmbjCiIy++0vxefCiQMkzBhTIqgSKmaFjEeio+pqK9Hy bBCxRA8czQBK2LeyPhPQs/RnEd9gGfkT6SX/Sz9nz+QexrftR6ipe44vBcmqUXkApRb6 +NTN06argJADd2ESOAYHxOyZG74boUwy2i3DpY8y78pVcqr2INbnMm6zaia4/r/C2D3b NLYIkUxk72mi2nMT+aVX0l4WcTuBf+/vF0xhm1Pxx8/LcONTfXdVACrUHa1BKkGn+rWO dfbY4J98xaHXJltogBG5kLPKTjmKmXEsHYsiDNyDocIlgyqk2DT5tKADnP7xl+6s3+5B K/ng== X-Gm-Message-State: APjAAAV+rq+9wgzYTcu8Xdmf9FLvalHvVW8ljGPFySMPkKEsTWo9cpT9 OsxmFxUt7WhuGNA/cc/8PjXLLHLL X-Google-Smtp-Source: APXvYqxaaKRrsjGH3Ri3eEH4Sm8kGQrpB7g0wIQYYW2lDVRzLTme7hW7UxLXArV8DaVE3nGvfNSZmQ== X-Received: by 2002:a62:6454:: with SMTP id y81mr72290917pfb.13.1560757231091; Mon, 17 Jun 2019 00:40:31 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:243:: with SMTP id 64ls1174954pgc.15.gmail; Mon, 17 Jun 2019 00:40:30 -0700 (PDT) X-Received: by 2002:a63:2159:: with SMTP id s25mr46042427pgm.234.1560757230711; Mon, 17 Jun 2019 00:40:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560757230; cv=none; d=google.com; s=arc-20160816; b=z+hSsSnd9/tUF34u4y6QzDu/M7TExEpSvgGULVYZAN1bW84tftNkLkXX6T/z3FxelQ salhjHNjbeA/EajgsIOtdXa5u1GcVQjEsayE5jvBO8ZP8qfAJcWNq7iXOXiw8uql5Gda qn74IhmW+dkiPQgwjRcoLnYvA79MNPoZ/SnE6PsWWiburH0nmOQvTBasuUt/07ti/Pil N9+9aCtf59HCTGCXJXVHwupDI2JDrAcJ2IWMONMyhFelK1ohD4r8UO0f3gOO8MJ9qBKb nTwjH+NNKAMUSBEPay54TN1sanKMo5hc/VFX/G3eFijUXHk66MI4Ab/LznF4Guh7coWP NuVg== 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=TpHBaKP7WpkPWFSnwNmYoxhAPAKxxHz6UqoDZNJID9Y=; b=FkIl8XTgOit3A2T9V+zUtWd3P+P/GLTYqJ3PXP0Iog8qY1tQZezLxjNpgSq3Bp3Srx euv/2uTbHM6R2jpEpRBFWg6Mf8YFNtL16Ct9GSXkJeWBb+YfnwC/PTPhM3xWo6Q3KbrO pBJqQfcPRj90N5UBRgNx0aY0rqajPlg7pfzui8OMajWT4QUoU0xdgGm91U7+3Mb0ayjD qGoNmVOOJEDup3EPBxFPwuJQy03RJRLJ/ntyoH2ety3ClfvuLR1vV2kUzrM+aK5lJwI6 5eMxMc8IcGxuZErw/gCcoCfSA4Ybc2bbgjU0NlJ4y+uY0jDefd18ZfEDRNBETO4rnaeU BhCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="JNG/C+BR"; 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 w5sor10243188pgs.18.2019.06.17.00.40.30 for (Google Transport Security); Mon, 17 Jun 2019 00:40:30 -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:a63:2159:: with SMTP id s25mr46042411pgm.234.1560757230356; Mon, 17 Jun 2019 00:40:30 -0700 (PDT) Received: from localhost.localdomain ([49.206.203.245]) by smtp.gmail.com with ESMTPSA id m41sm15205998pje.18.2019.06.17.00.40.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Jun 2019 00:40:29 -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 75/99] ram: rk3399: Configure soc odt support Date: Mon, 17 Jun 2019 13:02:28 +0530 Message-Id: <20190617073252.27810-76-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="JNG/C+BR"; 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: , CTL 145, 146, 159, 160 registers are used to configure soc odt on rk3399. These soc odt values are updated from CS0_MR22_VAL and CS1_MR22_VAL and for lpddr4 these values ORed with tsel_rd_select_n. Signed-off-by: Jagan Teki Signed-off-by: YouMin Chen --- drivers/ram/rockchip/sdram_rk3399.c | 49 ++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c index caf8180018..5f118fc0c6 100644 --- a/drivers/ram/rockchip/sdram_rk3399.c +++ b/drivers/ram/rockchip/sdram_rk3399.c @@ -40,6 +40,8 @@ #define PHY_SLEWP_EN 0x1 #define PHY_SLEWN_EN 0x1 #define PHY_RX_CM_INPUT 0x1 +#define CS0_MR22_VAL 0 +#define CS1_MR22_VAL 3 #define CRU_SFTRST_DDR_CTRL(ch, n) ((0x1 << (8 + 16 + (ch) * 4)) | \ ((n) << (8 + (ch) * 4))) @@ -554,7 +556,7 @@ static void set_ds_odt(const struct chan_info *chan, const struct rk3399_sdram_params *params, u32 mr5) { u32 *denali_phy = chan->publ->denali_phy; - + u32 *denali_ctl = chan->pctl->denali_ctl; u32 tsel_idle_en, tsel_wr_en, tsel_rd_en; u32 tsel_idle_select_p, tsel_rd_select_p; u32 tsel_idle_select_n, tsel_rd_select_n; @@ -562,6 +564,7 @@ static void set_ds_odt(const struct chan_info *chan, u32 tsel_wr_select_dq_n, tsel_wr_select_ca_n; u32 tsel_ckcs_select_p, tsel_ckcs_select_n; struct io_setting *io = NULL; + u32 soc_odt = 0; u32 reg_value; if (params->base.dramtype == LPDDR4) { @@ -581,6 +584,35 @@ static void set_ds_odt(const struct chan_info *chan, tsel_ckcs_select_p = io->wr_ckcs_drv; tsel_ckcs_select_n = PHY_DRV_ODT_34_3; + switch (tsel_rd_select_n) { + case PHY_DRV_ODT_240: + soc_odt = 1; + break; + case PHY_DRV_ODT_120: + soc_odt = 2; + break; + case PHY_DRV_ODT_80: + soc_odt = 3; + break; + case PHY_DRV_ODT_60: + soc_odt = 4; + break; + case PHY_DRV_ODT_48: + soc_odt = 5; + break; + case PHY_DRV_ODT_40: + soc_odt = 6; + break; + case PHY_DRV_ODT_34_3: + soc_odt = 6; + printf("%s: Unable to support LPDDR4 MR22 Soc ODT\n", + __func__); + break; + case PHY_DRV_ODT_HI_Z: + default: + soc_odt = 0; + break; + } } else if (params->base.dramtype == LPDDR3) { tsel_rd_select_p = PHY_DRV_ODT_240; tsel_rd_select_n = PHY_DRV_ODT_HI_Z; @@ -621,6 +653,21 @@ static void set_ds_odt(const struct chan_info *chan, tsel_wr_en = 0; tsel_idle_en = 0; + /* F0_0 */ + clrsetbits_le32(&denali_ctl[145], 0xFF << 16, + (soc_odt | (CS0_MR22_VAL << 3)) << 16); + /* F2_0, F1_0 */ + clrsetbits_le32(&denali_ctl[146], 0xFF00FF, + ((soc_odt | (CS0_MR22_VAL << 3)) << 16) | + (soc_odt | (CS0_MR22_VAL << 3))); + /* F0_1 */ + clrsetbits_le32(&denali_ctl[159], 0xFF << 16, + (soc_odt | (CS1_MR22_VAL << 3)) << 16); + /* F2_1, F1_1 */ + clrsetbits_le32(&denali_ctl[160], 0xFF00FF, + ((soc_odt | (CS1_MR22_VAL << 3)) << 16) | + (soc_odt | (CS1_MR22_VAL << 3))); + /* * phy_dq_tsel_select_X 24bits DENALI_PHY_6/134/262/390 offset_0 * sets termination values for read/idle cycles and drive strength