// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
 * Copyright : STMicroelectronics 2018
 */
#include <linux/stringify.h>

#ifdef CONFIG_SPL
&ddr {
	clocks = <&rcc AXIDCG>,
		 <&rcc DDRC1>,
		 <&rcc DDRC2>,
		 <&rcc DDRPHYC>,
		 <&rcc DDRCAPB>,
		 <&rcc DDRPHYCAPB>;

	clock-names = "axidcg",
		      "ddrc1",
		      "ddrc2",
		      "ddrphyc",
		      "ddrcapb",
		      "ddrphycapb";

	config-DDR_MEM_COMPATIBLE {
		bootph-all;

		compatible = __stringify(st,DDR_MEM_COMPATIBLE);

		st,mem-name = DDR_MEM_NAME;
		st,mem-speed = <DDR_MEM_SPEED>;
		st,mem-size = <DDR_MEM_SIZE>;

		st,ctl-reg = <
			DDR_MSTR
			DDR_MRCTRL0
			DDR_MRCTRL1
			DDR_DERATEEN
			DDR_DERATEINT
			DDR_PWRCTL
			DDR_PWRTMG
			DDR_HWLPCTL
			DDR_RFSHCTL0
			DDR_RFSHCTL3
			DDR_CRCPARCTL0
			DDR_ZQCTL0
			DDR_DFITMG0
			DDR_DFITMG1
			DDR_DFILPCFG0
			DDR_DFIUPD0
			DDR_DFIUPD1
			DDR_DFIUPD2
			DDR_DFIPHYMSTR
			DDR_ODTMAP
			DDR_DBG0
			DDR_DBG1
			DDR_DBGCMD
			DDR_POISONCFG
			DDR_PCCFG
		>;

		st,ctl-timing = <
			DDR_RFSHTMG
			DDR_DRAMTMG0
			DDR_DRAMTMG1
			DDR_DRAMTMG2
			DDR_DRAMTMG3
			DDR_DRAMTMG4
			DDR_DRAMTMG5
			DDR_DRAMTMG6
			DDR_DRAMTMG7
			DDR_DRAMTMG8
			DDR_DRAMTMG14
			DDR_ODTCFG
		>;

		st,ctl-map = <
			DDR_ADDRMAP1
			DDR_ADDRMAP2
			DDR_ADDRMAP3
			DDR_ADDRMAP4
			DDR_ADDRMAP5
			DDR_ADDRMAP6
			DDR_ADDRMAP9
			DDR_ADDRMAP10
			DDR_ADDRMAP11
		>;

		st,ctl-perf = <
			DDR_SCHED
			DDR_SCHED1
			DDR_PERFHPR1
			DDR_PERFLPR1
			DDR_PERFWR1
			DDR_PCFGR_0
			DDR_PCFGW_0
			DDR_PCFGQOS0_0
			DDR_PCFGQOS1_0
			DDR_PCFGWQOS0_0
			DDR_PCFGWQOS1_0
			DDR_PCFGR_1
			DDR_PCFGW_1
			DDR_PCFGQOS0_1
			DDR_PCFGQOS1_1
			DDR_PCFGWQOS0_1
			DDR_PCFGWQOS1_1
		>;

		st,phy-reg = <
			DDR_PGCR
			DDR_ACIOCR
			DDR_DXCCR
			DDR_DSGCR
			DDR_DCR
			DDR_ODTCR
			DDR_ZQ0CR1
			DDR_DX0GCR
			DDR_DX1GCR
			DDR_DX2GCR
			DDR_DX3GCR
		>;

		st,phy-timing = <
			DDR_PTR0
			DDR_PTR1
			DDR_PTR2
			DDR_DTPR0
			DDR_DTPR1
			DDR_DTPR2
			DDR_MR0
			DDR_MR1
			DDR_MR2
			DDR_MR3
		>;

		status = "okay";
	};
};
#endif

#undef DDR_MEM_COMPATIBLE
#undef DDR_MEM_NAME
#undef DDR_MEM_SPEED
#undef DDR_MEM_SIZE

#undef DDR_MSTR
#undef DDR_MRCTRL0
#undef DDR_MRCTRL1
#undef DDR_DERATEEN
#undef DDR_DERATEINT
#undef DDR_PWRCTL
#undef DDR_PWRTMG
#undef DDR_HWLPCTL
#undef DDR_RFSHCTL0
#undef DDR_RFSHCTL3
#undef DDR_RFSHTMG
#undef DDR_CRCPARCTL0
#undef DDR_DRAMTMG0
#undef DDR_DRAMTMG1
#undef DDR_DRAMTMG2
#undef DDR_DRAMTMG3
#undef DDR_DRAMTMG4
#undef DDR_DRAMTMG5
#undef DDR_DRAMTMG6
#undef DDR_DRAMTMG7
#undef DDR_DRAMTMG8
#undef DDR_DRAMTMG14
#undef DDR_ZQCTL0
#undef DDR_DFITMG0
#undef DDR_DFITMG1
#undef DDR_DFILPCFG0
#undef DDR_DFIUPD0
#undef DDR_DFIUPD1
#undef DDR_DFIUPD2
#undef DDR_DFIPHYMSTR
#undef DDR_ADDRMAP1
#undef DDR_ADDRMAP2
#undef DDR_ADDRMAP3
#undef DDR_ADDRMAP4
#undef DDR_ADDRMAP5
#undef DDR_ADDRMAP6
#undef DDR_ADDRMAP9
#undef DDR_ADDRMAP10
#undef DDR_ADDRMAP11
#undef DDR_ODTCFG
#undef DDR_ODTMAP
#undef DDR_SCHED
#undef DDR_SCHED1
#undef DDR_PERFHPR1
#undef DDR_PERFLPR1
#undef DDR_PERFWR1
#undef DDR_DBG0
#undef DDR_DBG1
#undef DDR_DBGCMD
#undef DDR_POISONCFG
#undef DDR_PCCFG
#undef DDR_PCFGR_0
#undef DDR_PCFGW_0
#undef DDR_PCFGQOS0_0
#undef DDR_PCFGQOS1_0
#undef DDR_PCFGWQOS0_0
#undef DDR_PCFGWQOS1_0
#undef DDR_PCFGR_1
#undef DDR_PCFGW_1
#undef DDR_PCFGQOS0_1
#undef DDR_PCFGQOS1_1
#undef DDR_PCFGWQOS0_1
#undef DDR_PCFGWQOS1_1
#undef DDR_PGCR
#undef DDR_PTR0
#undef DDR_PTR1
#undef DDR_PTR2
#undef DDR_ACIOCR
#undef DDR_DXCCR
#undef DDR_DSGCR
#undef DDR_DCR
#undef DDR_DTPR0
#undef DDR_DTPR1
#undef DDR_DTPR2
#undef DDR_MR0
#undef DDR_MR1
#undef DDR_MR2
#undef DDR_MR3
#undef DDR_ODTCR
#undef DDR_ZQ0CR1
#undef DDR_DX0GCR
#undef DDR_DX1GCR
#undef DDR_DX2GCR
#undef DDR_DX3GCR
