Skip to content

Commit

Permalink
arch/risc-v/src/mpfs: Sync some of the libero config macros with HSS …
Browse files Browse the repository at this point in the history
…reference code

Signed-off-by: Jukka Laitinen <[email protected]>
Co-authored-by: Eero Nurkkala <[email protected]>
  • Loading branch information
jlaitine and eenurkka committed Aug 29, 2023
1 parent 9d3b9fa commit c356bfb
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
6 changes: 4 additions & 2 deletions arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@
#define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DDR_PHY_OFFSET 0x000
#define MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE_OFFSET 0x004
#define MPFS_CFG_DDR_SGMII_PHY_STARTUP_OFFSET 0x008
#define MPFS_CFG_DDR_SGMII_PHY_SPARE_0_OFFSET 0x00c
#define MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0_OFFSET 0x00c
#define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_MAIN_PLL_OFFSET 0x080
#define MPFS_CFG_DDR_SGMII_PHY_PLL_CTRL_MAIN_OFFSET 0x084
#define MPFS_CFG_DDR_SGMII_PHY_PLL_REF_FB_MAIN_OFFSET 0x088
Expand Down Expand Up @@ -566,18 +566,19 @@

/* SGMII register definitions */

#define MPFS_CFG_DDR_SGMII_PHY_SPARE0 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SPARE0_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_DRIVER (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_DRIVER_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_ODT (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_ODT_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_IO (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_IO_OFFSET)

#define MPFS_CFG_DDR_SGMII_PHY_TRAINING_START (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_TRAINING_START_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_DPC_BITS (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_DPC_BITS_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC95 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC95_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC96 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC96_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC97 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC97_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC98 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC98_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_SPARE_0 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SPARE_0_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_SPIO253 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SPIO253_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT_OFFSET)
Expand Down Expand Up @@ -605,6 +606,7 @@
#define MPFS_CFG_DDR_SGMII_PHY_RPC166 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC166_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC168 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC168_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC220 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC220_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC226 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC226_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC235 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC235_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC236 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC236_OFFSET)
#define MPFS_CFG_DDR_SGMII_PHY_RPC237 (MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_RPC237_OFFSET)
Expand Down
22 changes: 16 additions & 6 deletions arch/risc-v/src/mpfs/mpfs_ddr.c
Original file line number Diff line number Diff line change
Expand Up @@ -373,12 +373,12 @@ static void mpfs_ddr_off_mode(void)
putreg32(0x07, MPFS_CFG_DDR_SGMII_PHY_RPC97); /* dq */
putreg32(0x07, MPFS_CFG_DDR_SGMII_PHY_RPC98); /* dqs */

/* SPARE_0:
/* UNUSED_SPACE0:
* bits 15:14 connect to ibufmx DQ/DQS/DM
* bits 13:12 connect to ibufmx CA/CK
*/

putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);

/* REG_POWERDOWN_B on PLL turn-off, in case was turned on */

Expand Down Expand Up @@ -530,21 +530,21 @@ static void mpfs_set_ddr_rpc_regs(struct mpfs_ddr_priv_s *priv)
}

putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);

#elif defined(CONFIG_MPFS_DDR_TYPE_DDR4)

putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT);
putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT);
putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);

#elif defined(CONFIG_MPFS_DDR_TYPE_LPDDR3)

putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT);
putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT);
putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);

#elif defined(CONFIG_MPFS_DDR_TYPE_LPDDR4)

Expand Down Expand Up @@ -578,8 +578,18 @@ static void mpfs_set_ddr_rpc_regs(struct mpfs_ddr_priv_s *priv)
putreg32(1, MPFS_CFG_DDR_SGMII_PHY_SPIO253);
}

/* Write ibufmd_dqs. Value is a constant coped from HSS refenrece code */

putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);

/* Write TXDLY offset data. 0x14 is a constant copied from HSS reference code, it is
* unknown whether this needs to be adjustable at the moment
*/

putreg32(0x14, MPFS_CFG_DDR_SGMII_PHY_RPC226);

putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_SPARE0);

#endif

Expand Down

0 comments on commit c356bfb

Please sign in to comment.