blob: fe6eccd959ec0703234c7ee60bd12067e7c55278 [file]
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2024 PHYTEC Messtechnik GmbH
* Author: Wadim Egorov <w.egorov@phytec.de>
*/
#ifndef PHYCORE_DDR_DATA
#define PHYCORE_DDR_DATA
#include "../common/k3/k3_ddrss_patch.h"
/* 1 GB variant delta */
struct ddr_reg ddr_1gb_ctl_regs[] = {
{ 55, 0x0400DB60 },
{ 58, 0x0400DB60 },
{ 61, 0x0400DB60 },
{ 73, 0x00001860 },
{ 75, 0x00001860 },
{ 77, 0x00001860 },
{ 119, 0x00061800 },
{ 120, 0x00061800 },
{ 121, 0x00061800 },
{ 122, 0x00061800 },
{ 123, 0x00061800 },
{ 125, 0x0000AAA0 },
{ 126, 0x00061800 },
{ 127, 0x00061800 },
{ 128, 0x00061800 },
{ 129, 0x00061800 },
{ 130, 0x00061800 },
{ 132, 0x0000AAA0 },
{ 133, 0x00061800 },
{ 134, 0x00061800 },
{ 135, 0x00061800 },
{ 136, 0x00061800 },
{ 137, 0x00061800 },
{ 139, 0x0000AAA0 },
{ 206, 0x00000000 },
{ 209, 0x00000000 },
{ 212, 0x00000000 },
{ 215, 0x00000000 },
{ 218, 0x00000000 },
{ 221, 0x00000000 },
{ 230, 0x00000000 },
{ 231, 0x00000000 },
{ 232, 0x00000000 },
{ 233, 0x00000000 },
{ 234, 0x00000000 },
{ 235, 0x00000000 },
{ 316, 0x01010000 },
{ 318, 0x3FFF0000 },
{ 327, 0x00000C01 },
{ 328, 0x00000000 },
{ 385, 0x000030C0 },
{ 390, 0x0000DB60 },
{ 391, 0x0001E780 },
{ 394, 0x000030C0 },
{ 399, 0x0000DB60 },
{ 400, 0x0001E780 },
{ 403, 0x000030C0 },
{ 408, 0x0000DB60 },
{ 409, 0x0001E780 }
};
struct ddr_reg ddr_1gb_pi_regs[] = {
{ 77, 0x04000100 },
{ 176, 0x00001860 },
{ 178, 0x00001860 },
{ 180, 0x04001860 },
{ 233, 0x0000C570 },
{ 238, 0x0000C570 },
{ 243, 0x0000C570 },
{ 247, 0x000030C0 },
{ 248, 0x0001E780 },
{ 249, 0x000030C0 },
{ 250, 0x0001E780 },
{ 251, 0x000030C0 },
{ 252, 0x0001E780 },
{ 299, 0x00000000 },
{ 301, 0x00000000 },
{ 307, 0x00000000 },
{ 309, 0x00000000 },
{ 315, 0x00000000 },
{ 317, 0x00000000 },
{ 323, 0x00000000 },
{ 325, 0x00000000 },
{ 331, 0x00000000 },
{ 333, 0x00000000 },
{ 339, 0x00000000 },
{ 341, 0x00000000 }
};
struct ddr_reg ddr_1gb_phy_regs[] = {
{ 1371, 0x0001F7C2 },
};
/* 4 GB variant delta */
struct ddr_reg ddr_4gb_ctl_regs[] = {
{ 55, 0x0400DB60 },
{ 58, 0x0400DB60 },
{ 61, 0x0400DB60 },
{ 73, 0x00001860 },
{ 75, 0x00001860 },
{ 77, 0x00001860 },
{ 119, 0x00061800 },
{ 120, 0x00061800 },
{ 121, 0x00061800 },
{ 122, 0x00061800 },
{ 123, 0x00061800 },
{ 125, 0x0000AAA0 },
{ 126, 0x00061800 },
{ 127, 0x00061800 },
{ 128, 0x00061800 },
{ 129, 0x00061800 },
{ 130, 0x00061800 },
{ 132, 0x0000AAA0 },
{ 133, 0x00061800 },
{ 134, 0x00061800 },
{ 135, 0x00061800 },
{ 136, 0x00061800 },
{ 137, 0x00061800 },
{ 139, 0x0000AAA0 },
{ 206, 0x00000000 },
{ 209, 0x00000000 },
{ 212, 0x00000000 },
{ 215, 0x00000000 },
{ 218, 0x00000000 },
{ 221, 0x00000000 },
{ 230, 0x00000000 },
{ 231, 0x00000000 },
{ 232, 0x00000000 },
{ 233, 0x00000000 },
{ 234, 0x00000000 },
{ 235, 0x00000000 },
{ 316, 0x00000000 },
{ 318, 0x7FFF0000 },
{ 327, 0x01000C01 },
{ 328, 0x00000001 },
{ 385, 0x000030C0 },
{ 390, 0x0000DB60 },
{ 391, 0x0001E780 },
{ 394, 0x000030C0 },
{ 399, 0x0000DB60 },
{ 400, 0x0001E780 },
{ 403, 0x000030C0 },
{ 408, 0x0000DB60 },
{ 409, 0x0001E780 }
};
struct ddr_reg ddr_4gb_pi_regs[] = {
{ 77, 0x04000000 },
{ 176, 0x00001860 },
{ 178, 0x00001860 },
{ 180, 0x04001860 },
{ 233, 0x0000C570 },
{ 238, 0x0000C570 },
{ 243, 0x0000C570 },
{ 247, 0x000030C0 },
{ 248, 0x0001E780 },
{ 249, 0x000030C0 },
{ 250, 0x0001E780 },
{ 251, 0x000030C0 },
{ 252, 0x0001E780 },
{ 299, 0x00000000 },
{ 301, 0x00000000 },
{ 307, 0x00000000 },
{ 309, 0x00000000 },
{ 315, 0x00000000 },
{ 317, 0x00000000 },
{ 323, 0x00000000 },
{ 325, 0x00000000 },
{ 331, 0x00000000 },
{ 333, 0x00000000 },
{ 339, 0x00000000 },
{ 341, 0x00000000 }
};
struct ddr_reg ddr_4gb_phy_regs[] = {
{ 1371, 0x0001F7C2 },
};
enum {
PHYCORE_1GB,
PHYCORE_4GB,
};
struct ddrss phycore_ddrss_data[] = {
[PHYCORE_1GB] = {
.ctl_regs = &ddr_1gb_ctl_regs[0],
.ctl_regs_num = ARRAY_SIZE(ddr_1gb_ctl_regs),
.pi_regs = &ddr_1gb_pi_regs[0],
.pi_regs_num = ARRAY_SIZE(ddr_1gb_pi_regs),
.phy_regs = &ddr_1gb_phy_regs[0],
.phy_regs_num = ARRAY_SIZE(ddr_1gb_phy_regs),
},
[PHYCORE_4GB] = {
.ctl_regs = &ddr_4gb_ctl_regs[0],
.ctl_regs_num = ARRAY_SIZE(ddr_4gb_ctl_regs),
.pi_regs = &ddr_4gb_pi_regs[0],
.pi_regs_num = ARRAY_SIZE(ddr_4gb_pi_regs),
.phy_regs = &ddr_4gb_phy_regs[0],
.phy_regs_num = ARRAY_SIZE(ddr_4gb_phy_regs),
},
};
#endif /* PHYCORE_DDR_DATA */