ARM: dts: stm32: Rework DDR DT inclusion

Adjust the DDR configuration dtsi such that they only generate the
DRAM configuration node, the DDR controller node is moved into the
stm32mp157-u-boot.dtsi itself. This permits including multiple DDR
configuration dtsi files in board DT.

Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
This commit is contained in:
Marek Vasut 2020-04-22 13:18:13 +02:00 committed by Patrick Delaunay
parent 0c27c16495
commit a8c97f4a00
4 changed files with 248 additions and 137 deletions

View file

@ -2,156 +2,240 @@
/* /*
* Copyright : STMicroelectronics 2018 * Copyright : STMicroelectronics 2018
*/ */
#include <linux/stringify.h>
/ { &ddr {
soc { config-DDR_MEM_COMPATIBLE {
ddr: ddr@5a003000 { u-boot,dm-pre-reloc;
u-boot,dm-pre-reloc;
compatible = "st,stm32mp1-ddr"; compatible = __stringify(st,DDR_MEM_COMPATIBLE);
reg = <0x5A003000 0x550 st,mem-name = DDR_MEM_NAME;
0x5A004000 0x234>; st,mem-speed = <DDR_MEM_SPEED>;
st,mem-size = <DDR_MEM_SIZE>;
clocks = <&rcc AXIDCG>, st,ctl-reg = <
<&rcc DDRC1>, DDR_MSTR
<&rcc DDRC2>, DDR_MRCTRL0
<&rcc DDRPHYC>, DDR_MRCTRL1
<&rcc DDRCAPB>, DDR_DERATEEN
<&rcc DDRPHYCAPB>; 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
>;
clock-names = "axidcg", st,ctl-timing = <
"ddrc1", DDR_RFSHTMG
"ddrc2", DDR_DRAMTMG0
"ddrphyc", DDR_DRAMTMG1
"ddrcapb", DDR_DRAMTMG2
"ddrphycapb"; DDR_DRAMTMG3
DDR_DRAMTMG4
DDR_DRAMTMG5
DDR_DRAMTMG6
DDR_DRAMTMG7
DDR_DRAMTMG8
DDR_DRAMTMG14
DDR_ODTCFG
>;
st,mem-name = DDR_MEM_NAME; st,ctl-map = <
st,mem-speed = <DDR_MEM_SPEED>; DDR_ADDRMAP1
st,mem-size = <DDR_MEM_SIZE>; DDR_ADDRMAP2
DDR_ADDRMAP3
DDR_ADDRMAP4
DDR_ADDRMAP5
DDR_ADDRMAP6
DDR_ADDRMAP9
DDR_ADDRMAP10
DDR_ADDRMAP11
>;
st,ctl-reg = < st,ctl-perf = <
DDR_MSTR DDR_SCHED
DDR_MRCTRL0 DDR_SCHED1
DDR_MRCTRL1 DDR_PERFHPR1
DDR_DERATEEN DDR_PERFLPR1
DDR_DERATEINT DDR_PERFWR1
DDR_PWRCTL DDR_PCFGR_0
DDR_PWRTMG DDR_PCFGW_0
DDR_HWLPCTL DDR_PCFGQOS0_0
DDR_RFSHCTL0 DDR_PCFGQOS1_0
DDR_RFSHCTL3 DDR_PCFGWQOS0_0
DDR_CRCPARCTL0 DDR_PCFGWQOS1_0
DDR_ZQCTL0 DDR_PCFGR_1
DDR_DFITMG0 DDR_PCFGW_1
DDR_DFITMG1 DDR_PCFGQOS0_1
DDR_DFILPCFG0 DDR_PCFGQOS1_1
DDR_DFIUPD0 DDR_PCFGWQOS0_1
DDR_DFIUPD1 DDR_PCFGWQOS1_1
DDR_DFIUPD2 >;
DDR_DFIPHYMSTR
DDR_ODTMAP
DDR_DBG0
DDR_DBG1
DDR_DBGCMD
DDR_POISONCFG
DDR_PCCFG
>;
st,ctl-timing = < st,phy-reg = <
DDR_RFSHTMG DDR_PGCR
DDR_DRAMTMG0 DDR_ACIOCR
DDR_DRAMTMG1 DDR_DXCCR
DDR_DRAMTMG2 DDR_DSGCR
DDR_DRAMTMG3 DDR_DCR
DDR_DRAMTMG4 DDR_ODTCR
DDR_DRAMTMG5 DDR_ZQ0CR1
DDR_DRAMTMG6 DDR_DX0GCR
DDR_DRAMTMG7 DDR_DX1GCR
DDR_DRAMTMG8 DDR_DX2GCR
DDR_DRAMTMG14 DDR_DX3GCR
DDR_ODTCFG >;
>;
st,ctl-map = < st,phy-timing = <
DDR_ADDRMAP1 DDR_PTR0
DDR_ADDRMAP2 DDR_PTR1
DDR_ADDRMAP3 DDR_PTR2
DDR_ADDRMAP4 DDR_DTPR0
DDR_ADDRMAP5 DDR_DTPR1
DDR_ADDRMAP6 DDR_DTPR2
DDR_ADDRMAP9 DDR_MR0
DDR_ADDRMAP10 DDR_MR1
DDR_ADDRMAP11 DDR_MR2
>; DDR_MR3
>;
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
>;
#ifdef DDR_PHY_CAL_SKIP #ifdef DDR_PHY_CAL_SKIP
st,phy-cal = < st,phy-cal = <
DDR_DX0DLLCR DDR_DX0DLLCR
DDR_DX0DQTR DDR_DX0DQTR
DDR_DX0DQSTR DDR_DX0DQSTR
DDR_DX1DLLCR DDR_DX1DLLCR
DDR_DX1DQTR DDR_DX1DQTR
DDR_DX1DQSTR DDR_DX1DQSTR
DDR_DX2DLLCR DDR_DX2DLLCR
DDR_DX2DQTR DDR_DX2DQTR
DDR_DX2DQSTR DDR_DX2DQSTR
DDR_DX3DLLCR DDR_DX3DLLCR
DDR_DX3DQTR DDR_DX3DQTR
DDR_DX3DQSTR DDR_DX3DQSTR
>; >;
#endif #endif
status = "okay"; status = "okay";
};
}; };
}; };
#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_DX0DLLCR
#undef DDR_DX0DQTR
#undef DDR_DX0DQSTR
#undef DDR_DX1GCR
#undef DDR_DX1DLLCR
#undef DDR_DX1DQTR
#undef DDR_DX1DQSTR
#undef DDR_DX2GCR
#undef DDR_DX2DLLCR
#undef DDR_DX2DQTR
#undef DDR_DX2DQSTR
#undef DDR_DX3GCR
#undef DDR_DX3DLLCR
#undef DDR_DX3DQTR
#undef DDR_DX3DQSTR

View file

@ -16,6 +16,7 @@
* address mapping : RBC * address mapping : RBC
* Tc > + 85C : N * Tc > + 85C : N
*/ */
#define DDR_MEM_COMPATIBLE ddr3-1066-888-bin-g-1x4gb-533mhz
#define DDR_MEM_NAME "DDR3-1066/888 bin G 1x4Gb 533MHz v1.45" #define DDR_MEM_NAME "DDR3-1066/888 bin G 1x4Gb 533MHz v1.45"
#define DDR_MEM_SPEED 533000 #define DDR_MEM_SPEED 533000
#define DDR_MEM_SIZE 0x20000000 #define DDR_MEM_SIZE 0x20000000

View file

@ -16,6 +16,7 @@
* address mapping : RBC * address mapping : RBC
* Tc > + 85C : N * Tc > + 85C : N
*/ */
#define DDR_MEM_COMPATIBLE ddr3-1066-888-bin-g-2x4gb-533mhz
#define DDR_MEM_NAME "DDR3-1066/888 bin G 2x4Gb 533MHz v1.45" #define DDR_MEM_NAME "DDR3-1066/888 bin G 2x4Gb 533MHz v1.45"
#define DDR_MEM_SPEED 533000 #define DDR_MEM_SPEED 533000
#define DDR_MEM_SIZE 0x40000000 #define DDR_MEM_SIZE 0x40000000

View file

@ -36,6 +36,31 @@
soc { soc {
u-boot,dm-pre-reloc; u-boot,dm-pre-reloc;
ddr: ddr@5a003000 {
u-boot,dm-pre-reloc;
compatible = "st,stm32mp1-ddr";
reg = <0x5A003000 0x550
0x5A004000 0x234>;
clocks = <&rcc AXIDCG>,
<&rcc DDRC1>,
<&rcc DDRC2>,
<&rcc DDRPHYC>,
<&rcc DDRCAPB>,
<&rcc DDRPHYCAPB>;
clock-names = "axidcg",
"ddrc1",
"ddrc2",
"ddrphyc",
"ddrcapb",
"ddrphycapb";
status = "okay";
};
}; };
}; };