]>
Commit | Line | Data |
---|---|---|
bd3ee84a SW |
1 | /* |
2 | * Copyright (c) 2016, NVIDIA CORPORATION. | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0 | |
5 | */ | |
6 | ||
7 | #include <common.h> | |
8 | #include <dm.h> | |
9 | #include <dm/lists.h> | |
10 | #include <dm/root.h> | |
11 | ||
12 | /** | |
13 | * The CAR exposes multiple different services. We create a sub-device for | |
14 | * each separate type of service, since each device must be of the appropriate | |
15 | * UCLASS. | |
16 | */ | |
17 | static int tegra_car_bpmp_bind(struct udevice *dev) | |
18 | { | |
19 | int ret; | |
20 | struct udevice *child; | |
21 | ||
22 | debug("%s(dev=%p)\n", __func__, dev); | |
23 | ||
24 | ret = device_bind_driver_to_node(dev, "tegra_car_clk", "tegra_car_clk", | |
45a26867 | 25 | dev_ofnode(dev), &child); |
bd3ee84a SW |
26 | if (ret) |
27 | return ret; | |
28 | ||
29 | ret = device_bind_driver_to_node(dev, "tegra_car_reset", | |
45a26867 | 30 | "tegra_car_reset", dev_ofnode(dev), |
bd3ee84a SW |
31 | &child); |
32 | if (ret) | |
33 | return ret; | |
34 | ||
35 | return 0; | |
36 | } | |
37 | ||
38 | static int tegra_car_bpmp_probe(struct udevice *dev) | |
39 | { | |
40 | debug("%s(dev=%p)\n", __func__, dev); | |
41 | ||
42 | return 0; | |
43 | } | |
44 | ||
45 | static int tegra_car_bpmp_remove(struct udevice *dev) | |
46 | { | |
47 | debug("%s(dev=%p)\n", __func__, dev); | |
48 | ||
49 | return 0; | |
50 | } | |
51 | ||
52 | static const struct udevice_id tegra_car_bpmp_ids[] = { | |
53 | { .compatible = "nvidia,tegra20-car" }, | |
54 | { .compatible = "nvidia,tegra30-car" }, | |
55 | { .compatible = "nvidia,tegra114-car" }, | |
56 | { .compatible = "nvidia,tegra124-car" }, | |
57 | { .compatible = "nvidia,tegra210-car" }, | |
58 | { } | |
59 | }; | |
60 | ||
61 | U_BOOT_DRIVER(tegra_car_bpmp) = { | |
62 | .name = "tegra_car", | |
63 | .id = UCLASS_MISC, | |
64 | .of_match = tegra_car_bpmp_ids, | |
65 | .bind = tegra_car_bpmp_bind, | |
66 | .probe = tegra_car_bpmp_probe, | |
67 | .remove = tegra_car_bpmp_remove, | |
68 | }; |