2 * Copyright (c) 2016, NVIDIA CORPORATION.
4 * SPDX-License-Identifier: GPL-2.0
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
17 static int tegra_car_bpmp_bind(struct udevice
*dev
)
20 struct udevice
*child
;
22 debug("%s(dev=%p)\n", __func__
, dev
);
24 ret
= device_bind_driver_to_node(dev
, "tegra_car_clk", "tegra_car_clk",
25 dev_of_offset(dev
), &child
);
29 ret
= device_bind_driver_to_node(dev
, "tegra_car_reset",
30 "tegra_car_reset", dev_of_offset(dev
),
38 static int tegra_car_bpmp_probe(struct udevice
*dev
)
40 debug("%s(dev=%p)\n", __func__
, dev
);
45 static int tegra_car_bpmp_remove(struct udevice
*dev
)
47 debug("%s(dev=%p)\n", __func__
, dev
);
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" },
61 U_BOOT_DRIVER(tegra_car_bpmp
) = {
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
,