1 // SPDX-License-Identifier: GPL-2.0+
3 * (C) Copyright 2016 Rockchip Electronics Co., Ltd
9 #include <asm/arch/clock.h>
11 static const struct udevice_id rk3399_syscon_ids
[] = {
12 { .compatible
= "rockchip,rk3399-grf", .data
= ROCKCHIP_SYSCON_GRF
},
13 { .compatible
= "rockchip,rk3399-pmugrf", .data
= ROCKCHIP_SYSCON_PMUGRF
},
14 { .compatible
= "rockchip,rk3399-pmusgrf", .data
= ROCKCHIP_SYSCON_PMUSGRF
},
15 { .compatible
= "rockchip,rk3399-cic", .data
= ROCKCHIP_SYSCON_CIC
},
19 U_BOOT_DRIVER(syscon_rk3399
) = {
20 .name
= "rk3399_syscon",
22 .of_match
= rk3399_syscon_ids
,
25 #if CONFIG_IS_ENABLED(OF_PLATDATA)
26 static int rk3399_syscon_bind_of_platdata(struct udevice
*dev
)
28 dev
->driver_data
= dev
->driver
->of_match
->data
;
29 debug("syscon: %s %d\n", dev
->name
, (uint
)dev
->driver_data
);
34 U_BOOT_DRIVER(rockchip_rk3399_grf
) = {
35 .name
= "rockchip_rk3399_grf",
37 .of_match
= rk3399_syscon_ids
,
38 .bind
= rk3399_syscon_bind_of_platdata
,
41 U_BOOT_DRIVER(rockchip_rk3399_pmugrf
) = {
42 .name
= "rockchip_rk3399_pmugrf",
44 .of_match
= rk3399_syscon_ids
+ 1,
45 .bind
= rk3399_syscon_bind_of_platdata
,
48 U_BOOT_DRIVER(rockchip_rk3399_pmusgrf
) = {
49 .name
= "rockchip_rk3399_pmusgrf",
51 .of_match
= rk3399_syscon_ids
+ 2,
52 .bind
= rk3399_syscon_bind_of_platdata
,
55 U_BOOT_DRIVER(rockchip_rk3399_cic
) = {
56 .name
= "rockchip_rk3399_cic",
58 .of_match
= rk3399_syscon_ids
+ 3,
59 .bind
= rk3399_syscon_bind_of_platdata
,