uboot/test/dm/cmd_dm.c
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2013 Google, Inc
   3 *
   4 * (C) Copyright 2012
   5 * Marek Vasut <marex@denx.de>
   6 *
   7 * SPDX-License-Identifier:     GPL-2.0+
   8 */
   9
  10#include <common.h>
  11#include <command.h>
  12#include <dm.h>
  13#include <malloc.h>
  14#include <mapmem.h>
  15#include <errno.h>
  16#include <asm/io.h>
  17#include <dm/root.h>
  18#include <dm/util.h>
  19
  20static int do_dm_dump_all(cmd_tbl_t *cmdtp, int flag, int argc,
  21                          char * const argv[])
  22{
  23        dm_dump_all();
  24
  25        return 0;
  26}
  27
  28static int do_dm_dump_uclass(cmd_tbl_t *cmdtp, int flag, int argc,
  29                             char * const argv[])
  30{
  31        dm_dump_uclass();
  32
  33        return 0;
  34}
  35
  36static int do_dm_dump_devres(cmd_tbl_t *cmdtp, int flag, int argc,
  37                             char * const argv[])
  38{
  39        dm_dump_devres();
  40
  41        return 0;
  42}
  43
  44static cmd_tbl_t test_commands[] = {
  45        U_BOOT_CMD_MKENT(tree, 0, 1, do_dm_dump_all, "", ""),
  46        U_BOOT_CMD_MKENT(uclass, 1, 1, do_dm_dump_uclass, "", ""),
  47        U_BOOT_CMD_MKENT(devres, 1, 1, do_dm_dump_devres, "", ""),
  48};
  49
  50static __maybe_unused void dm_reloc(void)
  51{
  52        static int relocated;
  53
  54        if (!relocated) {
  55                fixup_cmdtable(test_commands, ARRAY_SIZE(test_commands));
  56                relocated = 1;
  57        }
  58}
  59
  60static int do_dm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
  61{
  62        cmd_tbl_t *test_cmd;
  63        int ret;
  64
  65#ifdef CONFIG_NEEDS_MANUAL_RELOC
  66        dm_reloc();
  67#endif
  68
  69        if (argc < 2)
  70                return CMD_RET_USAGE;
  71        test_cmd = find_cmd_tbl(argv[1], test_commands,
  72                                ARRAY_SIZE(test_commands));
  73        argc -= 2;
  74        argv += 2;
  75        if (!test_cmd || argc > test_cmd->maxargs)
  76                return CMD_RET_USAGE;
  77
  78        ret = test_cmd->cmd(test_cmd, flag, argc, argv);
  79
  80        return cmd_process_error(test_cmd, ret);
  81}
  82
  83U_BOOT_CMD(
  84        dm,     3,      1,      do_dm,
  85        "Driver model low level access",
  86        "tree         Dump driver model tree ('*' = activated)\n"
  87        "dm uclass        Dump list of instances for each uclass\n"
  88        "dm devres        Dump list of device resources for each device"
  89);
  90