uboot/arch/arm/mach-uniphier/dram/ddrphy-regs.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * UniPhier DDR PHY registers
   4 *
   5 * Copyright (C) 2014      Panasonic Corporation
   6 * Copyright (C) 2015-2016 Socionext Inc.
   7 */
   8
   9#ifndef ARCH_DDRPHY_REGS_H
  10#define ARCH_DDRPHY_REGS_H
  11
  12#include <linux/bitops.h>
  13#define PHY_REG_SHIFT           2
  14
  15#define PHY_RIDR                (0x000 << PHY_REG_SHIFT)
  16#define PHY_PIR                 (0x001 << PHY_REG_SHIFT)
  17#define   PHY_PIR_INIT                  BIT(0)  /* Initialization Trigger */
  18#define   PHY_PIR_ZCAL                  BIT(1)  /* Impedance Calibration */
  19#define   PHY_PIR_PLLINIT               BIT(4)  /* PLL Initialization */
  20#define   PHY_PIR_DCAL                  BIT(5)  /* DDL Calibration */
  21#define   PHY_PIR_PHYRST                BIT(6)  /* PHY Reset */
  22#define   PHY_PIR_DRAMRST               BIT(7)  /* DRAM Reset */
  23#define   PHY_PIR_DRAMINIT              BIT(8)  /* DRAM Initialization */
  24#define   PHY_PIR_WL                    BIT(9)  /* Write Leveling */
  25#define   PHY_PIR_QSGATE                BIT(10) /* Read DQS Gate Training */
  26#define   PHY_PIR_WLADJ                 BIT(11) /* Write Leveling Adjust */
  27#define   PHY_PIR_RDDSKW                BIT(12) /* Read Data Bit Deskew */
  28#define   PHY_PIR_WRDSKW                BIT(13) /* Write Data Bit Deskew */
  29#define   PHY_PIR_RDEYE                 BIT(14) /* Read Data Eye Training */
  30#define   PHY_PIR_WREYE                 BIT(15) /* Write Data Eye Training */
  31#define   PHY_PIR_LOCKBYP               BIT(28) /* PLL Lock Bypass */
  32#define   PHY_PIR_DCALBYP               BIT(29) /* DDL Calibration Bypass */
  33#define   PHY_PIR_ZCALBYP               BIT(30) /* Impedance Calib Bypass */
  34#define   PHY_PIR_INITBYP               BIT(31) /* Initialization Bypass */
  35#define PHY_PGCR0               (0x002 << PHY_REG_SHIFT)
  36#define PHY_PGCR1               (0x003 << PHY_REG_SHIFT)
  37#define   PHY_PGCR1_INHVT               BIT(26) /* VT Calculation Inhibit */
  38#define PHY_PGSR0               (0x004 << PHY_REG_SHIFT)
  39#define   PHY_PGSR0_IDONE               BIT(0)  /* Initialization Done */
  40#define   PHY_PGSR0_PLDONE              BIT(1)  /* PLL Lock Done */
  41#define   PHY_PGSR0_DCDONE              BIT(2)  /* DDL Calibration Done */
  42#define   PHY_PGSR0_ZCDONE              BIT(3)  /* Impedance Calibration Done */
  43#define   PHY_PGSR0_DIDONE              BIT(4)  /* DRAM Initialization Done */
  44#define   PHY_PGSR0_WLDONE              BIT(5)  /* Write Leveling Done */
  45#define   PHY_PGSR0_QSGDONE             BIT(6)  /* DQS Gate Training Done */
  46#define   PHY_PGSR0_WLADONE             BIT(7)  /* Write Leveling Adjust Done */
  47#define   PHY_PGSR0_RDDONE              BIT(8)  /* Read Bit Deskew Done */
  48#define   PHY_PGSR0_WDDONE              BIT(9)  /* Write Bit Deskew Done */
  49#define   PHY_PGSR0_REDONE              BIT(10) /* Read Eye Training Done */
  50#define   PHY_PGSR0_WEDONE              BIT(11) /* Write Eye Training Done */
  51#define   PHY_PGSR0_DIERR               BIT(20) /* DRAM Initialization Error */
  52#define   PHY_PGSR0_WLERR               BIT(21) /* Write Leveling Error */
  53#define   PHY_PGSR0_QSGERR              BIT(22) /* DQS Gate Training Error */
  54#define   PHY_PGSR0_WLAERR              BIT(23) /* Write Leveling Adj Error */
  55#define   PHY_PGSR0_RDERR               BIT(24) /* Read Bit Deskew Error */
  56#define   PHY_PGSR0_WDERR               BIT(25) /* Write Bit Deskew Error */
  57#define   PHY_PGSR0_REERR               BIT(26) /* Read Eye Training Error */
  58#define   PHY_PGSR0_WEERR               BIT(27) /* Write Eye Training Error */
  59#define   PHY_PGSR0_DTERR_SHIFT         28      /* Data Training Error Status*/
  60#define   PHY_PGSR0_DTERR               (7 << (PHY_PGSR0_DTERR_SHIFT))
  61#define PHY_PGSR1               (0x005 << PHY_REG_SHIFT)
  62#define   PHY_PGSR1_VTSTOP              BIT(30) /* VT Stop (v3-) */
  63#define PHY_PLLCR               (0x006 << PHY_REG_SHIFT)
  64#define PHY_PTR0                (0x007 << PHY_REG_SHIFT)
  65#define PHY_PTR1                (0x008 << PHY_REG_SHIFT)
  66#define PHY_PTR2                (0x009 << PHY_REG_SHIFT)
  67#define PHY_PTR3                (0x00A << PHY_REG_SHIFT)
  68#define PHY_PTR4                (0x00B << PHY_REG_SHIFT)
  69#define PHY_ACMDLR              (0x00C << PHY_REG_SHIFT)
  70#define PHY_ACBDLR              (0x00D << PHY_REG_SHIFT)
  71#define PHY_ACIOCR              (0x00E << PHY_REG_SHIFT)
  72#define PHY_DXCCR               (0x00F << PHY_REG_SHIFT)
  73#define   PHY_DXCCR_DQSRES_OPEN         (0 << 5)
  74#define   PHY_DXCCR_DQSRES_688_OHM      (1 << 5)
  75#define   PHY_DXCCR_DQSRES_611_OHM      (2 << 5)
  76#define   PHY_DXCCR_DQSRES_550_OHM      (3 << 5)
  77#define   PHY_DXCCR_DQSRES_500_OHM      (4 << 5)
  78#define   PHY_DXCCR_DQSRES_458_OHM      (5 << 5)
  79#define   PHY_DXCCR_DQSRES_393_OHM      (6 << 5)
  80#define   PHY_DXCCR_DQSRES_344_OHM      (7 << 5)
  81#define   PHY_DXCCR_DQSNRES_OPEN        (0 << 9)
  82#define   PHY_DXCCR_DQSNRES_688_OHM     (1 << 9)
  83#define   PHY_DXCCR_DQSNRES_611_OHM     (2 << 9)
  84#define   PHY_DXCCR_DQSNRES_550_OHM     (3 << 9)
  85#define   PHY_DXCCR_DQSNRES_500_OHM     (4 << 9)
  86#define   PHY_DXCCR_DQSNRES_458_OHM     (5 << 9)
  87#define   PHY_DXCCR_DQSNRES_393_OHM     (6 << 9)
  88#define   PHY_DXCCR_DQSNRES_344_OHM     (7 << 9)
  89#define PHY_DSGCR               (0x010 << PHY_REG_SHIFT)
  90#define PHY_DCR                 (0x011 << PHY_REG_SHIFT)
  91#define PHY_DTPR0               (0x012 << PHY_REG_SHIFT)
  92#define PHY_DTPR1               (0x013 << PHY_REG_SHIFT)
  93#define PHY_DTPR2               (0x014 << PHY_REG_SHIFT)
  94#define PHY_MR0                 (0x015 << PHY_REG_SHIFT)
  95#define PHY_MR1                 (0x016 << PHY_REG_SHIFT)
  96#define PHY_MR2                 (0x017 << PHY_REG_SHIFT)
  97#define PHY_MR3                 (0x018 << PHY_REG_SHIFT)
  98#define PHY_ODTCR               (0x019 << PHY_REG_SHIFT)
  99#define PHY_DTCR                (0x01A << PHY_REG_SHIFT)
 100#define   PHY_DTCR_DTRANK_SHIFT         4       /* Data Training Rank */
 101#define   PHY_DTCR_DTRANK_MASK          (0x3 << (PHY_DTCR_DTRANK_SHIFT))
 102#define   PHY_DTCR_DTMPR                BIT(6)  /* Data Training using MPR */
 103#define   PHY_DTCR_RANKEN_SHIFT         24      /* Rank Enable */
 104#define   PHY_DTCR_RANKEN_MASK          (0xf << (PHY_DTCR_RANKEN_SHIFT))
 105#define PHY_DTAR0               (0x01B << PHY_REG_SHIFT)
 106#define PHY_DTAR1               (0x01C << PHY_REG_SHIFT)
 107#define PHY_DTAR2               (0x01D << PHY_REG_SHIFT)
 108#define PHY_DTAR3               (0x01E << PHY_REG_SHIFT)
 109#define PHY_DTDR0               (0x01F << PHY_REG_SHIFT)
 110#define PHY_DTDR1               (0x020 << PHY_REG_SHIFT)
 111#define PHY_DTEDR0              (0x021 << PHY_REG_SHIFT)
 112#define PHY_DTEDR1              (0x022 << PHY_REG_SHIFT)
 113#define PHY_PGCR2               (0x023 << PHY_REG_SHIFT)
 114#define PHY_GPR0                (0x05E << PHY_REG_SHIFT)
 115#define PHY_GPR1                (0x05F << PHY_REG_SHIFT)
 116/* ZQ */
 117#define PHY_ZQ_BASE             (0x060 << PHY_REG_SHIFT)
 118#define PHY_ZQ_STRIDE           (0x004 << PHY_REG_SHIFT)
 119#define PHY_ZQ_CR0              (0x000 << PHY_REG_SHIFT)
 120#define PHY_ZQ_CR1              (0x001 << PHY_REG_SHIFT)
 121#define PHY_ZQ_SR0              (0x002 << PHY_REG_SHIFT)
 122#define PHY_ZQ_SR1              (0x003 << PHY_REG_SHIFT)
 123/* DATX8 */
 124#define PHY_DX_BASE             (0x070 << PHY_REG_SHIFT)
 125#define PHY_DX_STRIDE           (0x010 << PHY_REG_SHIFT)
 126#define PHY_DX_GCR              (0x000 << PHY_REG_SHIFT)
 127#define   PHY_DX_GCR_WLRKEN_SHIFT       26              /* Write Level Rank Enable */
 128#define   PHY_DX_GCR_WLRKEN_MASK        (0xf << (PHY_DX_GCR_WLRKEN_SHIFT))
 129#define PHY_DX_GSR0             (0x001 << PHY_REG_SHIFT)
 130#define PHY_DX_GSR1             (0x002 << PHY_REG_SHIFT)
 131#define PHY_DX_BDLR0            (0x003 << PHY_REG_SHIFT)
 132#define PHY_DX_BDLR1            (0x004 << PHY_REG_SHIFT)
 133#define PHY_DX_BDLR2            (0x005 << PHY_REG_SHIFT)
 134#define PHY_DX_BDLR3            (0x006 << PHY_REG_SHIFT)
 135#define PHY_DX_BDLR4            (0x007 << PHY_REG_SHIFT)
 136#define PHY_DX_LCDLR0           (0x008 << PHY_REG_SHIFT)
 137#define PHY_DX_LCDLR1           (0x009 << PHY_REG_SHIFT)
 138#define PHY_DX_LCDLR2           (0x00A << PHY_REG_SHIFT)
 139#define PHY_DX_MDLR             (0x00B << PHY_REG_SHIFT)
 140#define PHY_DX_GTR              (0x00C << PHY_REG_SHIFT)
 141#define PHY_DX_GSR2             (0x00D << PHY_REG_SHIFT)
 142
 143#endif /* ARCH_DDRPHY_REGS_H */
 144