Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / arch / arm / mach-rockchip / rk3288 / syscon_rk3288.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (C) 2015 Google, Inc
4  * Written by Simon Glass <sjg@chromium.org>
5  */
6
7 #include <common.h>
8 #include <dm.h>
9 #include <log.h>
10 #include <syscon.h>
11 #include <asm/arch-rockchip/clock.h>
12
13 static const struct udevice_id rk3288_syscon_ids[] = {
14         { .compatible = "rockchip,rk3288-noc", .data = ROCKCHIP_SYSCON_NOC },
15         { .compatible = "rockchip,rk3288-grf", .data = ROCKCHIP_SYSCON_GRF },
16         { .compatible = "rockchip,rk3288-sgrf", .data = ROCKCHIP_SYSCON_SGRF },
17         { .compatible = "rockchip,rk3288-pmu", .data = ROCKCHIP_SYSCON_PMU },
18         { }
19 };
20
21 U_BOOT_DRIVER(syscon_rk3288) = {
22         .name = "rk3288_syscon",
23         .id = UCLASS_SYSCON,
24         .of_match = rk3288_syscon_ids,
25 };
26
27 #if CONFIG_IS_ENABLED(OF_PLATDATA)
28 static int rk3288_syscon_bind_of_platdata(struct udevice *dev)
29 {
30         dev->driver_data = dev->driver->of_match->data;
31         debug("syscon: %s %d\n", dev->name, (uint)dev->driver_data);
32
33         return 0;
34 }
35
36 U_BOOT_DRIVER(rockchip_rk3288_noc) = {
37         .name = "rockchip_rk3288_noc",
38         .id = UCLASS_SYSCON,
39         .of_match = rk3288_syscon_ids,
40         .bind = rk3288_syscon_bind_of_platdata,
41 };
42
43 U_BOOT_DRIVER(rockchip_rk3288_grf) = {
44         .name = "rockchip_rk3288_grf",
45         .id = UCLASS_SYSCON,
46         .of_match = rk3288_syscon_ids + 1,
47         .bind = rk3288_syscon_bind_of_platdata,
48 };
49
50 U_BOOT_DRIVER(rockchip_rk3288_sgrf) = {
51         .name = "rockchip_rk3288_sgrf",
52         .id = UCLASS_SYSCON,
53         .of_match = rk3288_syscon_ids + 2,
54         .bind = rk3288_syscon_bind_of_platdata,
55 };
56
57 U_BOOT_DRIVER(rockchip_rk3288_pmu) = {
58         .name = "rockchip_rk3288_pmu",
59         .id = UCLASS_SYSCON,
60         .of_match = rk3288_syscon_ids + 3,
61         .bind = rk3288_syscon_bind_of_platdata,
62 };
63 #endif