// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright 2021 Linaro Limited
 *
 * Author: Daniel Lezcano <daniel.lezcano@linaro.org>
 *
 * DTPM hierarchy description
 */
#include <linux/dtpm.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>

static struct dtpm_node __initdata rk3399_hierarchy[] = {
	[0]{ .name = "rk3399",
	     .type = DTPM_NODE_VIRTUAL },
	[1]{ .name = "package",
	     .type = DTPM_NODE_VIRTUAL,
	     .parent = &rk3399_hierarchy[0] },
	[2]{ .name = "/cpus/cpu@0",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[3]{ .name = "/cpus/cpu@1",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[4]{ .name = "/cpus/cpu@2",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[5]{ .name = "/cpus/cpu@3",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[6]{ .name = "/cpus/cpu@100",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[7]{ .name = "/cpus/cpu@101",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[8]{ .name = "/gpu@ff9a0000",
	     .type = DTPM_NODE_DT,
	     .parent = &rk3399_hierarchy[1] },
	[9]{ /* sentinel */ }
};

static struct of_device_id __initdata rockchip_dtpm_match_table[] = {
        { .compatible = "rockchip,rk3399", .data = rk3399_hierarchy },
        {},
};

static int __init rockchip_dtpm_init(void)
{
	return dtpm_create_hierarchy(rockchip_dtpm_match_table);
}
module_init(rockchip_dtpm_init);

static void __exit rockchip_dtpm_exit(void)
{
	return dtpm_destroy_hierarchy();
}
module_exit(rockchip_dtpm_exit);

MODULE_SOFTDEP("pre: panfrost cpufreq-dt");
MODULE_DESCRIPTION("Rockchip DTPM driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:dtpm");
MODULE_AUTHOR("Daniel Lezcano <daniel.lezcano@kernel.org");
