// SPDX-License-Identifier: GPL-2.0+
/*
 * J7200 specific device platform data
 *
 * Copyright (C) 2020-2021 Texas Instruments Incorporated - http://www.ti.com/
 */
#include "k3-dev.h"

static struct ti_psc soc_psc_list[] = {
	[0] = PSC(0, 0x00400000),
	[1] = PSC(1, 0x42000000),
};

static struct ti_pd soc_pd_list[] = {
	[0] = PSC_PD(0, &soc_psc_list[0], NULL),
	[1] = PSC_PD(2, &soc_psc_list[0], &soc_pd_list[5]),
	[2] = PSC_PD(14, &soc_psc_list[0], NULL),
	[3] = PSC_PD(15, &soc_psc_list[0], &soc_pd_list[2]),
	[4] = PSC_PD(16, &soc_psc_list[0], &soc_pd_list[2]),
	[5] = PSC_PD(0, &soc_psc_list[1], NULL),
};

static struct ti_lpsc soc_lpsc_list[] = {
	[0] = PSC_LPSC(0, &soc_psc_list[0], &soc_pd_list[0], NULL),
	[1] = PSC_LPSC(9, &soc_psc_list[0], &soc_pd_list[0], &soc_lpsc_list[14]),
	[2] = PSC_LPSC(14, &soc_psc_list[0], &soc_pd_list[0], &soc_lpsc_list[3]),
	[3] = PSC_LPSC(15, &soc_psc_list[0], &soc_pd_list[0], NULL),
	[4] = PSC_LPSC(20, &soc_psc_list[0], &soc_pd_list[0], NULL),
	[5] = PSC_LPSC(23, &soc_psc_list[0], &soc_pd_list[0], NULL),
	[6] = PSC_LPSC(25, &soc_psc_list[0], &soc_pd_list[0], NULL),
	[7] = PSC_LPSC(54, &soc_psc_list[0], &soc_pd_list[1], NULL),
	[8] = PSC_LPSC(78, &soc_psc_list[0], &soc_pd_list[2], NULL),
	[9] = PSC_LPSC(79, &soc_psc_list[0], &soc_pd_list[2], &soc_lpsc_list[8]),
	[10] = PSC_LPSC(80, &soc_psc_list[0], &soc_pd_list[3], &soc_lpsc_list[8]),
	[11] = PSC_LPSC(81, &soc_psc_list[0], &soc_pd_list[4], &soc_lpsc_list[8]),
	[12] = PSC_LPSC(0, &soc_psc_list[1], &soc_pd_list[5], NULL),
	[13] = PSC_LPSC(3, &soc_psc_list[1], &soc_pd_list[5], NULL),
	[14] = PSC_LPSC(10, &soc_psc_list[1], &soc_pd_list[5], NULL),
	[15] = PSC_LPSC(11, &soc_psc_list[1], &soc_pd_list[5], NULL),
	[16] = PSC_LPSC(12, &soc_psc_list[1], &soc_pd_list[5], NULL),
};

static struct ti_dev soc_dev_list[] = {
	PSC_DEV(30, &soc_lpsc_list[0]),
	PSC_DEV(61, &soc_lpsc_list[1]),
	PSC_DEV(90, &soc_lpsc_list[2]),
	PSC_DEV(8, &soc_lpsc_list[3]),
	PSC_DEV(288, &soc_lpsc_list[4]),
	PSC_DEV(92, &soc_lpsc_list[5]),
	PSC_DEV(91, &soc_lpsc_list[6]),
	PSC_DEV(146, &soc_lpsc_list[7]),
	PSC_DEV(4, &soc_lpsc_list[8]),
	PSC_DEV(4, &soc_lpsc_list[9]),
	PSC_DEV(202, &soc_lpsc_list[10]),
	PSC_DEV(203, &soc_lpsc_list[11]),
	PSC_DEV(102, &soc_lpsc_list[12]),
	PSC_DEV(103, &soc_lpsc_list[12]),
	PSC_DEV(104, &soc_lpsc_list[12]),
	PSC_DEV(154, &soc_lpsc_list[12]),
	PSC_DEV(149, &soc_lpsc_list[12]),
	PSC_DEV(113, &soc_lpsc_list[13]),
	PSC_DEV(197, &soc_lpsc_list[13]),
	PSC_DEV(103, &soc_lpsc_list[14]),
	PSC_DEV(104, &soc_lpsc_list[15]),
	PSC_DEV(102, &soc_lpsc_list[16]),
};

const struct ti_k3_pd_platdata j7200_pd_platdata = {
	.psc = soc_psc_list,
	.pd = soc_pd_list,
	.lpsc = soc_lpsc_list,
	.devs = soc_dev_list,
	.num_psc = 2,
	.num_pd = 6,
	.num_lpsc = 17,
	.num_devs = 22,
};
