]>
git.ipfire.org Git - people/ms/u-boot.git/blob - common/cmd_demo.c
2 * Copyright (c) 2013 Google, Inc
5 * Pavel Herrmann <morpheus.ibis@gmail.com>
7 * SPDX-License-Identifier: GPL-2.0+
15 struct udevice
*demo_dev
;
17 static int do_demo_hello(cmd_tbl_t
*cmdtp
, int flag
, int argc
,
25 return demo_hello(demo_dev
, ch
);
28 static int do_demo_status(cmd_tbl_t
*cmdtp
, int flag
, int argc
,
34 ret
= demo_status(demo_dev
, &status
);
38 printf("Status: %d\n", status
);
43 static int do_demo_light(cmd_tbl_t
*cmdtp
, int flag
, int argc
,
50 light
= simple_strtoul(argv
[0], NULL
, 16);
51 ret
= demo_set_light(demo_dev
, light
);
53 ret
= demo_get_light(demo_dev
);
55 printf("Light: %x\n", ret
);
63 int do_demo_list(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
68 puts("Demo uclass entries:\n");
70 for (i
= 0, ret
= uclass_first_device(UCLASS_DEMO
, &dev
);
72 ret
= uclass_next_device(&dev
)) {
73 printf("entry %d - instance %08x, ops %08x, platdata %08x\n",
74 i
++, map_to_sysmem(dev
),
75 map_to_sysmem(dev
->driver
->ops
),
76 map_to_sysmem(dev_get_platdata(dev
)));
79 return cmd_process_error(cmdtp
, ret
);
82 static cmd_tbl_t demo_commands
[] = {
83 U_BOOT_CMD_MKENT(list
, 0, 1, do_demo_list
, "", ""),
84 U_BOOT_CMD_MKENT(hello
, 2, 1, do_demo_hello
, "", ""),
85 U_BOOT_CMD_MKENT(light
, 2, 1, do_demo_light
, "", ""),
86 U_BOOT_CMD_MKENT(status
, 1, 1, do_demo_status
, "", ""),
89 static int do_demo(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
97 demo_cmd
= find_cmd_tbl(argv
[1], demo_commands
,
98 ARRAY_SIZE(demo_commands
));
102 if ((!demo_cmd
|| argc
> demo_cmd
->maxargs
) ||
103 ((demo_cmd
->name
[0] != 'l') && (argc
< 1)))
104 return CMD_RET_USAGE
;
107 devnum
= simple_strtoul(argv
[0], NULL
, 10);
108 ret
= uclass_get_device(UCLASS_DEMO
, devnum
, &demo_dev
);
110 return cmd_process_error(cmdtp
, ret
);
115 if (demo_cmd
->cmd
!= do_demo_list
)
116 return CMD_RET_USAGE
;
119 ret
= demo_cmd
->cmd(demo_cmd
, flag
, argc
, argv
);
121 return cmd_process_error(demo_cmd
, ret
);
126 "Driver model (dm) demo operations",
127 "list List available demo devices\n"
128 "demo hello <num> [<char>] Say hello\n"
129 "demo light [<num>] Set or get the lights\n"
130 "demo status <num> Get demo device status\n"
131 "demo list List available demo devices"