/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * (C) Copyright 2017 Rockchip Electronics Co., Ltd
 */
#ifndef _ASM_ARCH_SDRAM_RK322X_H
#define _ASM_ARCH_SDRAM_RK322X_H

#include <common.h>

struct rk322x_sdram_channel {
	/*
	 * bit width in address, eg:
	 * 8 banks using 3 bit to address,
	 * 2 cs using 1 bit to address.
	 */
	u8 rank;
	u8 col;
	u8 bk;
	u8 bw;
	u8 dbw;
	u8 row_3_4;
	u8 cs0_row;
	u8 cs1_row;
#if CONFIG_IS_ENABLED(OF_PLATDATA)
	/*
	 * For of-platdata, which would otherwise convert this into two
	 * byte-swapped integers. With a size of 9 bytes, this struct will
	 * appear in of-platdata as a byte array.
	 *
	 * If OF_PLATDATA enabled, need to add a dummy byte in dts.(i.e 0xff)
	 */
	u8 dummy;
#endif
};

struct rk322x_ddr_pctl {
	u32 scfg;
	u32 sctl;
	u32 stat;
	u32 intrstat;
	u32 reserved0[(0x40 - 0x10) / 4];
	u32 mcmd;
	u32 powctl;
	u32 powstat;
	u32 cmdtstat;
	u32 cmdtstaten;
	u32 reserved1[(0x60 - 0x54) / 4];
	u32 mrrcfg0;
	u32 mrrstat0;
	u32 mrrstat1;
	u32 reserved2[(0x7c - 0x6c) / 4];

	u32 mcfg1;
	u32 mcfg;
	u32 ppcfg;
	u32 mstat;
	u32 lpddr2zqcfg;
	u32 reserved3;

	u32 dtupdes;
	u32 dtuna;
	u32 dtune;
	u32 dtuprd0;
	u32 dtuprd1;
	u32 dtuprd2;
	u32 dtuprd3;
	u32 dtuawdt;
	u32 reserved4[(0xc0 - 0xb4) / 4];

	u32 togcnt1u;
	u32 tinit;
	u32 trsth;
	u32 togcnt100n;
	u32 trefi;
	u32 tmrd;
	u32 trfc;
	u32 trp;
	u32 trtw;
	u32 tal;
	u32 tcl;
	u32 tcwl;
	u32 tras;
	u32 trc;
	u32 trcd;
	u32 trrd;
	u32 trtp;
	u32 twr;
	u32 twtr;
	u32 texsr;
	u32 txp;
	u32 txpdll;
	u32 tzqcs;
	u32 tzqcsi;
	u32 tdqs;
	u32 tcksre;
	u32 tcksrx;
	u32 tcke;
	u32 tmod;
	u32 trstl;
	u32 tzqcl;
	u32 tmrr;
	u32 tckesr;
	u32 tdpd;
	u32 tref_mem_ddr3;
	u32 reserved5[(0x180 - 0x14c) / 4];
	u32 ecccfg;
	u32 ecctst;
	u32 eccclr;
	u32 ecclog;
	u32 reserved6[(0x200 - 0x190) / 4];
	u32 dtuwactl;
	u32 dturactl;
	u32 dtucfg;
	u32 dtuectl;
	u32 dtuwd0;
	u32 dtuwd1;
	u32 dtuwd2;
	u32 dtuwd3;
	u32 dtuwdm;
	u32 dturd0;
	u32 dturd1;
	u32 dturd2;
	u32 dturd3;
	u32 dtulfsrwd;
	u32 dtulfsrrd;
	u32 dtueaf;
	/* dfi control registers */
	u32 dfitctrldelay;
	u32 dfiodtcfg;
	u32 dfiodtcfg1;
	u32 dfiodtrankmap;
	/* dfi write data registers */
	u32 dfitphywrdata;
	u32 dfitphywrlat;
	u32 reserved7[(0x260 - 0x258) / 4];
	u32 dfitrddataen;
	u32 dfitphyrdlat;
	u32 reserved8[(0x270 - 0x268) / 4];
	u32 dfitphyupdtype0;
	u32 dfitphyupdtype1;
	u32 dfitphyupdtype2;
	u32 dfitphyupdtype3;
	u32 dfitctrlupdmin;
	u32 dfitctrlupdmax;
	u32 dfitctrlupddly;
	u32 reserved9;
	u32 dfiupdcfg;
	u32 dfitrefmski;
	u32 dfitctrlupdi;
	u32 reserved10[(0x2ac - 0x29c) / 4];
	u32 dfitrcfg0;
	u32 dfitrstat0;
	u32 dfitrwrlvlen;
	u32 dfitrrdlvlen;
	u32 dfitrrdlvlgateen;
	u32 dfiststat0;
	u32 dfistcfg0;
	u32 dfistcfg1;
	u32 reserved11;
	u32 dfitdramclken;
	u32 dfitdramclkdis;
	u32 dfistcfg2;
	u32 dfistparclr;
	u32 dfistparlog;
	u32 reserved12[(0x2f0 - 0x2e4) / 4];

	u32 dfilpcfg0;
	u32 reserved13[(0x300 - 0x2f4) / 4];
	u32 dfitrwrlvlresp0;
	u32 dfitrwrlvlresp1;
	u32 dfitrwrlvlresp2;
	u32 dfitrrdlvlresp0;
	u32 dfitrrdlvlresp1;
	u32 dfitrrdlvlresp2;
	u32 dfitrwrlvldelay0;
	u32 dfitrwrlvldelay1;
	u32 dfitrwrlvldelay2;
	u32 dfitrrdlvldelay0;
	u32 dfitrrdlvldelay1;
	u32 dfitrrdlvldelay2;
	u32 dfitrrdlvlgatedelay0;
	u32 dfitrrdlvlgatedelay1;
	u32 dfitrrdlvlgatedelay2;
	u32 dfitrcmd;
	u32 reserved14[(0x3f8 - 0x340) / 4];
	u32 ipvr;
	u32 iptr;
};
check_member(rk322x_ddr_pctl, iptr, 0x03fc);

struct rk322x_ddr_phy {
	u32 ddrphy_reg[0x100];
};

struct rk322x_pctl_timing {
	u32 togcnt1u;
	u32 tinit;
	u32 trsth;
	u32 togcnt100n;
	u32 trefi;
	u32 tmrd;
	u32 trfc;
	u32 trp;
	u32 trtw;
	u32 tal;
	u32 tcl;
	u32 tcwl;
	u32 tras;
	u32 trc;
	u32 trcd;
	u32 trrd;
	u32 trtp;
	u32 twr;
	u32 twtr;
	u32 texsr;
	u32 txp;
	u32 txpdll;
	u32 tzqcs;
	u32 tzqcsi;
	u32 tdqs;
	u32 tcksre;
	u32 tcksrx;
	u32 tcke;
	u32 tmod;
	u32 trstl;
	u32 tzqcl;
	u32 tmrr;
	u32 tckesr;
	u32 tdpd;
	u32 trefi_mem_ddr3;
};

struct rk322x_phy_timing {
	u32 mr[4];
	u32 mr11;
	u32 bl;
	u32 cl_al;
};

struct rk322x_msch_timings {
	u32 ddrtiming;
	u32 ddrmode;
	u32 readlatency;
	u32 activate;
	u32 devtodev;
};

struct rk322x_service_sys {
	u32 id_coreid;
	u32 id_revisionid;
	u32 ddrconf;
	u32 ddrtiming;
	u32 ddrmode;
	u32 readlatency;
	u32 activate;
	u32 devtodev;
};

struct rk322x_base_params {
	struct rk322x_msch_timings noc_timing;
	u32 ddrconfig;
	u32 ddr_freq;
	u32 dramtype;
	/*
	 * unused for rk322x
	 */
	u32 stride;
	u32 odt;
};

/* PCT_DFISTCFG0 */
#define DFI_INIT_START			BIT(0)
#define DFI_DATA_BYTE_DISABLE_EN	BIT(2)

/* PCT_DFISTCFG1 */
#define DFI_DRAM_CLK_SR_EN		BIT(0)
#define DFI_DRAM_CLK_DPD_EN		BIT(1)

/* PCT_DFISTCFG2 */
#define DFI_PARITY_INTR_EN		BIT(0)
#define DFI_PARITY_EN			BIT(1)

/* PCT_DFILPCFG0 */
#define TLP_RESP_TIME_SHIFT		16
#define LP_SR_EN			BIT(8)
#define LP_PD_EN			BIT(0)

/* PCT_DFITCTRLDELAY */
#define TCTRL_DELAY_TIME_SHIFT		0

/* PCT_DFITPHYWRDATA */
#define TPHY_WRDATA_TIME_SHIFT		0

/* PCT_DFITPHYRDLAT */
#define TPHY_RDLAT_TIME_SHIFT		0

/* PCT_DFITDRAMCLKDIS */
#define TDRAM_CLK_DIS_TIME_SHIFT	0

/* PCT_DFITDRAMCLKEN */
#define TDRAM_CLK_EN_TIME_SHIFT		0

/* PCTL_DFIODTCFG */
#define RANK0_ODT_WRITE_SEL		BIT(3)
#define RANK1_ODT_WRITE_SEL		BIT(11)

/* PCTL_DFIODTCFG1 */
#define ODT_LEN_BL8_W_SHIFT		16

/* PUBL_ACDLLCR */
#define ACDLLCR_DLLDIS			BIT(31)
#define ACDLLCR_DLLSRST			BIT(30)

/* PUBL_DXDLLCR */
#define DXDLLCR_DLLDIS			BIT(31)
#define DXDLLCR_DLLSRST			BIT(30)

/* PUBL_DLLGCR */
#define DLLGCR_SBIAS			BIT(30)

/* PUBL_DXGCR */
#define DQSRTT				BIT(9)
#define DQRTT				BIT(10)

/* PIR */
#define PIR_INIT			BIT(0)
#define PIR_DLLSRST			BIT(1)
#define PIR_DLLLOCK			BIT(2)
#define PIR_ZCAL			BIT(3)
#define PIR_ITMSRST			BIT(4)
#define PIR_DRAMRST			BIT(5)
#define PIR_DRAMINIT			BIT(6)
#define PIR_QSTRN			BIT(7)
#define PIR_RVTRN			BIT(8)
#define PIR_ICPC			BIT(16)
#define PIR_DLLBYP			BIT(17)
#define PIR_CTLDINIT			BIT(18)
#define PIR_CLRSR			BIT(28)
#define PIR_LOCKBYP			BIT(29)
#define PIR_ZCALBYP			BIT(30)
#define PIR_INITBYP			BIT(31)

/* PGCR */
#define PGCR_DFTLMT_SHIFT		3
#define PGCR_DFTCMP_SHIFT		2
#define PGCR_DQSCFG_SHIFT		1
#define PGCR_ITMDMD_SHIFT		0

/* PGSR */
#define PGSR_IDONE			BIT(0)
#define PGSR_DLDONE			BIT(1)
#define PGSR_ZCDONE			BIT(2)
#define PGSR_DIDONE			BIT(3)
#define PGSR_DTDONE			BIT(4)
#define PGSR_DTERR			BIT(5)
#define PGSR_DTIERR			BIT(6)
#define PGSR_DFTERR			BIT(7)
#define PGSR_RVERR			BIT(8)
#define PGSR_RVEIRR			BIT(9)

/* PTR0 */
#define PRT_ITMSRST_SHIFT		18
#define PRT_DLLLOCK_SHIFT		6
#define PRT_DLLSRST_SHIFT		0

/* PTR1 */
#define PRT_DINIT0_SHIFT		0
#define PRT_DINIT1_SHIFT		19

/* PTR2 */
#define PRT_DINIT2_SHIFT		0
#define PRT_DINIT3_SHIFT		17

/* DCR */
#define DDRMD_LPDDR			0
#define DDRMD_DDR			1
#define DDRMD_DDR2			2
#define DDRMD_DDR3			3
#define DDRMD_LPDDR2_LPDDR3		4
#define DDRMD_MASK			7
#define DDRMD_SHIFT			0
#define PDQ_MASK			7
#define PDQ_SHIFT			4

/* DXCCR */
#define DQSNRES_MASK			0xf
#define DQSNRES_SHIFT			8
#define DQSRES_MASK			0xf
#define DQSRES_SHIFT			4

/* DTPR */
#define TDQSCKMAX_SHIFT			27
#define TDQSCKMAX_MASK			7
#define TDQSCK_SHIFT			24
#define TDQSCK_MASK			7

/* DSGCR */
#define DQSGX_SHIFT			5
#define DQSGX_MASK			7
#define DQSGE_SHIFT			8
#define DQSGE_MASK			7

/* SCTL */
#define INIT_STATE			0
#define CFG_STATE			1
#define GO_STATE			2
#define SLEEP_STATE			3
#define WAKEUP_STATE			4

/* STAT */
#define LP_TRIG_SHIFT			4
#define LP_TRIG_MASK			7
#define PCTL_STAT_MASK			7
#define INIT_MEM			0
#define CONFIG				1
#define CONFIG_REQ			2
#define ACCESS				3
#define ACCESS_REQ			4
#define LOW_POWER			5
#define LOW_POWER_ENTRY_REQ		6
#define LOW_POWER_EXIT_REQ		7

/* ZQCR*/
#define PD_OUTPUT_SHIFT			0
#define PU_OUTPUT_SHIFT			5
#define PD_ONDIE_SHIFT			10
#define PU_ONDIE_SHIFT			15
#define ZDEN_SHIFT			28

/* DDLGCR */
#define SBIAS_BYPASS			BIT(23)

/* MCFG */
#define MDDR_LPDDR2_CLK_STOP_IDLE_SHIFT	24
#define PD_IDLE_SHIFT			8
#define MDDR_EN				(2 << 22)
#define LPDDR2_EN			(3 << 22)
#define LPDDR3_EN			(1 << 22)
#define DDR2_EN				(0 << 5)
#define DDR3_EN				(1 << 5)
#define LPDDR2_S2			(0 << 6)
#define LPDDR2_S4			(1 << 6)
#define MDDR_LPDDR2_BL_2		(0 << 20)
#define MDDR_LPDDR2_BL_4		(1 << 20)
#define MDDR_LPDDR2_BL_8		(2 << 20)
#define MDDR_LPDDR2_BL_16		(3 << 20)
#define DDR2_DDR3_BL_4			0
#define DDR2_DDR3_BL_8			1
#define TFAW_SHIFT			18
#define PD_EXIT_SLOW			(0 << 17)
#define PD_EXIT_FAST			(1 << 17)
#define PD_TYPE_SHIFT			16
#define BURSTLENGTH_SHIFT		20

/* POWCTL */
#define POWER_UP_START			BIT(0)

/* POWSTAT */
#define POWER_UP_DONE			BIT(0)

/* MCMD */
enum {
	DESELECT_CMD			= 0,
	PREA_CMD,
	REF_CMD,
	MRS_CMD,
	ZQCS_CMD,
	ZQCL_CMD,
	RSTL_CMD,
	MRR_CMD				= 8,
	DPDE_CMD,
};

#define BANK_ADDR_MASK			7
#define BANK_ADDR_SHIFT			17
#define CMD_ADDR_MASK			0x1fff
#define CMD_ADDR_SHIFT			4

#define LPDDR23_MA_SHIFT		4
#define LPDDR23_MA_MASK			0xff
#define LPDDR23_OP_SHIFT		12
#define LPDDR23_OP_MASK			0xff

#define START_CMD			(1u << 31)

/* DDRPHY REG */
enum {
	/* DDRPHY_REG0 */
	SOFT_RESET_MASK				= 3,
	SOFT_DERESET_ANALOG			= 1 << 2,
	SOFT_DERESET_DIGITAL			= 1 << 3,
	SOFT_RESET_SHIFT			= 2,

	/* DDRPHY REG1 */
	PHY_DDR3				= 0,
	PHY_DDR2				= 1,
	PHY_LPDDR3				= 2,
	PHY_LPDDR2				= 3,

	PHT_BL_8				= 1 << 2,
	PHY_BL_4				= 0 << 2,

	/* DDRPHY_REG2 */
	MEMORY_SELECT_DDR3			= 0 << 0,
	MEMORY_SELECT_LPDDR3			= 2 << 0,
	MEMORY_SELECT_LPDDR2			= 3 << 0,
	DQS_SQU_CAL_SEL_CS0_CS1			= 0 << 4,
	DQS_SQU_CAL_SEL_CS1			= 1 << 4,
	DQS_SQU_CAL_SEL_CS0			= 2 << 4,
	DQS_SQU_CAL_NORMAL_MODE			= 0 << 1,
	DQS_SQU_CAL_BYPASS_MODE			= 1 << 1,
	DQS_SQU_CAL_START			= 1 << 0,
	DQS_SQU_NO_CAL				= 0 << 0,
};

/* CK pull up/down driver strength control */
enum {
	PHY_RON_RTT_DISABLE = 0,
	PHY_RON_RTT_451OHM = 1,
	PHY_RON_RTT_225OHM,
	PHY_RON_RTT_150OHM,
	PHY_RON_RTT_112OHM,
	PHY_RON_RTT_90OHM,
	PHY_RON_RTT_75OHM,
	PHY_RON_RTT_64OHM = 7,

	PHY_RON_RTT_56OHM = 16,
	PHY_RON_RTT_50OHM,
	PHY_RON_RTT_45OHM,
	PHY_RON_RTT_41OHM,
	PHY_RON_RTT_37OHM,
	PHY_RON_RTT_34OHM,
	PHY_RON_RTT_33OHM,
	PHY_RON_RTT_30OHM = 23,

	PHY_RON_RTT_28OHM = 24,
	PHY_RON_RTT_26OHM,
	PHY_RON_RTT_25OHM,
	PHY_RON_RTT_23OHM,
	PHY_RON_RTT_22OHM,
	PHY_RON_RTT_21OHM,
	PHY_RON_RTT_20OHM,
	PHY_RON_RTT_19OHM = 31,
};

/* DQS squelch DLL delay */
enum {
	DQS_DLL_NO_DELAY	= 0,
	DQS_DLL_22P5_DELAY,
	DQS_DLL_45_DELAY,
	DQS_DLL_67P5_DELAY,
	DQS_DLL_90_DELAY,
	DQS_DLL_112P5_DELAY,
	DQS_DLL_135_DELAY,
	DQS_DLL_157P5_DELAY,
};

/* GRF_SOC_CON0 */
#define GRF_DDR_16BIT_EN		(((0x1 << 0) << 16) | (0x1 << 0))
#define GRF_DDR_32BIT_EN		(((0x1 << 0) << 16) | (0x0 << 0))
#define GRF_MSCH_NOC_16BIT_EN		(((0x1 << 7) << 16) | (0x1 << 7))
#define GRF_MSCH_NOC_32BIT_EN		(((0x1 << 7) << 16) | (0x0 << 7))

#define GRF_DDRPHY_BUFFEREN_CORE_EN	(((0x1 << 8) << 16) | (0x0 << 8))
#define GRF_DDRPHY_BUFFEREN_CORE_DIS	(((0x1 << 8) << 16) | (0x1 << 8))

#define GRF_DDR3_EN			(((0x1 << 6) << 16) | (0x1 << 6))
#define GRF_LPDDR2_3_EN			(((0x1 << 6) << 16) | (0x0 << 6))

#define PHY_DRV_ODT_SET(n)		(((n) << 4) | (n))
#define DDR3_DLL_RESET			(1 << 8)

#endif /* _ASM_ARCH_SDRAM_RK322X_H */
