Lines Matching +full:axi +full:- +full:bus
1 // SPDX-License-Identifier: GPL-2.0+
9 * SPDX-License-Identifier: GPL-2.0+
13 #include <axi.h>
18 /* Currently selected AXI bus device */
28 * show_bus() - Show devices on a single AXI bus
29 * @bus: The AXI bus device to printt information for
31 static void show_bus(struct udevice *bus) in show_bus() argument
35 printf("Bus %d:\t%s", bus->req_seq, bus->name); in show_bus()
36 if (device_active(bus)) in show_bus()
37 printf(" (active %d)", bus->seq); in show_bus()
39 for (device_find_first_child(bus, &dev); in show_bus()
42 printf(" %s\n", dev->name); in show_bus()
46 * axi_set_cur_bus() - Set the currently active AXI bus
47 * @busnum: The number of the bus (i.e. its sequence number) that should be
51 * bus.
53 * Return: 0 if OK, -ve on error
57 struct udevice *bus; in axi_set_cur_bus() local
67 ret = uclass_get_device_by_seq(UCLASS_AXI, busnum, &bus); in axi_set_cur_bus()
69 debug("%s: No bus %d\n", __func__, busnum); in axi_set_cur_bus()
72 axi_cur_bus = bus; in axi_set_cur_bus()
78 * axi_get_cur_bus() - Retrieve the currently active AXI bus device
79 * @busp: Pointer to a struct udevice that receives the currently active bus
82 * Return: 0 if OK, -ve on error
87 puts("No AXI bus selected\n"); in axi_get_cur_bus()
88 return -ENODEV; in axi_get_cur_bus()
112 struct udevice *bus; in do_axi_show_bus() local
114 for (uclass_first_device(UCLASS_AXI, &bus); in do_axi_show_bus()
115 bus; in do_axi_show_bus()
116 uclass_next_device(&bus)) in do_axi_show_bus()
117 show_bus(bus); in do_axi_show_bus()
121 /* show specific bus */ in do_axi_show_bus()
124 struct udevice *bus; in do_axi_show_bus() local
127 ret = uclass_get_device_by_seq(UCLASS_AXI, i, &bus); in do_axi_show_bus()
129 printf("Invalid bus %d: err=%d\n", i, ret); in do_axi_show_bus()
132 show_bus(bus); in do_axi_show_bus()
146 struct udevice *bus; in do_axi_bus_num() local
148 if (!axi_get_cur_bus(&bus)) in do_axi_bus_num()
149 bus_no = bus->seq; in do_axi_bus_num()
151 bus_no = -1; in do_axi_bus_num()
153 printf("Current bus is %d\n", bus_no); in do_axi_bus_num()
156 printf("Setting bus to %d\n", bus_no); in do_axi_bus_num()
160 printf("Failure changing bus number (%d)\n", ret); in do_axi_bus_num()
189 puts("No AXI bus selected\n"); in do_axi_md()
239 if (ret == -ENOSYS) in do_axi_md()
250 nbytes -= max(linebytes, 1UL); in do_axi_md()
302 while (count-- > 0) { in do_axi_mw()
316 U_BOOT_CMD_MKENT(bus, 1, 1, do_axi_show_bus, "", ""),
330 /* Strip off leading 'axi' command argument */ in do_ihs_axi()
331 argc--; in do_ihs_axi()
334 /* Hand off rest of command line to sub-commands */ in do_ihs_axi()
338 return c->cmd(cmdtp, flag, argc, argv); in do_ihs_axi()
344 "bus - show AXI bus info\n"
345 "axi dev [bus] - show or set current AXI bus to bus number [bus]\n"
346 …"axi md size addr [# of objects] - read from AXI device at address [addr] and data width [size] (o…
347 …"axi mw size addr value [count] - write data [value] to AXI device at address [addr] and data widt…
349 U_BOOT_CMD(axi, 7, 1, do_ihs_axi,
350 "AXI sub-system",