|  | // 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"); |