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